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

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

Linda Hamilton
풀어 주다: 2024-11-02 17:30:29
원래의
927명이 탐색했습니다.

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

Cucumber 기능 파일을 병렬로 실행

소개

최신 테스트 환경에서 병렬 테스트 실행은 테스트 프로세스의 효율성과 속도를 크게 향상시킬 수 있습니다. 인기 있는 행동 중심 개발(BDD) 프레임워크인 Cucumber는 기능 파일의 병렬 실행을 허용합니다.

플러그인 기반 접근 방식

Cucumber에서 병렬 실행을 달성하려면 Cucumber- jvm-병렬-플러그인. 이 플러그인은 병렬로 실행될 수 있는 테스트 실행기 클래스를 동적으로 생성합니다.

구성

  1. pom.xml에 플러그인 추가:
<code class="xml"><dependency>
  <groupId>com.github.temyers</groupId>
  <artifactId>cucumber-jvm-parallel-plugin</artifactId>
  <version>2.1.0</version>
</dependency></code>
로그인 후 복사
  1. pom.xml에서 플러그인 구성:
<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>
        <glue>foo, bar</glue>
        <outputDirectory>${project.build.directory}/generated-test-sources/cucumber</outputDirectory>
        <featuresDirectory>src/test/resources/features/</featuresDirectory>
        <cucumberOutputDir>target/cucumber-parallel</cucumberOutputDir>
        <format>json</format>
      </configuration>
    </execution>
  </executions>
</plugin></code>
로그인 후 복사

생성된 Runner 클래스 호출

Maven 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>
로그인 후 복사

공유 WebDriver

테스트를 병렬로 실행하려면 WebDriver 인스턴스를 공유해야 하며 테스트 내에서 명시적으로 닫아서는 안 됩니다. SharedDriver 클래스는 다음을 달성합니다.

<code class="java">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;
    }
}</code>
로그인 후 복사

추가 고려 사항

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

위 내용은 BDD 테스트 속도를 높이기 위해 Cucumber를 병렬 실행과 함께 사용하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿