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

使用cucumberjvm4并行运行cucumber测试

易昌翰
2023-03-14

Javav8. x-Springv5. xcucumberv4.2.0

我尝试了temyers/cucumber jvm并行插件,效果很好,但当我进入他们的gitihub页面时,他们宣布停止使用该插件b/c cucumber已经开始支持cucumber jvm 4.0的并行测试运行支持。0

我有使用以下maven依赖项的现有测试。

cucumber-java v4.2.0
cucumber-junit v4.2.0
cucumber-spring v4.2.0

我有两个问题让我困惑。

  1. 为了使用cucumber-jvm,我必须更改我的依赖项,否则我当前的依赖项将工作。
  2. 我可以开始并行cucumber测试只是传递一个参数-并行?

感谢您的帮助。

共有1个答案

左丘宜年
2023-03-14

并行支持是在jvm:4.0中引入的。0。所以你的依赖关系是好的。

如果您正在使用Maven:

Cucumber JUnit-与Maven并行执行

Cucumber JUnit支持跨多个线程并行执行功能文件。要使用maven启用此功能,请将并行属性设置为方法两者

<build>
    <plugins>
        <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <parallel>both</parallel>
                <threadCount>4</threadCount>
            </configuration>
        </plugin>
    </plugins>
</build>

如果你使用Gralde,你最好使用Gradlecucumber插件,因为Gradle不支持子类级并行化。在这种情况下,您不需要cucumber-jUnit

Gradlecucumber转轮-并行运行功能

如果指定要使用的线程数,Cucumber支持并行执行。这可以通过两种方式实现

  • 从命令行运行的选项,/gradlew Cumber——线程4,这将运行四个并行线程
  • 一个扩展,用于在构建中设置值。gradle文件位于cucumber部分

在构建脚本中设置值时,您无法真正知道构建将访问多少线程。硬编码一个固定的数字可能不是你最好的选择。

指定要使用的线程数的一种方法是:

cucumber {
    threads = = Runtime.runtime.availableProcessors().intdiv(2) ?: 1 
}

这将使用尽可能多的线程,同时将资源留给Gradle执行。

 类似资料:
  • 我目前正在尝试使用Cucumber实现并行测试运行。我设法使用万无一失的插件同时运行了两个不同的运行程序。现在我想检查是否可以并行运行SingleRunner文件多次。 我有一个签名测试。所以我需要在几个平台上并行运行。有可能吗? 这是我的跑步者档案 无跑道进近 工厂级 `导入org . open QA . selenium . web driver; ` 阶梯班 导入org.openqa.sel

  • 我是Serenity和BDD的新手。我有一个基于Serenity Cucumber和Page based模型的小型演示项目。项目结构如下: 登录和注销功能大约有8种情况。 我希望能够并行运行功能文件。实现这一点的最简单和最有效的方法是什么? 到目前为止我已经 > 为每个功能创建了单独的 Runner 类,然后使用故障安全或万无一失的插件 - 这是我不想要的,因为我不希望每个功能文件都有新的运行器。

  • Cucumber测试没有并行运行(Cucumber jvm并行插件)? 如果我使用runner类执行测试,一次将执行一个功能文件,但是当将以下插件添加到POM文件时,似乎没有功能文件执行? 即使我指向了正确的功能文件文件夹? 我的POM文件:

  • 我试图使用TestNG和SpringBootTest并行运行两个Cucumber测试,但当我的测试执行时,会发生以下情况 两个浏览器都打开并导航到维基百科主页 1个浏览器继续测试,另一个留在主页上 1个测试通过,另一个测试失败 我不知道为什么一个测试会停止执行,欢迎任何帮助。 回购:https://github.com/cmccarthyIrl/spring-cucumber-testng-par

  • 我正在尝试运行一个使用Mockito的JUnit cucumber测试。这是我遇到的问题。在我的cucumber赛跑课上,我有 在我的常规JUnit测试中 鉴于我一次只能有一个@RunWith,我如何将Mockito与cucumber结合使用呢?

  • 我正试图在Maven中基于cucumber标记运行一套JUnitCucumber特性。我可以让它们按顺序运行,但不能并行运行。我找到了一个名为小胡瓜的软件包,它可以帮我解决这个问题。 然而,我无法让测试运行,我看了github上的示例maven项目,它在Cucumber.class运行良好,但在西葫芦上抛出一个错误。 任何帮助将不胜感激。 我已在pom中包括以下内容 我是在召唤我的跑步者。 我得到