无法使用 Selenium Grid 在节点中执行超过 5 个浏览器实例
Not able to execute more that 5 instances of browser in a node using Selenium Grid
当我通过 Selenium Grid 使用 TestNG 并行执行 5 个以上的测试时,只有 5 个同时执行。其余的正在排队。我已配置我的节点,使其支持 Chrome 的 7 个实例。为什么剩下的 2 个实例没有得到利用?
这是网格控制台的节点截图:
节点配置截图:
节点起始码:
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 Chromes 所以我总共有 10 个 Chrome 实例。在这种情况下,也只有 5 个可用实例是得到利用)。
您需要更改节点配置中的 maxSession
参数 JSON。
例如,
{
"capabilities":
[
{
"browserName": "chrome",
"platform": "WIN10",
"maxInstances": 7
}
],
"maxSession": 10,
"hub": "http://selenium-hub-host:4444",
}
默认线程数为 5,因此只有浏览器打开。实际上你需要在 testng.xml 文件中指定它。根据您的意愿在套件中标记 thread-count='7' 或 '10'。
我可以通过应用 @murali selenium 和 @Ratmir Asanov.
的解决方案来解决这个问题
- 首先在 TestNG XML 中,设置 thread-count="10"(默认值为 5)
- 现在,在节点配置 JSON 中,设置 "maxSession": 10(默认情况下,'MACHINE' 中只允许 5 个会话)
当我通过 Selenium Grid 使用 TestNG 并行执行 5 个以上的测试时,只有 5 个同时执行。其余的正在排队。我已配置我的节点,使其支持 Chrome 的 7 个实例。为什么剩下的 2 个实例没有得到利用?
这是网格控制台的节点截图:
节点配置截图:
节点起始码:
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 Chromes 所以我总共有 10 个 Chrome 实例。在这种情况下,也只有 5 个可用实例是得到利用)。
您需要更改节点配置中的 maxSession
参数 JSON。
例如,
{
"capabilities":
[
{
"browserName": "chrome",
"platform": "WIN10",
"maxInstances": 7
}
],
"maxSession": 10,
"hub": "http://selenium-hub-host:4444",
}
默认线程数为 5,因此只有浏览器打开。实际上你需要在 testng.xml 文件中指定它。根据您的意愿在套件中标记 thread-count='7' 或 '10'。
我可以通过应用 @murali selenium 和 @Ratmir Asanov.
的解决方案来解决这个问题- 首先在 TestNG XML 中,设置 thread-count="10"(默认值为 5)
- 现在,在节点配置 JSON 中,设置 "maxSession": 10(默认情况下,'MACHINE' 中只允许 5 个会话)