java - 生产中的 HtmlUnit + Selenium

标签 java selenium webdriver htmlunit

我目前正在使用 HtmlUnit 和 Selenium 在我的生产代码中驱动它 (WebDriver)。

我正在使用这些库以编程方式对各种网站进行 scape 和交互,并且取得了一些成功并且没有遇到内存问题(确保 session 始终被清理)。

我想知道这些库是否适合生产环境或不推荐使用。这很难通过谷歌找到,因为有大量关于自动化测试的信息,而不是我如何使用它们。

我意识到这是一个相当普遍的问题,但我正在寻求有关这些库和可能更好的替代方案的建议。

最佳答案

WebDriver 和 Selenium 非常适合生产环境。我在多机器/多数据中心分布式网格上广泛使用了 2 年,并且绝对没有我们无法应对的性能或稳定性问题。

我们首选的驱动程序是 Firefox 驱动程序(比 HTMLUnit 更重,更难配置),我们不得不调整网格以了解我们可以运行多少个实例。我们的稳定性最大值是每个核心 1

我们的 selenium/webdriver 实例现在已经 24/7 全天候运行了 2 年(1 年使用 selenium 1,其他迁移 selenium 2/WebDriver 增量)并且有适当的监控(你应该监控内存使用/CPU 使用)和一堆负载测试,我们已经达到了良好的水平,我们在没有重新启动进程的情况下经历了几个月

我们也广泛使用了 HTMLUnit,并且对这个库同样满意

我这篇文章的要点是:是的,这些库是生产就绪的。但是,与所有生产软件一样,您必须对它们的使用进行基准测试,以找到最佳稳定性的适当配置。我建议您在生产中使用 Selenium Grid,这是并行化进程的好方法

关于java - 生产中的 HtmlUnit + Selenium,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9059773/

相关文章:

javascript - 当用户选择具有正确扩展名的文件时会触发什么类型的事件?

c# - 使用 Selenium 从表中获取数据

python - 使用 Selenium 来解决验证码

google-chrome - 如何配置 'watir' 以使用现有的 chrome 用户配置文件(使用 chrome.exe --user-data-dir 创建)

java - Json 显示列表中对象的名称

java - Spring 容器如何引用我们作为参数传递给方法的接口(interface)或类类型

java - 使用 Selenium webdriver Java 定位具有不清楚 Id 类的元素

Java Selenium 等待元素超时

Java方法: retrieve the inheriting type

java - 在 Akka 中从客户端向服务器发送毒丸