In modernen Testumgebungen kann die parallele Testausführung die Effizienz und Geschwindigkeit von Testprozessen erheblich verbessern. Cucumber, ein beliebtes Framework für verhaltensgesteuerte Entwicklung (BDD), ermöglicht die parallele Ausführung von Feature-Dateien.
Um eine parallele Ausführung in Cucumber zu erreichen, können Sie das Gurken-Framework verwenden. jvm-parallel-plugin. Dieses Plugin erstellt dynamisch Testläuferklassen, die parallel ausgeführt werden können.
<code class="xml"><dependency> <groupId>com.github.temyers</groupId> <artifactId>cucumber-jvm-parallel-plugin</artifactId> <version>2.1.0</version> </dependency></code>
<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>
Fügen Sie ein Maven Surefire-Plugin hinzu um die generierten Runner-Klassen parallel aufzurufen:
<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>
Um Tests parallel auszuführen, muss die WebDriver-Instanz innerhalb der Tests gemeinsam genutzt und nicht explizit geschlossen werden. Die SharedDriver-Klasse erreicht Folgendes:
<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>
Das obige ist der detaillierte Inhalt vonWie kann ich Cucumber mit paralleler Ausführung verwenden, um meine BDD-Tests zu beschleunigen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!