我将并行和线程计数行添加到pom文件中的surefire插件配置中:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.2.3</version>
<configuration>
<parallel>all</parallel>
<threadCount>2</threadCount>
<argLine>-Xmx4g</argLine>
<!--
<useUnlimitedThreads>true</useUnlimitedThreads>
-->
<systemPropertyVariables>
<databaseSchema>MY_TEST_SCHEMA_${surefire.forkNumber}</databaseSchema>
<allure.results.directory>${project.build.directory}/allure-results</allure.results.directory>
</systemPropertyVariables>
<includes>
<include>**/Test*.java</include>
<include>**/*Test.java</include>
<include>**/*Tests.java</include>
<include>**/*TestCase.java</include>
</includes>
</configuration>
</plugin>
当我使用 Maven 运行一些测试时,我看到
Running parallel.Test_RunCucumber
并且我可以看到生成了多个浏览器。问题是它似乎只在单个浏览器实例中执行测试。生成的浏览器实例都是“空”。
这是其中一项测试。另一个是相同的,只是去不同的网站。
Feature: Scenario Outlines feature file
Scenario Outline: <site>
# Given Step from '<scen_out_row_num>' in 'scenario-outlines' feature file
Given the user navigates to home page '<site>'
Examples:
| site |
| https://google.com/ |
| https://nationalpost.com/ |
| https://ottawacitizen.com/ |
我也尝试过使用故障安全插件,但似乎没有任何区别。
我还尝试按照此处的示例进行操作:https://cucumber.io/docs/guides/parallel-execution/?lang=java#junit-4。但我的输出表明所有内容都在同一线程上运行
@@@ Thread ID - 1 - Scenario Outline Row 1 from scenario-outlines feature file.
@@@ Thread ID - 1 - Scenario Outline Row 2 from scenario-outlines feature file.
@@@ Thread ID - 1 - Scenario 1 from scenarios feature file.
@@@ Thread ID - 1 - Scenario 2 from scenarios feature file.
如果您使用
cucumber-junit
,您只能并行执行功能。这是由于 JUnit 4 中的技术限制。
如果升级到 JUnit 5,您可以使用
cucumber-junit-platform-engine
,它可以并行执行场景和示例。
查看示例项目和文档