运行testng套件时,SeleniumGrid2自定义maxSession似乎没有按预期工作(parallel =“classes”)

时间:2015-04-06 22:09:12

标签: java selenium testng selenium-grid

这是我的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&#34; platform =%platform%,javascriptEnabled =真,browserName =%browserName%,takesScreenshot =真,版本=%browserVersion%,MAXINSTANCES =%MAXINSTANCES%&#34;

问题:

当我运行两个具有2个maxSession计数的测试类时,它工作正常(与5,10,15 ......相同)

但是当我添加一个超过maxSession指定的测试时,说我再添加了三个测试,现在用两个浏览器测试生成,获取LandingPage但不会继续。

TestNG版本:6.8.8 Selenium版本:2.43.1

我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

显然我没有使用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;
}
};
}