首页 >Java >java教程 >以下是基于所提供文本的一些标题选项,重点关注'问题”方面: 选项 1(更直接): * 如何使用'cucumber-”并行运行 Cucumber 功能文件

以下是基于所提供文本的一些标题选项,重点关注'问题”方面: 选项 1(更直接): * 如何使用'cucumber-”并行运行 Cucumber 功能文件

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-26 13:41:02324浏览

Here are a few title options based on the provided text, focusing on the

并行执行 Cucumber 功能文件

要并行执行 Cucumber 功能文件,您可以利用名为 cucumber-jvm-parallel 的插件 -插件。使用方法如下:

  1. 将插件添加到您的 POM:

    <code class="xml"><dependency>
      <groupId>com.github.temyers</groupId>
      <artifactId>cucumber-jvm-parallel-plugin</artifactId>
      <version>2.1.0</version>
    </dependency></code>
  2. 配置您构建中的插件:

    <code class="xml"><plugin>
      <groupId>com.github.temyers</groupId>
      <artifactId>cucumber-jvm-parallel-plugin</artifactId>
      <version>2.1.0</version>
      <executions>
        <execution>
          <id>generateRunners</id>
          <phase>generate-test-sources</phase>
          <goals>
            <goal>generateRunners</goal>
          </goals>
          <configuration>
            <!-- Package names for glue code -->
            <glue>com.example.cucumber</glue>
            <!-- Output directory for generated runner classes -->
            <outputDirectory>${project.build.directory}/generated-test-sources/cucumber</outputDirectory>
            <!-- Features directory -->
            <featuresDirectory>src/test/resources/features/</featuresDirectory>
            <!-- Output directory for Cucumber reports -->
            <cucumberOutputDir>target/cucumber-parallel</cucumberOutputDir>
            <!-- Output format -->
            <format>json</format>
            <!-- Strict property -->
            <strict>true</strict>
            <!-- Monochrome property -->
            <monochrome>true</monochrome>
            <!-- Tags to run -->
            <tags></tags>
            <!-- Filter features by tags -->
            <filterFeaturesByTags>false</filterFeaturesByTags>
            <!-- Use TestNG runners -->
            <useTestNG>false</useTestNG>
            <!-- Naming scheme -->
            <namingScheme>simple</namingScheme>
            <!-- Naming pattern -->
            <namingPattern>Parallel{c}IT</namingPattern>
            <!-- Parallel scheme -->
            <parallelScheme>SCENARIO</parallelScheme>
          </configuration>
        </execution>
      </executions>
    </plugin></code>
  3. 配置 Surefire 插件以调用 TestNG 运行程序:

    <code class="xml"><plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>2.19</version>
      <configuration>
        <forkCount>5</forkCount>
        <reuseForks>true</reuseForks>
        <includes>
          <include>**/*IT.class</include>
        </includes>
      </configuration>
    </plugin></code>
  4. 共享 WebDriver 实例:
    为了避免 WebDriver 具有不同的线程实例,您必须实现一个共享 WebDriver 类,以防止调用 driver.quit() 方法:

    <code class="java">import org.openqa.selenium.WebDriver;
    import org.openqa.selenium.firefox.FirefoxDriver;
    import org.openqa.selenium.support.events.EventFiringWebDriver;
    
    public class SharedDriver extends EventFiringWebDriver {
      private static WebDriver REAL_DRIVER = null;
    
      public SharedDriver() {
        super(CreateDriver());
      }
    
      public static WebDriver CreateDriver() {
        WebDriver webDriver;
        if (REAL_DRIVER == null) {
          webDriver = new FirefoxDriver();
          setWebDriver(webDriver);
        }
        return webDriver;
      }
    
      public static void setWebDriver(WebDriver webDriver) {
        REAL_DRIVER = webDriver;
      }
    
      public static WebDriver getWebDriver() {
        return REAL_DRIVER;
      }
    
      @Override
      public void close() {
        if (Thread.currentThread() != CLOSE_THREAD) {
          throw new UnsupportedOperationException("You shouldn't close this WebDriver. It's shared and will close when the JVM exits.");
        }
        super.close();
      }
    }</code>
  5. 配置 Hub 以支持并行执行:
    如果您计划运行超过 50 个线程,则需要增加 -DPOOL_MAX 值Hub。

    java -jar selenium-server-standalone-<version>.jar -role hub -DPOOL_MAX=512
  6. 执行功能文件:
    使用以下命令并行运行 Cucumber 测试:

    mvn test

以上是以下是基于所提供文本的一些标题选项,重点关注'问题”方面: 选项 1(更直接): * 如何使用'cucumber-”并行运行 Cucumber 功能文件的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn