"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > BDD 테스트 속도를 높이기 위해 Cucumber를 병렬 실행과 함께 사용하려면 어떻게 해야 합니까?

BDD 테스트 속도를 높이기 위해 Cucumber를 병렬 실행과 함께 사용하려면 어떻게 해야 합니까?

2024-11-01에 게시됨
검색:213

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

오이 기능 파일을 병렬로 실행

소개

최신 테스트 환경에서 병렬 테스트 실행은 테스트 프로세스의 효율성과 속도를 크게 향상시킬 수 있습니다. 인기 있는 행동 중심 개발(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
      
    
  

생성된 러너 클래스 호출

생성된 러너 클래스를 병렬로 호출하려면 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;
    }
}

추가 고려 사항

  • 병렬 실행 및 그리드: 최적의 성능을 위해서는 충분한 노드(허브에 등록된 브라우저)가 있는 그리드를 사용하십시오.
  • 허브 메모리: 노드 수가 많은 허브 설치의 경우 풀 크기(예: -DPOOL_MAX=512)를 늘립니다(50개).
최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3