基于Cucumber、Selenium和JUnit 5的并行测试场景顺序问题
解决Cucumber7并行运行Feature但保持Scenario顺序的问题
要实现Feature级并行(多个Feature同时运行)且每个Feature内的Scenario按编写顺序执行,需要在RunnerTest类的@ConfigurationParameters中添加两个关键配置:
- 设置并行执行模式为Feature级别,确保每个Feature作为独立并行单元,内部Scenario不会被拆分并行
- 指定测试执行顺序为按定义顺序,强制Scenario按
.feature文件中的编写顺序运行
修改后的配置代码如下:
@ConfigurationParameters({ @ConfigurationParameter(key = GLUE_PROPERTY_NAME, value = "web.selenium.steps, web.selenium.testRunner"), @ConfigurationParameter(key = PLUGIN_PROPERTY_NAME, value = "pretty, html:target/report.html, io.qameta.allure.cucumber7jvm.AllureCucumber7Jvm"), @ConfigurationParameter(key = PARALLEL_EXECUTION_ENABLED_PROPERTY_NAME, value = "true"), // 设置并行模式为Feature级别 @ConfigurationParameter(key = PARALLEL_EXECUTION_MODE_PROPERTY_NAME, value = "FEATURE"), // 指定Scenario按定义顺序执行 @ConfigurationParameter(key = TEST_EXECUTION_ORDER_PROPERTY_NAME, value = "DEFINED") })
关键参数说明:
PARALLEL_EXECUTION_MODE_PROPERTY_NAME:对应常量值cucumber.execution.parallel.mode,设置为FEATURE时,Cucumber会以整个Feature为单位分配到不同线程并行,而非拆分Scenario到多个线程。TEST_EXECUTION_ORDER_PROPERTY_NAME:对应常量值cucumber.execution.order,设置为DEFINED时,Cucumber会严格按照.feature文件中Scenario的编写顺序执行,不会随机打乱。
配置完成后,多个Feature会并行运行,同时每个Feature内部的Scenario会完全按照编写顺序依次执行。
内容的提问来源于stack exchange,提问作者aleksf16
相关产品推荐
相关产品推荐

