基于 TestNG 的 Selenium 测试未并行运行

Pur*_*rus 3 java testng selenium

我正在使用下面的 TestNG 配置来启用 Selenium 测试的并行执行。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">

<suite name="Test-Automation" parallel="methods" thread-count="2" verbose="1">

    <test name="Suite Test">
        <classes>
            <class name="SampleTest">
                <methods>
                    <include name="firstTest"/>
                    <include name="secondTest"/>
                    <include name="thirdTest"/>
                </methods>
            </class>
        </classes>
    </test>
</suite>
Run Code Online (Sandbox Code Playgroud)

Java代码:

@Test(dataProvider = "TestData")
public void firstTest(String data){
   //Code
}

@Test(dataProvider = "TestData")
public void secondTest(String data){
   //Code
}

@Test(dataProvider = "TestData")
public void thirdTest(String data){
   //Code
}
Run Code Online (Sandbox Code Playgroud)

Selenium 测试预计将并行运行。我希望打开 2 个浏览器并运行测试脚本。

但我只看到 1 个浏览器,所有 3 个测试都一个接一个地运行,而不是并行运行。我尝试过使用“并行”属性的测试、方法、类、实例选项。

有什么帮助吗?

Kri*_*van 6

这是由于 TestNG 6.13.1 中的错误所致 [有关更多详细信息,请参阅GITHUB-1636 ]

我已经在 TestNG 的最新快照 (6.14-SNAPSHOT) 中修复了这个问题,并且应该可以在 TestNG 的发布版本 (6.14) 中使用。

但在那之前,请将您的套件 xml 文件更改为如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">

<suite name="Test-Automation" parallel="methods" thread-count="2" verbose="1">
    <test name="Suite Test" parallel="methods" thread-count="2" verbose="1">
        <classes>
            <class name="SampleTest">
                <methods>
                    <include name="firstTest"/>
                    <include name="secondTest"/>
                    <include name="thirdTest"/>
                </methods>
            </class>
        </classes>
    </test>
</suite>
Run Code Online (Sandbox Code Playgroud)

解决方法基本上是parallel="methods" thread-count="2"<test>级别上添加属性。