简体   繁体   English

无法使用 Selenium Grid 在节点中执行超过 5 个浏览器实例

[英]Not able to execute more that 5 instances of browser in a node using Selenium Grid

When I execute more than 5 tests in parallel using TestNG via Selenium Grid, only 5 are getting executed simultaneously.当我通过 Selenium Grid 使用 TestNG 并行执行 5 个以上的测试时,只有 5 个同时执行。 The rest are getting queued.其余的都在排队。 I have configured my node so that it supports 7 instances of Chrome.我已经配置了我的节点,使其支持 7 个 Chrome 实例。 Why are the 2 remaining instances not getting utilized?为什么剩下的 2 个实例没有得到利用?

Here is the node screenshot from Grid Console:这是来自网格控制台的节点屏幕截图:

在此处输入图片说明

Node Configuration Screenshot:节点配置截图:

节点配置

Node Start Code:节点启动代码:

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

Node Config JSON:节点配置 JSON:

{
  "capabilities": [

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

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

TestNG XML (I am using parallel to run all the 7 tests in parallel): TestNG XML(我使用 parallel 并行运行所有 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>

(I also tried creating two nodes in my system. Each supports 5 Chromes so total I have 10 Chrome instances. In this case, also only 5 of the total available instances are getting utilized). (我还尝试在我的系统中创建两个节点。每个节点都支持 5 个 Chrome,所以我总共有 10 个 Chrome 实例。在这种情况下,也只有 5 个可用实例得到了利用)。

You need to change the maxSession parameter in the node's config JSON.您需要更改节点配置 JSON 中的maxSession参数。

For example,例如,

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

}

By default thread count is 5, so only browsers are opening.默认线程数为 5,所以只有浏览器打开。 Actually you need to specify it in testng.xml file.实际上你需要在 testng.xml 文件中指定它。 in suite tag thread-count='7' or '10' as your wish.在套件中标记 thread-count='7' 或 '10' 根据您的意愿。

I was able to fix this by applying both the solutions of @murali selenium and @Ratmir Asanov .我能够通过应用@murali selenium@Ratmir Asanov的解决方案来解决这个问题。

  1. First in TestNG XML, set thread-count="10" (Defaul value will be 5)首先在 TestNG XML 中,设置 thread-count="10"(默认值为 5)
  2. Now, inside Node config JSON, set "maxSession": 10 (By default only 5 sessions will be allowed in a 'MACHINE')现在,在 Node config JSON 中,设置 "maxSession": 10(默认情况下,'MACHINE' 中只允许 5 个会话)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Selenium Grid Test将在同一节点上与一个浏览器的5个实例一起运行 - Selenium Grid Test to be run with 5 instances of one browser on the same node Selenium Grid,并行运行多个浏览器实例 - Selenium Grid, running multiple browser instances in parallel Selenium网格节点有许多phantomjs并发实例 - Selenium grid node with many phantomjs concurrent instances 无法将多个appium节点连接到硒网格 - Not able to connect multiple appium node to selenium grid 在 Node 机器上执行批处理文件 - Selenium Grid - Execute batch file on Node machine - Selenium Grid 从浏览器查看时无法看到 selenium 网格正在运行,当集线器和节点都从 docker 使用时 - Not able to see selenium grid running when it is viewed from browser, when hub and node both are getting used from docker 你能在Selenium网格节点上使用Edge的多个实例吗? - Can you use multiple instances of Edge on a Selenium Grid Node? 关闭selenium网格实例 - Closing selenium grid instances 使用硒网格执行远程代码 - Using selenium grid to execute remote code 无法通过使用Selenium grid2调用浏览器特定的节点来运行Testng测试 - Unable to run Testng tests by Invoking browser specific node using selenium grid2
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM