Selenium v​​s老派的基于POST / GET的测试

时间:2010-05-24 03:38:17

标签: django testing architecture selenium

我们拥有相当多的代码库,页面/表单的测试覆盖率相对较高,所有这些都是通过vanilla POST / GET进行的。

现在,我们发现自己越来越多地进入“ajaxy”空间,并且不太可能使用GET / POST完整场景进行测试,例如用户注册或项目创建,因为它们涉及大量JavaScript / Ajax调用。

虽然这样的事情最有可能成为Selenium测试的候选人,但我想我们是否应该全面采用Selenium测试,完全放弃旧式的POST / GET测试?

Selenium采用的优势似乎太好了 - 能够在各种浏览器中运行几乎相同的GET / POST测试。

或者我在追求酷炫时尚的东西时丢失了一些东西,放弃了久经考验的POST / GET测试?

2 个答案:

答案 0 :(得分:6)

这两种方法都有优点和缺点,所以我的建议是同时使用这两种方法。

Selenium启动一个实际的浏览器并模拟用户与您的Web应用程序交互,如果您正在测试Ajax功能,这可能会很棒。它可以验证元素是否可见,并像用户一样与它们进行交互。另一个杀手级功能是能够通过Selenium截取屏幕截图,这在调查失败时非常有用。

不幸的是,启动浏览器并导航到应用程序中的特定页面/状态可能会很慢,如果您想使用Selenium测试并发用户(负载测试),则需要大量硬件。

如果您只是想测试您的服务器是否针对某些操作响应HTTP 200,或者对应用程序进行负载测试,或者响应包含某些值,那么基本的POST / GET会更合适。

如果您决定采用纯Selenium方法进行测试,我建议您考虑使用Selenium Grid或基于云的服务,因为通过Selenium运行大量测试可能非常耗时。

答案 1 :(得分:4)

我认为你绝对应该完全使用Selenium和POST / GET(单元)测试,因为你的单元测试的目的是测试特定代码段的功能,但Selenium正在你的web-app上进行集成测试。