这是我的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>`


毂:
java -jar selenium-server-standalone-2.43.1.jar -role hub -maxSession = 2

节点:
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,版本=%browserVersion%,maxInstances =%maxInstances%“

问题:

当我使用2个maxSession count运行两个测试类时,它可以正常工作(与5、10、15相同)

但是,当我添加的测试超出了maxSession的指定范围时,比如说我又添加了三个测试,现在使用两个浏览器生成了测试,则获得LandingPage,但无法继续。

TestNG版本:6.8.8
硒版本:2.43.1

我在这里做错了什么?

最佳答案

显然我没有使用ThreadLocal,而且我的驱动程序实例也是静态的。开始使用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;
}
};
}

关于java - SeleniumGrid2自定义maxSession在运行testng套件时似乎无法正常工作(parallel =“classes”),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29480501/

10-09 09:27