我有一个项目,我使用selenium grid,Selenium,testng,并且我遇到了这种情况:我想在不同的机器中同时运行所有测试,我的代码在任一节点上运行此测试购买。
<suite name ="Default suite" thread-count="4" parallel="tests">
<test name="LOGIN TEST">
<parameter name="browserName" value="chrome"/>
<parameter name="url" value="http://localhost:4444/wd/hub"/>
<parameter name="version" value="1.2"/>
<classes>
<class name="tests.loginTest.LoginTest">
//i have 4 test methods here
</class>
</classes>
</test>
<test name="LOGIN TEST">
<parameter name="browserName" value="chrome"/>
<parameter name="url" value="http://localhost:4444/wd/hub"/>
<parameter name="version" value="1.3"/>
<classes>
<class name="tests.loginTest.MainPageTest">
//i have 4 test methods here
</class>
</classes>
</test>
</suite>
@BeforeMethod
@Parameters( {"browserName","url","version"})
static WebDriver createInstance(String browserName, String url,String version) throws IOException {
System.setProperty("webdriver.chrome.driver", "src\\main\\resources\\chromedriver.exe");
WebDriver driver = null;
if (browserName.toLowerCase().contains("chrome")) {
DesiredCapabilities cap = new DesiredCapabilities();
cap.setBrowserName("chrome");
cap.setVersion(version)
driver = new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), cap);
return driver;
}
return driver;
}
答案 0 :(得分:0)
创建一个类似下面的json文件。
CONTINUATION
在使用集线器机器注册节点时使用它。
{
"capabilities": [
{
"browserName": "chrome",
"maxInstances": 2,
"seleniumProtocol": "WebDriver"
}
],
"configuration": {
"proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
"maxSession": 2
}
}
根据您的要求更改maxSession和maxInstance计数。