【问题标题】:Not able to execute more that 5 instances of browser in a node using Selenium Grid无法在使用 Selenium Grid 的节点中执行超过 5 个浏览器实例
【发布时间】:2020-04-27 02:18:29
【问题描述】:

当我通过 Selenium Grid 使用 TestNG 并行执行 5 个以上的测试时,只有 5 个同时执行。其余的都在排队。我已经配置了我的节点,使其支持 7 个 Chrome 实例。为什么剩下的 2 个实例没有得到利用?

这是来自 Grid Console 的节点屏幕截图:

节点配置截图:

节点起始代码:

java -jar selenium-server-standalone-3.8.1.jar -role node  -hub http://localhost:4444/grid/register -port 5556 -nodeConfig nodeConfig.json

节点配置 JSON:

{
  "capabilities": [

    {
      "browserName": "chrome",
      "platform": "WIN10",
      "maxInstances": 7
    }

  ],
  "hub": "http://selenium-hub-host:4444"
}

TestNG XML(我使用并行并行运行所有 7 个测试):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">


<suite name="myTestSuit" parallel="tests" thread-count="10">


    <test name="myTest1">

        <parameter name="browser" value="Chrome"></parameter>

        <classes>

            <class name="testClass1"></class>
            <class name="testClass2"></class>
            <class name="testClass3"></class>

        </classes>

    </test>


    <test name="myTest2">

        <parameter name="browser" value="Chrome"></parameter>

        <classes>

            <class name="testClass1"></class>
            <class name="testClass2"></class>
            <class name="testClass3"></class>

        </classes>

    </test>


    <test name="myTest3">

        <parameter name="browser" value="Chrome"></parameter>

        <classes>

            <class name="testClass1"></class>
            <class name="testClass2"></class>
            <class name="testClass3"></class>

        </classes>

    </test>


    <test name="myTest4">

        <parameter name="browser" value="Chrome"></parameter>

        <classes>

            <class name="testClass1"></class>
            <class name="testClass2"></class>
            <class name="testClass3"></class>

        </classes>

    </test>


    <test name="myTest5">

        <parameter name="browser" value="Chrome"></parameter>

        <classes>

            <class name="testClass1"></class>
            <class name="testClass2"></class>
            <class name="testClass3"></class>

        </classes>

    </test>



    <test name="myTest6">

        <parameter name="browser" value="Chrome"></parameter>

        <classes>

            <class name="testClass1"></class>
            <class name="testClass2"></class>
            <class name="testClass3"></class>

        </classes>

    </test>


    <test name="myTest7">

        <parameter name="browser" value="Chrome"></parameter>

        <classes>

            <class name="testClass1"></class>
            <class name="testClass2"></class>
            <class name="testClass3"></class>

        </classes>

    </test>



</suite>

(我还尝试在我的系统中创建两个节点。每个节点都支持 5 个 Chrome,所以我总共有 10 个 Chrome 实例。在这种情况下,也只有 5 个可用实例被利用)。

【问题讨论】:

标签: selenium selenium-webdriver selenium-grid remotewebdriver selenium-hub


【解决方案1】:

默认线程数为 5,因此仅打开浏览器。实际上你需要在 testng.xml 文件中指定它。根据您的意愿在套件中标记 thread-count='7' 或 '10'。

【讨论】:

  • 喜欢
  • 谢谢,这确实是一个问题。所以我的测试在 TestNG 本身中排队。您的解决方案修复了它。但不幸的是,我的 5 个测试中的 2 个仍然在 Selenium Grid 中排队。我现在可以(在使用您的解决方案修复测试 NG 中的线程数问题之后),在 Grid 控制台中看到 2 个测试在队列中。 (所以 TestNG 现在正确地触发了 7 个线程)。我在问题中更新了我的新 XML 和节点屏幕截图(现在显示 2 个排队的测试)
  • 最后我解决了这个问题。我用 maxSession 更新了我的 json 文件:10。现在我可以启动所有 7 个会话。谢谢!
【解决方案2】:

我能够通过应用 @murali selenium@Ratmir Asanov 的解决方案来解决这个问题。

  1. 首先在 TestNG XML 中,设置 thread-count="10"(默认值为 5)
  2. 现在,在 Node config JSON 中,设置“maxSession”:10(默认情况下,“MACHINE”中只允许 5 个会话)

【讨论】:

    【解决方案3】:

    您需要更改节点配置 JSON 中的maxSession 参数。

    例如,

    {
      "capabilities":
      [
        {
          "browserName": "chrome",
          "platform": "WIN10",
          "maxInstances": 7
        }
      ],
      "maxSession": 10,
      "hub": "http://selenium-hub-host:4444",
    
    }
    

    【讨论】:

    • 我试过这个但没有运气。当我给 maxSession 值小于 5 时,比如 4,那么它只打开 4 个会话,其他 3 个测试将排队。但是,当我将 maxSessio 设置为大于 5 时,仍然只有 5 个会话正在打开,其余 2 个测试正在排队
    • 最后我能够通过更新 TestNG xml 中的线程数来解决这个问题。那是另一个问题。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2022-09-26
    • 1970-01-01
    • 1970-01-01
    • 2019-02-24
    • 2021-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多