【问题标题】:Setting maximum instances and maximum sessions for Selenium Standalone Server为 Selenium Standalone Server 设置最大实例和最大会话
【发布时间】:2018-10-23 22:37:20
【问题描述】:

我正在尝试为 Selenium 独立服务器设置最大实例数和最大会话数,因为我很有可能需要很多实例/浏览器。 我尝试了以下命令:

xvfb-run java -Dwebdriver.chrome.driver=/usr/local/bin/chromedriver -jar /usr/local/bin/selenium-server-standalone.jar -maxSession 100 -maxInstances 100

但是我收到以下错误:

线程“主”com.beust.jcommander.ParameterException 中的异常: 未知选项:-maxSession 在 com.beust.jcommander.JCommander.parseValues(JCommander.java:742) 在 com.beust.jcommander.JCommander.parse(JCommander.java:282) 在 com.beust.jcommander.JCommander.parse(JCommander.java:265) 在 com.beust.jcommander.JCommander.(JCommander.java:210) 在 org.openqa.grid.selenium.GridLauncherV3$1.setConfiguration(GridLauncherV3.java:227) 在 org.openqa.grid.selenium.GridLauncherV3.buildLauncher(GridLauncherV3.java:155) 在 org.openqa.grid.selenium.GridLauncherV3.main(GridLauncherV3.java:75)

当我尝试仅使用 maxInstance 运行它时,也会发生类似的事情。 如何设置大量/无限数量的实例/浏览器?默认金额是多少? (也找不到任何地方)提前谢谢。

【问题讨论】:

  • 您正在尝试启动 Selenium ServerSelenium Grid Hub / Selenium Grid Node
  • 硒服务器。

标签: selenium selenium-webdriver selenium-chromedriver


【解决方案1】:

根据 Selenium Grid 文档,maxSession 和 maxInstances 是节点的参数,而不是集线器的参数。

-maxSession 5(默认为5)节点上可以并行运行的浏览器的最大数量。这与支持的浏览器的 maxInstance 不同(例如:对于支持 Firefox 3.6、Firefox 4.0 和 Internet Explorer 8 的节点,maxSession=1 将确保您运行的浏览器永远不会超过 1 个。使用 maxSession=2,您可以拥有 2 个Firefox 测试同时进行,或 1 个 Internet Explorer 和 1 个 Firefox 测试)。 (来源:https://github.com/SeleniumHQ/selenium/wiki/Grid2#optional-parameters

因此,在您的情况下,您很可能应该通过设置一个或多个(建议更安全,因为如果 100 个节点中有 1 个断开其他节点仍然能够完成工作)节点来管理多个并行线程。

使用以下命令运行集线器:java -jar selenium-server-standalone-.jar -role hub 运行节点1:java -jar selenium-server-standalone-<version>.jar -role node -port 4001 -hub http://localhost:4444/grid/register

运行节点 2:java -jar selenium-server-standalone-<version>.jar -role node -port 4002 -hub http://localhost:4444/grid/register

... 运行节点 20:java -jar selenium-server-standalone-<version>.jar -role node -port 420 -hub http://localhost:4444/grid/register

将为您提供一个包含 100 个浏览器的网格(因为 5 是节点的默认值,而您设置了 20 个节点)

注意:确保您的硬件可以容纳 100 个浏览器实例,因为它很可能不会,并且您需要在多个 VM 中运行节点。

另一个注意事项:当有很多节点时,Selenium 网格有一个已知的弱点。对于未来,如果您可以在 linux 上运行浏览器,您可能需要查看一些基于 docker 的解决方案,例如 selenoid (https://github.com/aerokube/selenoid)

【讨论】:

  • 似乎 OP 想要启动 Selenium Server 而不是 Selenium Grid
  • 仅使用 selenium 独立服务器而不使用网格时,此默认设置是否为 true?使用此命令“java -jar /usr/local/bin/selenium-server-standalone.jar -role node -port 4001 -hub localhost:4444/grid/register -maxSession 5 &”时,我仍然难以设置 -maxSession 和 -maxInstance .我收到“-maxSession unknown”错误。最后,您能否推荐一种使用 xvfb 设置所有这些节点的方法?我的设置要求我使用它,但我似乎无法让所有这些都与 xvfb-run 一起运行。谢谢!
  • 糟糕,我没有清楚地阅读问题。我刚刚查看了官方文档以了解“服务器”是什么,我的答案肯定是关于 Grid。
  • 很奇怪,因为将服务器设置为集线器并设置节点确实有效(只是不适用于 xvfb)...我确实安装了独立服务器...我现在比以往任何时候都更加困惑 :)
  • @Idan 您能否分享您对“硒服务器”的期望?我一直在网格的上下文中考虑它,它假设运行一个集线器和至少一个节点。坦率地说,我想念你困惑的根源......所以欢迎更多细节:)
猜你喜欢
  • 1970-01-01
  • 2022-10-12
  • 2015-09-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-24
  • 1970-01-01
  • 2012-01-10
相关资源
最近更新 更多