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

Cucumber特征文件和并行执行场景

秦永望
2023-03-14

使用Cucumber,我们创建了由不同场景组成的不同功能文件。我们记住的一件事是,每个场景都独立于所有其他场景。

问:我们可以对所有的特征文件或场景进行并行执行吗?

共有3个答案

马航
2023-03-14

2-什么-在POM中添加以下属性。xml为什么-稍后将添加此内容何时-编译前

3-什么?-在您的POM中添加下面提到的插件.xml为什么?-这将自动创建运行器何时?-编译之前

org.apache.maven。插件maven-surefire插件2.19.1

          <configuration>
              <additionalClasspathElements>
                  <additionalClasspathElement>resources</additionalClasspathElement>
              </additionalClasspathElements>
              <forkCount>5</forkCount>
              <reuseForks>true</reuseForks>
              <includes>
                  <include>**/*IT.class</include>
              </includes>
          </configuration>

4-什么?-在POM.xml中添加下面提到的插件为什么?-这将在功能或场景的基础上创建并行执行,并将在何时创建jason、HTML报告?-编译前

com . github . temyers cucumber-JVM-parallel-plugin 2 . 2 . 0生成器运行器验证生成器运行器

                  <configuration>
                      <glue>russel.StepDefination.Option1.IN451</glue>
                      <featuresDirectory>Login</featuresDirectory>
                      <cucumberOutputDir>target/Parallel-report</cucumberOutputDir>
                      <format>json,html</format>
                      <parallelScheme>SCENARIO</parallelScheme>
                      <!-- <parallelScheme>FEATURE</parallelScheme> -->

                  </configuration>
              </execution>
          </executions>           

5-转到的控制台并运行commomd-mvn clean-mvn compile-mvn verify

束向荣
2023-03-14

是的,正如其他两个答案所暗示的那样,它不是开箱即用的。

  • 对于Cucumber-JVM(java),请使用此Maven插件。
  • 红宝石cucumber用这个红宝石。

我为上面Cucumber JVM帖子的宿主公司工作。验收测试——尤其是基于web的验收测试——通常非常缓慢,而并行测试是加快验收测试速度的一个好方法。您可能还想考虑在无头浏览器(如phantomJS)中运行web测试。它们非常适合夜间跑步,但我会在发布前在firefox或chrome上测试它。您可能有特定于浏览器的错误。

如果您正在运行硒测试,您可能需要考虑也使用Selenium Grid。上述方法在同一台机器上启动多个浏览器 - 但机器只能运行这么多浏览器。Selenium Grid将平衡多台机器的测试。因此,例如,您可以让 5 个节点运行 5 个并行测试 = 25 个并行测试!

如果并行运行许多测试,请记住测试应该是隔离的——理想情况下应该有并删除它们自己的数据。不要假设任何其他测试的顺序(我们使用混淆现象来绕过这个问题)。

哦,如果你把音量调得很大,你最终会得到一个性能测试。所以要小心这一点!

以下是一些方便的链接:

>

  • 关于Cucumber JVM的重复答案

    Cucumber JVM的测试自动化快速入门框架-包括并行测试

    Ruby的测试自动化快速入门框架-包括并行测试和phantomjs集成

    上面关于并行cucumber-jvm的博文的更新版本

    硒网格并联测试简介

    关于无头测试的另一个问题

  • 冯鸿光
    2023-03-14

    现成的Cucumber不支持并行测试。您可以使用Maven运行并行测试。我们有一个github项目,请检查此链接。它有一些关于并行测试的细节。

    查看这些链接:

    >

  • JVM并行执行示例

    Git-Hub链接

  •  类似资料:
    • 问题内容: 我在src / test / resources / feature /中有以下功能文件(单独的功能文件),我想并行运行它们。就像:一个功能文件必须在chrome中执行,而另一个功能文件必须在firefox中执行,如@Tags名称所述。 有人可以帮助我实现这一点吗?我使用的是cumul-java 1.2.2版本,并且使用AbstractTestNGCucumberTests作为运行程序

    • 我一直在阅读大量的文档、帖子和文章,据说在单个功能文件中并行运行场景的开箱即用解决方案是不可能的。我们可以使用maven-surefire插件在不同的特性文件中并行运行,但不能在场景中运行。 例如,有一个包含场景的功能文件: 我想在单独的线程中同时运行所有这些场景。 我该如何实现这一点?

    • 我想为每个特定的功能文件指定特定的设置和拆卸步骤。我已经看到了允许代码在每个场景之前执行的钩子,以及在每个功能之前执行代码的钩子。但是我想指定代码在所有场景为一个特定功能运行之前和之后运行一次。 这有可能吗?