我负责测试大量使用AJAX的企业Web应用程序.我需要构建一个允许在没有人为干预的情况下连续运行测试的系统.目前我最感兴趣的是负载测试,但我希望用于生成负载的相同脚本用于功能测试.
目前我正在使用磨床进行负载测试.我们记录脚本然后处理它们以处理异步请求.这个系统现在有效; 但是脚本很精致,在开发周期中我无法维护它们.我需要能够通过编程语言"运行浏览器",该语言抽象出html和javascript的细节,但它必须是无头的.换句话说,如果我的测试脚本中断,它必须代表应用程序的实际破坏.在xvfb中运行firefox 不起作用,因为即使在运行xvfb的无头linux机器上,firefox仍然使用太多资源.我尝试用无头x服务器下的webdriver驱动firefox.
我已经在HTMLUnit上工作了好几天,因为这是理想的解决方案.我一直在Jython中编写HTMLUnit驱动程序,因此我可以将它们与研磨机一起使用.不幸的是我遇到了javascript错误(这不是firefox/chrome/IE中的真正错误),我想我已经走到了尽头.无论如何我很清楚HtmlUnit,我真的需要一个替代品.
我知道还有其他一些解决方案(envjs和zombie.js); 但我不知道这些技术是如何发展的,我不想浪费另一个星期走向死胡同.
获取Firefox或Webkit的源代码并注释掉所有渲染/ GUI调用并创建真正的无头浏览器有多难?这已经完成了吗?一个人比另一个人更容易做到这一点吗?老实说,我无法理解为什么还没有这样做,所以我猜它比我预期的要困难得多.
我假设如果我能得到一个具有合理性能特征的真正无头浏览器(我有一个大型服务器机队来解决这个问题,但它不足以用于真正的Firefox和GUI渲染)那么我将被设置.