如何使用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
相关产品推荐
相关产品推荐

