「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Cucumber を並列実行で使用して BDD テストを高速化するにはどうすればよいですか?

Cucumber を並列実行で使用して BDD テストを高速化するにはどうすればよいですか?

2024 年 11 月 1 日に公開
ブラウズ:588

How can I use Cucumber with parallel execution to speed up my BDD tests?

Cucumber フィーチャー ファイルの並列実行

はじめに

最新のテスト環境では、テストの並列実行により、テスト プロセスの効率と速度が大幅に向上します。人気のある動作駆動開発 (BDD) フレームワークである Cucumber では、機能ファイルの並列実行が可能です。

プラグインベースのアプローチ

Cucumber で並列実行を実現するには、cucumber- jvm-パラレルプラグイン。このプラグインは、並列実行できるテスト ランナー クラスを動的に作成します。

構成

  1. プラグインを pom.xml に追加します:

  com.github.temyers
  cucumber-jvm-parallel-plugin
  2.1.0
  1. pom.xml でプラグインを構成します:

  com.github.temyers
  cucumber-jvm-parallel-plugin
  2.1.0
  
    
      generateRunners
      generate-test-sources
      
        generateRunners
      
      
        foo, bar
        ${project.build.directory}/generated-test-sources/cucumber
        src/test/resources/features/
        target/cucumber-parallel
        json
      
    
  

Invoke Generated Runner Classes

生成されたランナー クラスを並列で呼び出すための Maven Surefire プラグインを追加します:


  org.apache.maven.plugins
  maven-surefire-plugin
  2.19
   
    5
    true
    
      **/*IT.class
    
  

Shared WebDriver

テストを並行して実行するには、WebDriver インスタンスを共有し、テスト内で明示的に閉じないようにする必要があります。 SharedDriver クラスはこれを実現します。

public class SharedDriver extends EventFiringWebDriver {
    private static WebDriver REAL_DRIVER = null;

    static {
        Runtime.getRuntime().addShutdownHook(CLOSE_THREAD);
    }

    public SharedDriver() {
        super(CreateDriver());
    }

    public static WebDriver CreateDriver() {
        WebDriver webDriver;
        if (REAL_DRIVER == null)
            webDriver = new FirefoxDriver();
        setWebDriver(webDriver);
        return webDriver;
    }
}

その他の考慮事項

  • 並列実行とグリッド: 最適なパフォーマンスを得るには、十分なノード (ハブに登録されているブラウザ) を持つグリッドを使用します。
  • ハブ メモリ: ノード数が多い (50 ) ハブ インストールの場合は、プール サイズ (例: -DPOOL_MAX=512) を増やします。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3