如何在TestNG中并行运行测试用例?

时间:2018-04-19 06:21:11

标签: java maven testng maven-surefire-plugin

我有一组TestNG测试用例我希望并行运行。 我没有使用TestNG套件XML文件。

根据http://maven.apache.org/surefire/maven-surefire-plugin/examples/testng.html#Running_tests_in_parallel, 我可以在项目POM文件中的surefire配置中指定parallel和threadCount参数。

但这不起作用。 测试用例仍在按顺序运行。

我可以在不使用套件XML文件的情况下并行运行测试用例吗?

Surefire插件版本 - 2.21.0 TestNG版本 - 6.8.21

我在POM文件中的surefire配置中使用了以下行

<parallel>classes</parallel>                     
<useUnlimitedThreads>true</useUnlimitedThreads>

1 个答案:

答案 0 :(得分:0)

是的,您可以使用methods / classes并行运行测试maven-surefire-plugin(即不使用套件xml)。

如果您想并行运行测试方法,请使用以下配置。

<configuration>
    <parallel>methods</parallel>
    <threadCount>10</threadCount>
</configuration>

如果您想并行运行测试,请使用以下配置。

<configuration>
    <parallel>classes</parallel>
    <threadCount>10</threadCount>
</configuration>

运行Maven命令: -

mvn clean test

检查测试方法是否在不同的线程中运行并同时启动: -

请添加以下sysout以观察行为。您可以稍后注释或删除sysout。这只是为了理解这种行为。

System.out.println("thread id:" + Thread.currentThread().getId() + "Timestamp :" + LocalDateTime.now());

您可以克隆此repo并运行上面的maven命令来检查结果。