Heim >Java >javaLernprogramm >Wie kann ich Cucumber mit paralleler Ausführung verwenden, um meine BDD-Tests zu beschleunigen?
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!