如何对Web应用程序进行全栈集成测试

我希望增强我们当前的测试套件,并通过完整的堆栈集成/验收测试进行持续集成。 我正在寻找像Culerity和Selenium这样的工具,可以在运行用户故事时执行前端javascript。我正在寻找可以提供前端javascript和高级功能的内容,而不需要花费大量的开发时间来维护复杂的测试环境。我们目前正在使用Rspec,Cucumber和CruiseControl.rb,因此很容易与这些工具集成。 任何无头浏览器和具有js功能的测试环境是否值得设置和维护?您遇到的最佳选择是什么,以及要避免的陷阱? 谢谢。     
已邀请:
你听起来像是在这条路上比我更远,但无论如何我会发表评论。 我正在开发一个JavaScript项目(带有Java + MySQL后端),并决定使用Selenium进行测试,并尝试尽可能全面地实现覆盖。我还用其他一些测试工具进行了探讨,但我不能说我真的了解其中的任何一种。与Selenium相比,他们没有出现在他们的网站上,非常精致或受欢迎。我打算最终整合到CruiseControl,但还没有这样做。 这是一个有趣的项目,在一天结束时,我对Selenium非常满意。硒加: 测试'脚本'都可以用Java编写,不涉及晦涩的脚本语言。除此之外,您还可以轻松地执行操作,例如在测试之前和之后操作和验证数据库中的数据。 Se也支持Perl,C#等我认为,虽然这对我没有兴趣。 Selenium IDE是一个很好的工具,可以快速了解Se的工作原理,定位器的工作方式等等。您不希望实际使用IDE长期运行测试,但它非常适合让您的脚湿透,并且可以持续计算出来。 Se似乎与jUnit完美配合。可能也是TestNG,但还没试过,它在我的待办事项清单上。 优秀的文档和网站。 劣势: 我花了很多时间弄清楚如何在所有情况下定位元素。这部分是我使用的框架(ExtJS)的“错误”,而不是Selenium。 似乎无论你做什么,Se都有时间依赖性 - 例如。你必须注入人工暂停以使其工作的地方。 我的测试中还有监视器大小的依赖项。我认为这是非常不受欢迎的,但在某些地方似乎是不可避免的。基本上,这是因为有许多元素类型,JS不支持您以编程方式单击。 与#3相关,在我被迫驾驶鼠标的地方。这意味着您必须拥有专用的测试PC。这没什么大不了的,但似乎不对。 测试很慢 - 主要是由于Se调用Firefox所需的时间。毫无疑问,这部分是我的环境,我怀疑我可以做很多事情来改善这一点。然而,它真的很明显,并不明显为什么。运行大约40次测试大约需要10分钟。 支持论坛非常参差不齐。好吧,你得到你付出的代价。但是我一次又一次地发现有人发布了我的问题,并且该帖子被忽略了,否则当OP指出该建议是假的时,提供了无效的解决方案而没有后续跟进。 HTH,干杯。     

要回复问题请先登录注册