Gro*_*eek 11
WebDriver和Selenium非常适合生产环境.我现在已经在多机器/多数据中心分布式网格上广泛使用它们2年,并且绝对没有我们无法应对的性能和稳定性问题.
我们首选的驱动程序是Firefox(比HTMLUnit重,并且更难配置),我们必须调整网格以了解我们可以运行多少个实例.我们的最大稳定性是每个核心1个
我们的selenium/webdriver实例已经24/7运行2年了(1年使用selenium 1,另一个运行selenium 2/WebDriver逐步运行)并进行适当的监控(你应该监控内存使用/ CPU使用情况)和一堆负载测试,我们达到了良好的水平,我们经历了几个monthes而没有重新启动过程
我们也广泛使用HTMLUnit,并且对这个库同样满意
我的帖子的要点是:是的,这些库是生产就绪的.但是,作为所有生产软件,您必须对其使用进行基准测试,以找到最佳稳定性的适当配置.我建议您在生产中使用Selenium Grid,这是并行化流程的好方法
我正在使用HtmlUnit进行类似的生产,并且遇到了很多问题 - 主要是性能相关的.目前我切换到HtmlUnit 2.10的快照版本,其中实现了一些对我性能改进很重要的(例如替换ArrayList.contains()为HashSet.contains()on DomNode.addDomChangeListener()).
尽管如此,在JavaScript密集的页面上CPU负载相当高.通常,我不能在双核Linux机器上同时运行10个以上.我相信HtmlUnit仅在解释器模式下使用Rhino(JavaScript引擎),这非常慢.此外,您需要小心释放HtmlUnit使用的所有资源以避免内存泄漏.
总而言之,HtmlUnit设计用于运行相对较短的测试用例而不是长时间运行的服务器应用程序.可以对它进行足够的调整以使其可管理,但肯定会更好.
我发现的另一种方法是phantom-js,它是WebKit浏览器的无头版本,本机应用程序在运行JavaScript时要快得多.
| 归档时间: |
|
| 查看次数: |
3522 次 |
| 最近记录: |