Heim  >  Artikel  >  Java  >  Hier sind einige Titeloptionen, die auf dem bereitgestellten Text basieren und sich auf den Aspekt „Frage“ konzentrieren: Option 1 (direkter): * Wie führe ich Cucumber-Funktionsdateien parallel mit dem Befehl „cucumber-“ aus?

Hier sind einige Titeloptionen, die auf dem bereitgestellten Text basieren und sich auf den Aspekt „Frage“ konzentrieren: Option 1 (direkter): * Wie führe ich Cucumber-Funktionsdateien parallel mit dem Befehl „cucumber-“ aus?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-26 13:41:02231Durchsuche

Here are a few title options based on the provided text, focusing on the

Cucumber-Feature-Dateien parallel ausführen

Um Cucumber-Feature-Dateien parallel auszuführen, können Sie ein Plugin namens „gurke-jvm-parallel-“ nutzen. Plugin. So verwenden Sie es:

  1. Plugin zu Ihrem POM hinzufügen:

    <code class="xml"><dependency>
      <groupId>com.github.temyers</groupId>
      <artifactId>cucumber-jvm-parallel-plugin</artifactId>
      <version>2.1.0</version>
    </dependency></code>
  2. Konfigurieren das Plugin in Ihrem Build:

    <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. Konfigurieren Sie das Surefire-Plugin zum Aufrufen von TestNG-Runnern:

    <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-Instanz freigeben:
    Um unterschiedliche Thread-Instanzen des WebDriver zu vermeiden, müssen Sie eine gemeinsam genutzte WebDriver-Klasse implementieren, die verhindert, dass die Methode „driver.quit()“ aufgerufen wird:

    <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. Konfigurieren Sie den Hub zur Unterstützung der parallelen Ausführung:
    Wenn Sie mehr als 50 Threads ausführen möchten, müssen Sie den -DPOOL_MAX-Wert für erhöhen Hub.

    java -jar selenium-server-standalone-<version>.jar -role hub -DPOOL_MAX=512
  6. Führen Sie die Funktionsdateien aus:
    Führen Sie Ihre Gurkentests parallel mit dem folgenden Befehl aus:

    mvn test

Das obige ist der detaillierte Inhalt vonHier sind einige Titeloptionen, die auf dem bereitgestellten Text basieren und sich auf den Aspekt „Frage“ konzentrieren: Option 1 (direkter): * Wie führe ich Cucumber-Funktionsdateien parallel mit dem Befehl „cucumber-“ aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn