当前位置: 首页 > 知识库问答 >
问题:

在cucumber功能文件中并行运行场景,一次运行一个功能文件

乜建柏
2023-03-14

我正在使用Maven SureFire,TestNG(扩展AbstractTestNGCucumber测试)和Cucumber,并且有几个功能文件,每个文件都有几个场景。我希望能够在一个功能文件中并行运行每个场景,但一次只能运行一个功能文件。这有可能吗?

举个例子:

Feature file 1
  Scenario 1a
  Scenario 1b
  Scenario 1c

Feature file 2
  Scenario 2a
  Scenario 2b

Feature file 3
  Scenario 3a
  Scenario 3b
  Scenario 3c
  Scenario 3d

我希望场景1a、1b和1c在功能文件1中并行运行。一旦这些完成,运行场景2a和功能2等的2b。

这是当前一次从所有功能文件运行所有方案的测试类。

@CucumberOptions (
    plugin = {
        "html:target/cucumber-reports",
        "json:target/cucumber.json",
        "usage:target/cucumber-usage.json"
    },
    tags = "not @disabled",
    monochrome = true,
    features = {
         "src/test/resources/features/feature1.feature",
         "src/test/resources/features/feature2.feature",
         "src/test/resources/features/feature3.feature",
    })
public class AllTests extends AbstractTestNGCucumberTests {

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

这是否可能使用配置

谢谢Scott

共有1个答案

昝成弘
2023-03-14

这不仅仅是配置所能做到的。我这样说的原因是因为您期望从一个@DataProvider中获得多级并行执行策略,这在今天的TestNG中是不可能的。您需要利用一个套件xml文件在更高级别上控制并行执行策略,然后可以通过利用一个与并行属性耦合的@DataProvider在较低级别上进行调整。

完成此操作的最简单方法是执行以下操作:

  1. 为每个特征文件创建一个Java类。
  2. 创建一个包含n类的套件文件,并将并行策略定义为无(这将迫使TestNG拾取每个类并以顺序方式运行它们)
  3. 不要忘记设置一个理想的数据提供程序线程数(默认值为10),并在你的@DataProvider
  4. 中设置属性 并行=true
 类似资料:
  • 我有一堆功能文件(大约15个),其中每个功能文件都有一个线程,需要睡眠至少3分钟(对于一些复杂的后台应用程序,需要执行一些功能)。我需要一种并行执行它们的方法。 我有一个简单的CucumberRunnerTestCLass。 非常感谢您的帮助。谢谢

  • 对于多个场景,我想在每个cucumber功能文件中只执行一次后台。如何在step文件中执行此操作? 功能:用户可以验证。。。。。。。。。。。 背景:给定输入特定逻辑的测试数据 场景:验证。。。。。。。。。1当A1和B1然后C1时 场景:验证.........2当A2和B2然后C2 场景:验证。。。。。。。。。2当A3和B3然后C3时

  • 我需要一些帮助运行一个功能文件。 这是Maven项目的骨架: 这是我的pom.xml文件: 我不能运行功能文件,与此,我不能运行任何与cucumber相关的。你能帮帮我吗? 提前谢了。

  • 我有IntelliJ 2017.1和TestNG和Cucumber。我可以从testng运行测试。xml。但是,当我在场景上用鼠标右键从IntelliJ中的Cucumber特性文件运行相同的程序并单击run时,testng中没有任何设置。xml很荣幸。无法指定testng。用于编辑配置中cucumber的xml。有解决办法吗?请帮忙!

  • 我有一个示例项目,其中使用了Maven、TestNg和Cucumber。我使用testrunner类运行测试。 我创建了一个包含两个方案的功能文件,但两个方案都失败了。我有两个具有不同功能文件的测试运行者类 - 1。特征文件指向所有功能,2。指向仅失败的方案。 当我尝试重新运行场景时,它只运行一个场景。 1- 请告知如何执行所有失败的方案。

  • 问题内容: 我正在使用Node,并且需要使此功能每天在午夜运行,这可能吗? 问题答案: 我相信节点计划包将满足您的需求。通常,您希望所谓的cron安排和运行服务器任务。 使用 节点计划 :