简体   繁体   English

SeleniumGrid2自定义maxSession在运行testng套件时似乎无法正常工作(parallel =“ classes”)

[英]SeleniumGrid2 custom maxSession doesn't seem to working as expected when running testng suite (parallel=“classes”)

This is my TESTNG.xml 这是我的TESTNG.xml

`<suite name="Test Suite">
<test name="test" parallel="classes" thread-count="2" preserve-order="true">
<classes>
<class name="Test1"/>
<class name="Test2"/>
<class name="Test3"/>
<class name="Test4"/>
<class name="Test5"/>
</classes>
</test>
</suite>`

Hub: java -jar selenium-server-standalone-2.43.1.jar -role hub -maxSession=2 集线器: java -jar selenium-server-standalone-2.43.1.jar -role集线器-maxSession = 2

Node: java -jar selenium-server-standalone-2.43.1.jar -Dwebdriver.chrome.driver=%chromeDriverPath% -role webdriver -hub http://%hubIPAndPort%/grid/register -maxSession 2 -browser "platform=%platform%,javascriptEnabled=true,browserName=%browserName%,takesScreenshot=true,version=%browserVersion%,maxInstances=%maxInstances%" 节点: java -jar selenium-server-standalone-2.43.1.jar -Dwebdriver.chrome.driver =%chromeDriverPath%-role webdriver -hub http://%hubIPAndPort%/ grid / register -maxSession 2 -browser“ platform = %平台%,javascriptEnabled = TRUE,browserName =%browserName%,takesScreenshot = TRUE,版本=%browserVersion%,MAXINSTANCES =%MAXINSTANCES%”

Problem: 问题:

When I run Two test classes with 2 maxSession count it works fine (Same with 5, 10, 15 ..) 当我使用2个maxSession count运行两个测试类时,它可以正常工作(与5、10、15相同)

But when I add a test more than the maxSession specified, say I added three more tests,now test spawns with two browsers, gets the LandingPage but would't proceed. 但是,当我添加的测试超过了指定的maxSession时,比如说我又添加了三个测试,现在使用两个浏览器生成了测试,则获得LandingPage,但无法继续。

TestNG version: 6.8.8 Selenium version: 2.43.1 TestNG版本:6.8.8硒版本:2.43.1

What am I doing wrong here ? 我在这里做错了什么?

Obviously I wasn't using ThreadLocal and my driver instance was also static. 显然我没有使用ThreadLocal,而且我的驱动程序实例也是静态的。 Started using ThreadLocal and got by problem fixed. 开始使用ThreadLocal并已解决问题。

public void instantiateDriverObject(String browser) {
DriverFactory factory = new DriverFactory();
driver = factory.createInstance(browser);
driverThread = new ThreadLocal<WebDriver>() {
@Override
protected WebDriver initialValue() {
webDriverPool.add(driver);
return driver;
}
};
}

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM