硒网格在同一浏览器上并行执行
selenium grid parallel execution on the same browser
我正在使用 selenium-grid,想知道如何在同一个浏览器上并行开始我的测试,例如:Chrome
问题是,Chrome一直只打开一个实例,直到第一个测试结束,然后开始下一个测试。
请帮助我:)
public WebDriver createDriverGrid() throws MalformedURLException {
String hubUrl = "http://localhost:4446/wd/hub";
ChromeOptions capabilities = new ChromeOptions();
capabilities.setCapability(CapabilityType.BROWSER_NAME, "chrome");
driver.set(new RemoteWebDriver(new URL(hubUrl), capabilities));
return driver.get();
}
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="GoogleTestSuite" verbose="2" parallel="tests" thread-count="2" preserve-order="true">
<test name="GoogleTest-CH" parallel="true">
<!--<parameter name="browser" value="chrome"></parameter>-->
<classes>
<class name="com.herokuapp.theinternet.tests.GoogleTests" />
</classes>
</test>
</suite>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="PositiveTestSuite" verbose="2" parallel="tests" thread-count="2" preserve-order="true">
<test name="PositiveTest-CH" parallel="true">
<classes>
<class name="com.herokuapp.theinternet.tests.PositiveTests" />
<!--<class name="com.herokuapp.theinternet.tests.PositiveTests" />-->
</classes>
</test>
</suite>
如果您想以并行方式开始测试,那么您需要编写两次测试方法。根据你的 TestNG.xml,你必须写 parallel="tests" thread-count="2" 这意味着有两个我们想要并行执行的测试方法.
请将您的 xml 替换为以下代码:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="PositiveTestSuite" parallel="tests" thread-count="2">
<test name="PositiveTest-CH">
<classes>
<class name="com.herokuapp.theinternet.tests.PositiveTests" />
</classes>
</test>
<test name="PositiveTest-CH1">
<classes>
<class name="com.herokuapp.theinternet.tests.PositiveTests" />
</classes>
</test>
</suite>
试试这个,它会工作正常。
您可以使用 jenkins 管道实现此目的,而无需修改您的源代码
我正在使用 selenium-grid,想知道如何在同一个浏览器上并行开始我的测试,例如:Chrome
问题是,Chrome一直只打开一个实例,直到第一个测试结束,然后开始下一个测试。
请帮助我:)
public WebDriver createDriverGrid() throws MalformedURLException {
String hubUrl = "http://localhost:4446/wd/hub";
ChromeOptions capabilities = new ChromeOptions();
capabilities.setCapability(CapabilityType.BROWSER_NAME, "chrome");
driver.set(new RemoteWebDriver(new URL(hubUrl), capabilities));
return driver.get();
}
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="GoogleTestSuite" verbose="2" parallel="tests" thread-count="2" preserve-order="true">
<test name="GoogleTest-CH" parallel="true">
<!--<parameter name="browser" value="chrome"></parameter>-->
<classes>
<class name="com.herokuapp.theinternet.tests.GoogleTests" />
</classes>
</test>
</suite>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="PositiveTestSuite" verbose="2" parallel="tests" thread-count="2" preserve-order="true">
<test name="PositiveTest-CH" parallel="true">
<classes>
<class name="com.herokuapp.theinternet.tests.PositiveTests" />
<!--<class name="com.herokuapp.theinternet.tests.PositiveTests" />-->
</classes>
</test>
</suite>
如果您想以并行方式开始测试,那么您需要编写两次测试方法。根据你的 TestNG.xml,你必须写 parallel="tests" thread-count="2" 这意味着有两个我们想要并行执行的测试方法.
请将您的 xml 替换为以下代码:
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
<suite name="PositiveTestSuite" parallel="tests" thread-count="2">
<test name="PositiveTest-CH">
<classes>
<class name="com.herokuapp.theinternet.tests.PositiveTests" />
</classes>
</test>
<test name="PositiveTest-CH1">
<classes>
<class name="com.herokuapp.theinternet.tests.PositiveTests" />
</classes>
</test>
</suite>
试试这个,它会工作正常。
您可以使用 jenkins 管道实现此目的,而无需修改您的源代码