
Exécuter des fichiers de fonctionnalités Cucumber en parallèle
Introduction
Dans les environnements de test modernes, l'exécution de tests en parallèle peut améliorer considérablement l'efficacité et la rapidité des processus de test. Cucumber, un framework de développement basé sur le comportement (BDD) populaire, permet l'exécution parallèle de fichiers de fonctionnalités.
Approche basée sur les plugins
Pour réaliser une exécution parallèle dans Cucumber, vous pouvez utiliser le concombre- jvm-parallel-plugin. Ce plugin crée dynamiquement des classes d'exécuteur de test qui peuvent être exécutées en parallèle.
Configuration
- Ajoutez le plugin à pom.xml :
1 2 3 4 5 | <code class = "xml" ><dependency>
<groupId>com.github.temyers</groupId>
<artifactId>cucumber-jvm-parallel-plugin</artifactId>
<version>2.1.0</version>
</dependency></code>
|
Copier après la connexion
- Configurer le plugin dans pom.xml :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <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>
|
Copier après la connexion
Invoquer des classes de coureur générées
Ajouter un plugin Maven Surefire pour invoquer les classes d'exécution générées en parallèle :
1 2 3 4 5 6 7 8 9 10 11 12 | <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>
|
Copier après la connexion
Shared WebDriver
Pour exécuter des tests en parallèle, l'instance WebDriver doit être partagée et non explicitement fermée dans les tests. La classe SharedDriver réalise ceci :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <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>
|
Copier après la connexion
Considérations supplémentaires
-
Exécution parallèle et grille : Pour des performances optimales, utilisez une grille avec suffisamment de nœuds (navigateurs enregistrés avec le hub).
-
Mémoire du Hub : Augmentez la taille du pool (par exemple, -DPOOL_MAX=512) pour les installations Hub avec un nombre élevé de nœuds (50).
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!