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

如何使用Cucumber-Java与TestNG并行运行Feature文件

Cucumber-Java + TestNG 实现Feature文件级并行执行

当前已基于TestNG实现了Cucumber的Scenario级别并行运行,现在需要调整为Feature文件级别的并行执行。

示例Feature文件

第一个Feature文件:

Feature: Refund item for Jeff

  Scenario: 01 Collect Details
    Given Collect Jeff details
    And Collect receipts for purchase
  
  Scenario: 02 Refund
    When Jeff returns the microwave
    Then Jeff should be refunded $100

第二个Feature文件:

Feature: Refund item for Dave

  Scenario: 01 Collect Details
    Given Collect Dave details
    And Collect receipts for purchase
  
  Scenario: 02 Refund
    When Dave returns the microwave
    Then Dave should be refunded $100

当前Scenario级并行代码

public class RunCucumberTest extends AbstractTestNGCucumberTests {

    @Override
    @DataProvider(parallel = true)
    public Object[][] scenarios() {
        return super.scenarios();
    }
}

实现Feature级并行的修改方案

要切换到Feature文件级并行,只需要将重写的方法从scenarios()改为features()即可,同时保留@DataProvider(parallel = true)注解:

public class RunCucumberTest extends AbstractTestNGCucumberTests {

    @Override
    @DataProvider(parallel = true)
    public Object[][] features() {
        return super.features();
    }
}

关键说明

  • features()方法会以整个Feature文件为单位提供测试数据,不同Feature文件会被分配到不同线程并行执行
  • 单个Feature文件内的所有Scenario会按原有顺序串行执行,不会拆分并行
  • 确保TestNG配置(如testng.xml)中没有设置与该并行策略冲突的参数,避免并行逻辑混乱

内容的提问来源于stack exchange,提问作者Santanu Ghatak

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 23:24:56