ホームページ  >  記事  >  Java  >  ここでは、「質問」の側面に焦点を当てた、提供されたテキストに基づくいくつかのタイトル オプションを示します。 オプション 1 (より直接的): * `cucumber- を使用して Cucumber 機能ファイルを並列実行するにはどうすればよいですか?

ここでは、「質問」の側面に焦点を当てた、提供されたテキストに基づくいくつかのタイトル オプションを示します。 オプション 1 (より直接的): * `cucumber- を使用して Cucumber 機能ファイルを並列実行するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-26 13:41:02231ブラウズ

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. TestNG ランナーを呼び出すように Surefire プラグインを構成します:

    <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 の異なるスレッド インスタンスが存在しないようにするには、driver.quit() メソッドが呼び出されないようにする共有 WebDriver クラスを実装する必要があります。

    <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. 並列実行をサポートするようにハブを構成します:
    50 を超えるスレッドを実行する予定の場合は、スレッドの -DPOOL_MAX 値を増やす必要があります。 Hub.

    java -jar selenium-server-standalone-<version>.jar -role hub -DPOOL_MAX=512
  6. 機能ファイルを実行します:
    コマンドを使用して Cucumber テストを並列実行します:

    mvn test

以上がここでは、「質問」の側面に焦点を当てた、提供されたテキストに基づくいくつかのタイトル オプションを示します。 オプション 1 (より直接的): * `cucumber- を使用して Cucumber 機能ファイルを並列実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。