Search code examples
seleniumselenium-webdriverwebdrivercucumbercucumber-jvm

selenium cucumber tests taking longer time while executing in parallel?


So far I'm able to run cucumber-jvm tests in parallel by using multiple runner classes but as my project increasing and new features are adding up each time so it's getting really difficult to optimise execution time

So my question is what is the best approach to optimise execution time

  • Is it by adding new runner class for each feature/limiting to certain threads and updating runner class with new tags to execute

So far I'm using thread count 8 and I've runner classes are also 8

Using this approach is fine until now, but one of the feature has got more scenarios added recently and it's taking longer time to finish :( so how is it possible to optimise execution time here...

Any help much appreciated!!


Solution

  • This worked for me:

    Courgette-JVM

    It has added capabilities to run cucumber tests in parallel on a feature level or on a scenario level.

    It also provides an option to automatically re-run failed scenarios.

    Usage

    @RunWith(Courgette.class)
    @CourgetteOptions(
        threads = 10,
        runLevel = CourgetteRunLevel.SCENARIO,
        rerunFailedScenarios = true,
        showTestOutput = true,
        cucumberOptions = @CucumberOptions(
                features = "src/test/resources/features",
                glue = "steps",
                tags = {"@regression"},
                plugin = {
                        "pretty",
                        "json:target/courgette-report/courgette.json",
                        "html:target/courgette-report/courgette.html"}
        ))
        public class RegressionTestSuite {
        }