」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何使用 Cucumber 並行執行來加速 BDD 測試?

如何使用 Cucumber 並行執行來加速 BDD 測試?

發佈於2024-11-01
瀏覽:188

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

並行執行Cucumber特徵檔

簡介

在現代測試環境中,並行測試執行可以顯著提高測試過程的效率和速度。 Cucumber 是一種流行的行為驅動開發 (BDD) 框架,允許並行執行功能檔案。

基於插件的方法

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

呼叫產生的運行器類別

新增 Maven Surefire 外掛程式以並行呼叫產生的運行器類別:


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

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