Maison  >  Article  >  Java  >  Voici quelques options de titre basées sur le texte fourni, en se concentrant sur l'aspect « question » : Option 1 (plus directe) : * Comment puis-je exécuter les fichiers de fonctionnalités Cucumber en parallèle à l'aide du `cucumber-

Voici quelques options de titre basées sur le texte fourni, en se concentrant sur l'aspect « question » : Option 1 (plus directe) : * Comment puis-je exécuter les fichiers de fonctionnalités Cucumber en parallèle à l'aide du `cucumber-

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-26 13:41:02231parcourir

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

Exécution des fichiers de fonctionnalités Cucumber en parallèle

Pour exécuter les fichiers de fonctionnalités Cucumber en parallèle, vous pouvez utiliser un plugin appelé concombre-jvm-parallel- plugin. Voici comment l'utiliser :

  1. Ajoutez le plugin à votre POM :

    <code class="xml"><dependency>
      <groupId>com.github.temyers</groupId>
      <artifactId>cucumber-jvm-parallel-plugin</artifactId>
      <version>2.1.0</version>
    </dependency></code>
  2. Configurer le plugin dans votre 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. Configurez le plugin Surefire pour appeler les coureurs TestNG :

    <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. Partagez l'instance WebDriver :
    Afin d'éviter d'avoir différentes instances de thread de WebDriver, vous devez implémenter une classe WebDriver partagée qui empêche l'appel de la méthode driver.quit() :

    <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. Configurer le Hub pour prendre en charge l'exécution parallèle :
    Si vous prévoyez d'exécuter plus de 50 threads, vous devez augmenter la valeur -DPOOL_MAX pour le Hub.

    java -jar selenium-server-standalone-<version>.jar -role hub -DPOOL_MAX=512
  6. Exécutez les fichiers de fonctionnalités :
    Exécutez vos tests Cucumber en parallèle à l'aide de la commande :

    mvn test

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn