BDD cucumber Parallel execution

 

Parallel Execution

pom.xml

   

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <groupId>Automation</groupId>

  <artifactId>parallelExecution</artifactId>

  <version>0.0.1-SNAPSHOT</version>

 

                             <dependencies>

                                        

                           <dependency>

                               <groupId>org.seleniumhq.selenium</groupId>

                               <artifactId>selenium-java</artifactId>

                               <version>3.14.0</version>

                              

                           </dependency>

                                                <!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->

                           <dependency>

                               <groupId>org.apache.poi</groupId>

                               <artifactId>poi</artifactId>

                               <version>4.1.2</version>

                           </dependency>

 

                           <dependency>

                               <groupId>org.apache.commons</groupId>

                               <artifactId>commons-lang3</artifactId>

                               <version>3.0</version>

                           </dependency>

                           <dependency>

                               <groupId>org.apache.directory.studio</groupId>

                               <artifactId>org.apache.commons.io</artifactId>

                               <version>2.4</version>

                           </dependency>

                          

                                 

                          

                                  <dependency>

                                      <groupId>com.aventstack</groupId>

                                      <artifactId>extentreports</artifactId>

                                      <version>3.1.3</version>

                                  </dependency>

                         <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->

                                         <dependency>

                                             <groupId>org.apache.poi</groupId>

                                             <artifactId>poi-ooxml</artifactId>

                                             <version>4.1.0</version>

                                         </dependency>

                                                      

                                                       <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml-schemas -->

                                         <dependency>

                                             <groupId>org.apache.poi</groupId>

                                             <artifactId>poi-ooxml-schemas</artifactId>

                                             <version>4.1.0</version>

                                         </dependency>

                                                             

                                                              <!-- https://mvnrepository.com/artifact/commons-io/commons-io -->

                                         <dependency>

                                             <groupId>commons-io</groupId>

                                             <artifactId>commons-io</artifactId>

                                             <version>2.6</version>

                                         </dependency>

                                        

                                         <dependency>

                                      <groupId>org.json</groupId>

                                      <artifactId>json</artifactId>

                                      <version>20180813</version>

                                  </dependency>

                                 

                                  <dependency>

                                      <groupId>junit</groupId>

                                      <artifactId>junit</artifactId>

                                      <version>4.12</version>

                                   

                         </dependency>

                        <dependency>

                               <groupId>io.cucumber</groupId>

                               <artifactId>cucumber-junit</artifactId>

                               <version>6.1.1</version>

                             

                       </dependency>

                      

                       <!-- <dependency>

                               <groupId>io.cucumber</groupId>

                               <artifactId>cucumber-java8</artifactId>

                               <version>6.7.0</version>

                            

             </dependency> -->

             <dependency>

                               <groupId>io.cucumber</groupId>

                               <artifactId>cucumber-java</artifactId>

                               <version>6.1.1</version>

                             

                     </dependency>

                     </dependencies>

                    

                              <build>

                              

                                     <plugins>

                                     <plugin>

                                       <groupId>org.apache.maven.plugins</groupId>

                                       <artifactId>maven-compiler-plugin</artifactId>

                                       <version>3.1</version>

                                       <configuration>

                                           <source>1.8</source>

                                           <target>1.8</target>

                                       </configuration>

                                   </plugin>

                                  

                          

                    

                                                    <plugin>

                                                                               <groupId>org.apache.maven.plugins</groupId>

                                                                               <artifactId>maven-surefire-plugin</artifactId>

                                                                               <version>2.21.0</version>

                                                                               <configuration>

                                                                                   <parallel>methods</parallel>

                                                                                   <useUnlimitedThreads>true</useUnlimitedThreads>

                                                                                    <includes>

                                                                         <include>**/Runner.class</include>

                                                                      </includes>

                                                                               </configuration>

                                               </plugin>


                                 </plugins>   

    

                              </build>

                      

</project>

 Runner class

package cucumberRunner;

 

import org.junit.runner.RunWith;

 

import io.cucumber.junit.Cucumber;

import io.cucumber.junit.CucumberOptions;

 

@RunWith(Cucumber.class)

@CucumberOptions(

               features={"src//test//resources//parallel//"},

                          

               glue={"StepDefination"},

             

                            plugin = { "html:target/cucumber-html-report",

                      "json:target/cucumber.json", "pretty:target/cucumber-pretty.txt",

                      "usage:target/cucumber-usage.json", "junit:target/cucumber-results.xml",

              "rerun:target/rerun.txt"

                     }

      

             

              )

       public class Runner

       {

 

 

       }

 

 


scenarios.feature

Feature: Scenarios feature file

 

  Scenario: ScenarioNumber One

    Given Step from 'Scenario 1' in 'scenarios' feature file

 

  Scenario: ScenarioNumber Two

    Given Step from 'Scenario 2' in 'scenarios' feature file

scenario-outlines.feature

Feature: ScenarioOutlines feature file

 

  Scenario Outline: <scen_out_row_num>

    Given Step from '<scen_out_row_num>' in 'scenario-outlines' feature file

 

    Examples:

      | scen_out_row_num       |

      | Scenario Outline Row 1 |

      | Scenario Outline Row 2 |

StepDefs

package StepDefination;

 

import io.cucumber.java.en.Given;

import parallelExecution.root;

 

public class StepDefs extends root {

      

       @Given("Step from {string} in {string} feature file")

    public void step(String scenario, String file) throws InterruptedException {

             

             

        System.out.format("Thread ID - %2d - %s from %s feature file.\n",

        Thread.currentThread().getId(), scenario,file);

       

        //driver.get("https://maven.apache.org/guides/mini/guide-creating-archetypes.html");

        Thread.sleep(500);

    }

 

}

 

 

hooks

package StepDefination;

 

import org.openqa.selenium.chrome.ChromeDriver;

 

import io.cucumber.java.After;

import io.cucumber.java.Before;

import io.cucumber.java.Scenario;

import parallelExecution.root;

 

public class hooks extends root {

      

      

       @Before

       public void BeforeScenario(Scenario scenario)

       {

              System.setProperty("webdriver.chrome.driver", "src//test//resources//chromedriver.exe");

              driver=new ChromeDriver();

              driver.get("https://maven.apache.org/guides/mini/guide-creating-archetypes.html");

       }

       @After

       public void AfterScenario(Scenario scenario)

       {

              driver.close();

       }

 

}

 

 

 

 

Video Link


 

Comments

Popular posts from this blog

Parallel Execution using Failsafe plugin