2

我希望增强我们当前的测试套件,并通过全栈集成/验收测试构建持续集成。

我正在研究像 Culerity 和 Selenium 这样可以在运行用户故事的同时执行前端 javascript 的工具。我正在寻找可以覆盖前端 javascript 和高级功能的东西,而不需要花费大量的开发时间来维护复杂的测试环境。我们目前正在使用 Rspec、Cucumber 和 CruiseControl.rb,因此与这些工具轻松集成将是理想的选择。

是否有任何无头浏览器和支持 js 的测试环境到了值得麻烦设置和维护的地步?您遇到的最佳选择是什么,以及要避免的陷阱是什么?

谢谢。

4

1 回答 1

1

听起来你比我走得更远,但无论如何我都会发表评论。

我正在开发一个 JavaScript 项目(带有 Java + MySQL 后端),并决定使用 Selenium 进行测试,并尝试尽可能全面地覆盖。我还探索了其他一些测试工具,但我不能说我真的了解它们中的任何一个。从他们的网站上看,与 Selenium 相比,它们中没有一个看起来非常精致或受欢迎。我计划最终集成到 CruiseControl,但还没有这样做。

这是一个有趣的项目,归根结底,我对 Selenium 非常满意。硒优点:

  1. 测试“脚本”都可以用 Java 编写,不涉及晦涩的脚本语言。除其他外,您可以轻松地在测试前后操作和验证数据库中的数据。
  2. Se 还支持 Perl、C# 等。我想,虽然这对我没有兴趣。
  3. Selenium IDE 是一个很好的工具,可以快速了解 Se 的工作原理、定位器的工作原理等。您不想长期使用 IDE 实际运行测试,但它非常适合让您的脚湿透,并持续解决问题.
  4. Se 似乎与 jUnit 完美配合。可能 TestNG 也是如此,但还没有尝试过,它在我的待办事项列表上。
  5. 优秀的文档和网站。

缺点:

  1. 我花了很多时间弄清楚如何在所有情况下定位元素。这部分是我正在使用的框架(ExtJS)的“错误”,而不是 Selenium。
  2. 似乎无论您做什么,Se 都有时间依赖性 - 例如。您必须注入人为暂停以使其工作的地方。
  3. 我的测试中还存在监视器大小的依赖关系。我认为这是非常不可取的,但在某些地方似乎是不可避免的。基本上,这是因为 JS 不支持您以编程方式单击的许多元素类型。
  4. 与#3 相关,在某些地方我被迫驱动鼠标。这意味着您必须拥有一台专用的测试 PC。这没什么大不了的,但似乎不对。
  5. 测试很慢 - 主要是因为 Se 调用 Firefox 需要时间。毫无疑问,这部分是我的环境,我怀疑我可以做很多事情来改善这一点。但是,它确实很明显,原因并不明显。运行大约 40 个测试大约需要 10 分钟。
  6. 支持论坛非常参差不齐。好吧,你得到你所支付的。但是我一次又一次地发现有人发布了我的问题,并且该帖子被忽略了,或者当 OP 指出该建议是虚假的时,提供了无效的解决方案而没有后续行动。

HTH,干杯。

于 2010-01-14T21:42:45.603 回答