You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 21:57:36