2010-01-11 30 views
2

我期待着增强我们当前的测试套件,并通过全堆栈集成/验收测试来构建持续集成。如何对Web应用程序进行全堆栈集成测试

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

是否有任何无头的浏览器和JS-能力测试环境到一个地步,他们是值得建立和维护的麻烦?你遇到的最好的选择是什么,并避免陷阱?

谢谢。

回答

1

听起来你是来进一步顺着这条路不是我的,但无论如何,我会发表评论。

我工作的一个JavaScript项目(与Java + MySQL的后端),并决定使用Selenium测试,并努力实现的全面覆盖,因为我可以。我也尝试了其他一些测试工具,但我不能说我真的知道其中的任何一种。与Selenium相比,他们没有一个出现在他们的网站上,非常精美或流行。我打算最终整合到CruiseControl,但还没有这样做。

这一直是一个有趣的项目,并在一天结束的时候,我与硒很高兴。硒加:

  1. 测试'脚本'都可以用Java编写,没有涉及隐晦的脚本语言。除此之外,您可以轻松完成诸如在测试之前和之后操作和验证数据库中的数据等事​​情。
  2. Se也支持Perl,C#等。我认为,尽管这对我没有兴趣。
  3. 硒IDE是快速了解硒是如何工作的,定位器是如何工作的,等你不想实际运行使用IDE测试长期一个伟大的工具,但它让你的脚湿的伟大和后续弄清楚事情。
  4. Se似乎与jUnit完美地工作。可能还有TestNG,但还没有尝试过,它在我的待办事项清单上。
  5. 优秀的文档和网站。

劣势:

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

HTH,欢呼声。

相关问题