【问题标题】:Selenium Grid: MaxSessions vs MaxInstancesSelenium 网格:MaxSessions 与 MaxInstances
【发布时间】:2012-11-23 06:51:28
【问题描述】:

我想知道是否有人可以对 Selenium 的问题有所了解,这让我们有点头疼。

我们对 Selenium Grid 的 MaxSessionMaxInstances 的含义感到困惑。我们认为MaxSession 是可以在单个节点上运行的测试会话的总数。我们还认为MaxInstances 是测试可以打开的浏览器总数。

或者MaxInstances是节点可用的浏览器总数?

我们使用的命令是:

java -Xrs -jar selenium-server.jar -role node -port 44506 -hub http://localhost:44500
/grid/register -firefoxProfileTemplate SeleniumProfile -timeout 300000 -browser 
"browserName=firefox,maxInstances=10,platform=ANY,seleniumProtocol=WebDriver" -browser 
"browserName=chrome,maxInstances=10,platform=ANY,seleniumProtocol=WebDriver"

我们认为我们使用节点(上图)的方式是默认 5 个并发测试会话。

每个测试是否有 20 个可用的浏览器?

或者每个测试会话是否与其他测试会话共享池中的 20 个浏览器(10 chrome/10 FF)?

【问题讨论】:

    标签: selenium selenium-webdriver selenium-grid


    【解决方案1】:

    好问题....我会说这有点令人困惑....但会尝试用简单的术语来回答..

    MaxInstances 这表示....相同版本的浏览器可以在远程系统上运行多少个实例。

    For example, i have a FF12,IE and i declared the command as follows
    -browser browserName=firefox,version=12,maxInstances=5,platform=LINUX
    -browser browserName=InternetExplorer,version=9.0,maxInstances=5,platform=LINUX
    

    所以我可以在远程机器上同时运行 5 个 Firefox 12 实例和 5 个 IE9 实例。因此,总用户可以并行运行 10 个不同浏览器(FF12 和 IE9)的实例。

    MaxSession 这表示....有多少浏览器(任何浏览器和任何版本)可以在同一时间并行运行远程系统。所以这会覆盖 Max Instances 设置,并且可以限制可以并行运行的浏览器实例的数量。

    For above example, when maxSession=1 forces that you never have more than 1 browser running. 
    
    With maxSession=2 you can have 2 Firefox tests at the same time, or 1 Internet Explorer and 1 Firefox test). 
    

    与您定义的 MaxInstances 无关。

    如需更清晰的信息,请访问 - https://seleniumhq.github.io/docs/grid.html

    【讨论】:

    • 运行多个节点时是否真的可以只有一个会话?我在这里创建一个问题:stackoverflow.com/questions/30095385/…
    • 所以 'MaxSession' 与整个网格相关,它应该与 hub config 一起使用。不是吗?和 'MaxInstances' 因为它与特定浏览器的实例数有关,它应该与节点配置一起使用。如果我错了,请纠正我
    • @sjethvani 不,它与网格无关。网格基本上是一个委托者,它接收测试,然后在其节点之间分发。但是,单个节点也可以并行执行多个测试。 “MaxSessions”和“MaxInstances”都是节点属性 - MaxInstances 限制了可以与相应节点上的特定浏览器并行执行的测试数量。然而,MaxSession 限制了可以在一个节点上并行执行的测试数量,而不管它们使用哪种浏览器。
    【解决方案2】:

    为了扩展Anuragh27crony's answer,我绘制了一个快速图表:

    如果这是您的节点配置,那么您最多可以并行执行 5 个测试,例如以下组合:

    • 3 * 铬,2 * 火狐
    • 2 * 铬,2 * 火狐,1 * 边缘
    • 5 * 边
    • 3 * 铬

    以下组合是不可能的:

    • 4 * chrome(超过 Chrome maxInstances)
    • 6 * 边缘(超过 maxSessions)
    • 3 * chrome,3 * firefox(超过 maxSessions)

    正如 Anuragh 所说,MaxInstances 适用于特定浏览器,而 MaxSessions 适用于整个节点。

    【讨论】:

      【解决方案3】:

      根据Configuring the nodes 中的文档,默认情况下,启动 Selenium Grid 节点 允许同时使用 11 个浏览器:

      • 5 火狐
      • 5 铬
      • 1 个 Internet Explorer

      默认情况下,最大并发测试数设置为 5。要更改此设置和其他浏览器设置,您可以将参数传递给每个-browser 开关(每个开关代表一个基于您的参数的节点)。如果您使用-browser 参数,默认浏览器将被忽略,只会使用您指定的命令行。


      最大实例数

      maxInstances是可选参数,可以通过-browser可选参数传递。

      用例 1

      要为 Firefox version=X.Y.Z20 个实例配置 Selenium Grid 节点,您可以使用以下解决方案:

      • 命令:

        java -Dwebdriver.gecko.driver=geckodriver.exe -jar selenium-server-standalone-3.141.59.jar -role node -hub http://192.168.1.125:4444/grid/register -browser browserName=firefox,version=X.Y.Z,maxInstances=20,platform=WINDOWS
        
      • 节点控制台日志:

        C:\Utility\SeleniumGrid>java -Dwebdriver.gecko.driver=geckodriver.exe -jar selenium-server-standalone-3.141.59.jar -role node -hub http://192.168.1.125:4444/grid/register -browser browserName=firefox,version=X.Y.Z,maxInstances=20,platform=WINDOWS
        16:54:11.843 INFO [GridLauncherV3.parse] - Selenium server version: 3.141.59, revision: e82be7d358
        16:54:12.003 INFO [GridLauncherV3.lambda$buildLaunchers$7] - Launching a Selenium Grid node on port 6318
        2020-02-14 16:54:12.523:INFO::main: Logging initialized @1022ms to org.seleniumhq.jetty9.util.log.StdErrLog
        16:54:12.860 INFO [WebDriverServlet.<init>] - Initialising WebDriverServlet
        16:54:12.974 INFO [SeleniumServer.boot] - Selenium Server is up and running on port 6318
        16:54:12.974 INFO [GridLauncherV3.lambda$buildLaunchers$7] - Selenium Grid nodeis up and ready to register to the hub
        16:54:13.161 INFO [SelfRegisteringRemote$1.run] - Starting auto registration thread. Will try to register every 5000 ms.
        16:54:13.765 INFO [SelfRegisteringRemote.registerToHub] - Registering the node to the hub: http://192.168.1.125:4444/grid/register
        16:54:13.962 INFO [SelfRegisteringRemote.registerToHub] - The node is registered to the hub and ready to use
        
      • 网格控制台快照:

      用例 2

      Firefox version=ABC10 个实例和 20Selenium Grid Node 实例配置 Selenium Grid Node em>Chrome version=XYZ可以使用以下解决方案:

      • 命令:

        java -Dwebdriver.gecko.driver=geckodriver.exe -Dwebdriver.chrome.driver=chromedriver.exe -jar selenium-server-standalone-3.141.59.jar -role node -hub http://192.168.1.125:4444/grid/register -browser browserName=firefox,version=X.Y.Z,maxInstances=10,platform=WINDOWS -browser browserName=chrome,version=X.Y.Z,maxInstances=20,platform=WINDOWS
        
      • 网格控制台快照:


      -maxSession

      -maxSession 也是一个可选参数,可以作为主参数传递,以配置可以在特定节点上并行运行的浏览上下文的最大数量。这与支持的浏览器的maxInstance 不同(例如:对于支持 Firefox 版本 ABC、Firefox 版本 PQR 和 Chrome 版本 XYZ 的节点,ma​​xSession=1 将确保您永远不会超过 1浏览器正在运行。使用maxSession=2,您可以同时执行 2 个 Firefox 测试,或者 1 个 Firefox 和 1 个 Chrome 测试。

      例子:

      java -Dwebdriver.gecko.driver=geckodriver.exe -Dwebdriver.chrome.driver=chromedriver.exe -jar selenium-server-standalone-3.141.59.jar -role node -hub http://192.168.1.125:4444/grid/register -browser "browserName=firefox,version=A.B.C,maxInstances=10,platform=WINDOWS" -browser "browserName=firefox,version=P.Q.R,maxInstances=10,platform=WINDOWS" -browser "browserName=chrome,version=X.Y.Z,maxInstances=20,platform=WINDOWS" -maxSession 2
      
      • 网格控制台快照:

      【讨论】:

        【解决方案4】:

        MaxInstances:这为每个节点提供更多插槽,例如,MaxInstances=5 将允许每个节点最多 5 个浏览器

        MaxSession:设置一个节点可以同时运行的最大测试数量。 如果MaxInstances=5,那么 MaxSession 也应该至少为 5。

        https://github.com/SeleniumHQ/docker-selenium查看更多信息

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-09-15
          • 1970-01-01
          • 2018-04-18
          • 1970-01-01
          相关资源
          最近更新 更多