Cucumber can be executed in parallel using JUnit and Maven test execution plugins. You can use either Maven Surefire or Failsafe plugin to execute the runners.
Parallel Execution in Cucumber using Maven Surefire Plugin
Step 1: Add Maven Surefire plugin
Add below code in plugins section of pom.xml. Replace the latest version from here
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M4</version>
<configuration>
<parallel>methods</parallel>
<threadCount>3</threadCount>
<perCoreThreadCount>false</perCoreThreadCount>
</configuration>
</plugin>
- threadCount: The thread count in the above setting is 3 threads per core.
- perCoreThreadCount: If you want this to be 3 threads across all cores set the perCoreThreadCount to false.
- useUnlimitedThreads: To set the thread count to useUnlimitedThreads instead of specific number set useUnlimitedThreads to true.
- parallel: In case of multiple runners one can also set the parallel option to classesAndMethods or classes in addition to methods.
Step 2: Use Maven command to run
Use the Maven test or a suitable command to execute the POM. This should run in parallel threaded mode.
$ mvn test
Note: In JUnit the feature files are run in parallel rather than scenarios, which means all the scenarios in a feature file will be executed by the same thread.