黄瓜功能并行执行的文件和方案

时间:2017-01-11 09:39:46

标签: cucumber

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

问题:我们可以为所有功能文件或场景执行并行执行吗?

4 个答案:

答案 0 :(得分:1)

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

查看以下链接:

  1. JVM-Parallel Execution Example

  2. Git-Hub Link

答案 1 :(得分:1)

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

我在上面托管Cucumber-JVM帖子的公司工作。验收测试 - 尤其是基于Web的测试 - 通常非常慢,并行测试是加速测试的好方法。您可能还想考虑在无头浏览器中运行Web测试,例如phantomJS。它们非常适合夜间运行,但我会在发布之前在firefox或chrome上测试它。您可能有浏览器特定的错误。

如果您正在运行Selenium测试,您可能还需要考虑使用Selenium Grid。上述方法在同一台机器上启动多个浏览器 - 但机器只能运行这么多浏览器。 Selenium Grid将在多台机器之间平衡测试。例如,你可以拥有5个节点,每个节点运行5个并行测试,每个节点并行测试25个!

如果并行运行多个测试,请记住测试应该是隔离的 - 理想情况下是否拥有并拆除自己的数据。不要假设任何其他测试的顺序(we use aliasing to get around this)。

哦,如果你打开它真的高,你最终会得到性能测试。所以要小心!

这是一些方便的链接:

答案 2 :(得分:1)

感谢大家的帮助!!我有答案。以下是逐步解决方案 味道 - 黄瓜-JVM IDE - Eclipse 1-什么? - 删除您的测试运行器文件    为什么? - 对于并行测试,JVM会自动为每个并行进程创建每个运行程序    什么时候? - 这个可能是任何配置之前的第一步enter image description here

2-什么? - 在POM.xml中添加下面提到的属性    为什么? - 稍后会添加    何时? - 编译之前

UTF-8

3-什么? - 在POM.xml中添加下面提到的插件    为什么? - 这会自动创建跑步者    何时? - 编译之前

  

                org.apache.maven.plugins                 Maven的万无一失,插件                 2.19.1

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

ParllelExecution

4-什么? - 在POM.xml中添加下面提到的插件    为什么? - 这将基于FEATURE或SCENARIO创建并行执行          将创建jason,HTML报告    何时? - 编译之前

  

                com.github.temyers                 黄瓜-JVM-平行插件                 2.2.0                                                               generateRunners                         验证                                                      generateRunners                         

                  <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>           
     

ParallelExecutionSceanrio-Feature

5-转到控制台并运行commomd     - mvn干净     - mvn编译     - mvn验证

答案 3 :(得分:0)

确实可能。

请参阅此链接以获取所有信息和信用:http://shashikantjagtap.net/running-cucumber-features-in-parallel-and-aggregating-reports/

希望这有帮助