硒网格在同一浏览器上并行执行

时间:2019-03-22 23:11:59

标签: java selenium selenium-grid

我正在使用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>

2 个答案:

答案 0 :(得分:0)

如果要并行执行启动测试,则编写两次测试方法。根据您的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>

尝试一下,它将正常工作。

答案 1 :(得分:0)

您可以通过使用jenkins管道来实现此目的,而无需修改源代码