Selenium met Komkommer (BDD Framework)


In deze tutorial leert u hoe u Cucumber kunt integreren met Selenium Webdriver.

Wat is komkommer?

Komkommer is een testaanpak die Behavior Driven Development (BDD) ondersteunt. Het legt het gedrag van de applicatie uit in een eenvoudige Engelse tekst in de augurktaal.

Meer informatie op – https://www.guru99.com/cucumber-tutorials.html

Wat is Selenium?

Selenium is een automatiseringstool voor Functioneel testen van de webgebaseerde applicatie. Selenium ondersteunt verschillende talen zoals Java, Ruby, Python C#, enz.

Meer informatie op – https://www.guru99.com/selenium-tutorial.html

Waarom komkommer met selenium gebruiken?

Komkommer en Selenium zijn twee populaire technologieën.

De meeste organisaties gebruiken Selenium voor functioneel testen. Deze organisaties die Selenium gebruiken, willen Selenium integreren met Cucumber zoals Cucumber dat maakt het is gemakkelijk om de applicatiestroom te lezen en te begrijpen.

De Cucumber-tool is gebaseerd op het Behavior Driven Development-framework fungeert als brug tussen de volgendewing mensen:

  1. Software Engineer en Business Analist.
  2. Handmatige tester en automatiseringstester.
  3. Handmatige testers en ontwikkelaars.

Komkommer BDD-framework ook Het is voor de klant een voordeel om de applicatiecode te begrijpen omdat het de Augurk-taal gebruikt die in platte tekst is. Iedereen in de organisatie kan het gedrag van de software begrijpen. De syntaxis van Augurk is in eenvoudige tekst die leesbaar en begrijpelijk is.

Komkommer met Selenium

Voorwaarde voor het gebruik van Komkommer met Selenium

Voordat we beginnen met de integratie van komkommer-selenium, hebben we de volgende informatie nodigwing items:

  • Selenium jar-bestanden:
  • Selenium-server-standalone

Te downloaden op http://www.seleniumhq.org/download/

Voorwaarde voor het gebruik van komkommer met selenium

Jar-bestanden voor komkommer:

  • Komkommer-kern
  • Komkommer-html
  • Cobertura-codedekking
  • Komkommer-java
  • Komkommer-junit
  • Komkommer-jvm-deps
  • Komkommer-rapportage
  • Hamcrest-kern
  • augurkje
  • Juniet

Te downloaden op https://mvnrepository.com/search?q=Cucumber

U moet bestanden zoeken en ze één voor één downloaden.

We laten u bijvoorbeeld zien hoe u een van de jar-bestanden downloadt, bijvoorbeeld 'Cucumber-core'.

Klik op de bovenstaande downloadlink. Het verwijst door naar de onderstaande site. Zoek nu naar de specifieke pot, dat wil zeggen 'Komkommerkern', zoals weergegeven in onderstaande schermafbeelding:

Voorwaarde voor het gebruik van komkommer met selenium

Klik op de volgende pagina op versie 1.2.2,

Voorwaarde voor het gebruik van komkommer met selenium

In het volgende scherm klikt u op downloaden om het jar-bestand 'Cucumber Core' te verkrijgen.

Voorwaarde voor het gebruik van komkommer met selenium

Note: Voor uw gemak hebben we de jar-bestanden gebundeld die u van Maven moet downloaden hier. Na verloop van tijd kunnen deze potten worden bijgewerkt en incompatibel worden. U wordt verzocht deze te downloaden via de hierboven geïllustreerde methode.

Automatiseringstesten met komkommer en selenium.

Laten we stap voor stap de stappen bestuderen om komkommer met selenium te gebruiken. Hier behandelen we 3 scenario's:

  • Scenario 1: Tekst afdrukken in de console.
  • Scenario 2: Voer de inloggegevens in en reset de waarde.
  • Scenario 3: Voer inloggegevens in op Guru99 en reset de waarde. Doe dit voor 3 sets gegevens.

Scenario 1: Tekst afdrukken in de console.

In dit scenario drukken we de tekst in de console gewoon af met behulp van Cucumber.

Stap 1) Project aanmaken in eclipse.

Maak een Java-project met de naam "CucumberWithSelenium" zoals weergegeven in de onderstaande schermafbeelding.

Automatiseringstesten met komkommer en selenium

Automatiseringstesten met komkommer en selenium

Stap 2) Jar-bestanden toevoegen aan het project.

Klik met de rechtermuisknop op het project > Selecteer Eigenschappen > Ga naar Java-buildpad. Voeg alle eerder gedownloade bibliotheken toe.

Automatiseringstesten met komkommer en selenium

Stap 3) Functiebestand maken

Voor het maken van een featurebestand maakt u eerst een featuresmap aan, zoals weergegeven onder de schermafbeelding.

Automatiseringstesten met komkommer en selenium

Voer nu de mapnaam 'Functies' in en klik op de knop 'Voltooien'.

Automatiseringstesten met komkommer en selenium

Automatiseringstesten met komkommer en selenium

Maak nu een featurebestand aan in de map 'Features' met de naam 'MyTest.feature' – Het proces is vergelijkbaar met het maken van een map

Automatiseringstesten met komkommer en selenium

Opmerking: Mogelijk moet u de komkommer installeren Eclipse Plug-in om dit te laten werken. Ga naar — Helps->Nieuwe software installeren->kopieer en plak de link http://cucumber.github.io/cucumber-eclipse/update-site/ en installeer

Stap 4) Schrijf scenario's.

De onderstaande regels zijn geschreven in het bestand 'MyTest.feature' met behulp van de Gherkin-taal, zoals hieronder weergegeven:

Feature: Reset functionality on login page of Application 


Scenario: Verification of Reset button 


Given Open the Firefox and launch the application			


When Enter the Username and Password			


Then Reset the credential			

Code Uitleg

Lijn 1) In deze regel schrijven we bedrijfsfunctionaliteit.

Lijn 2) In deze regel schrijven we een scenario om te testen.

Lijn 3) In deze regel definiëren we de randvoorwaarde.

Lijn 4) In deze regel definiëren we de actie die we moeten uitvoeren.

Lijn 4) In deze regel definiëren we de verwachte uitkomst of resultaat.

Stap 5) Selenium testrunner-script schrijven voor het Selenium Cucumber-frameworkontwerp

Hier maken we het pakket 'TestRunner' en vervolgens het klassenbestand 'Runner.java' eronder.

package TestRunner;		

import org.junit.runner.RunWith;		
import cucumber.api.CucumberOptions;		
import cucumber.api.junit.Cucumber;		

@RunWith(Cucumber.class)				
@CucumberOptions(features="Features",glue={"StepDefinition"})						
public class Runner 				
{		

}

In de bovenstaande Cucumber Java-voorbeeldcode voeren we de komkommer proef door gebruik te maken van de volgendewing annotaties:

@Rennen met() annotatie vertelt over de testrunnerklasse om onze tests uit te voeren.

@KomkommerOpties() annotatie wordt gebruikt om enkele eigenschappen voor onze komkommertest in te stellen, zoals featurebestand, stapdefinitie, enz.

Schermafbeelding van het TestRunner-bestand.

Automatiseringstesten met komkommer en selenium

Stap 6) Stapdefinitiescript maken.

Nu maken we hier het pakket 'StepDefinition' en vervolgens het scriptbestand 'Steps.java' eronder. Hier schrijven we feitelijk een seleniumscript om de test onder Komkommermethoden uit te voeren.

package StepDefinition;		

import cucumber.api.java.en.Given;		
import cucumber.api.java.en.Then;		
import cucumber.api.java.en.When;		

public class Steps {				

     
    @Given("^Open the Firefox and launch the application$")				
    public void open_the_Firefox_and_launch_the_application() throws Throwable							
    {		
        System.out.println("This Step open the Firefox and launch the application.");					
    }		

    @When("^Enter the Username and Password$")					
    public void enter_the_Username_and_Password() throws Throwable 							
    {		
       System.out.println("This step enter the Username and Password on the login page.");					
    }		

    @Then("^Reset the credential$")					
    public void Reset_the_credential() throws Throwable 							
    {    		
        System.out.println("This step click on the Reset button.");					
    }		

}

In de bovenstaande code wordt de klasse gemaakt met de naam 'Steps.' Komkommerannotatie wordt gebruikt om het featurebestand in kaart te brengen. Elke annotatiemethode is gedefinieerd:

@Gegeven annotatie definieer methode om te openen firefox en start de applicatie

@Wanneer annotatie definieermethode om de gebruikersnaam en het wachtwoord in te voeren

@Dan annotatie definieer methode om de referentie opnieuw in te stellen

Bij elke methode drukken we alleen een bericht af.

Hieronder ziet u de schermafbeelding van het 'Steps.java'-script en de projectboom, hoe deze eruit ziet.

Automatiseringstesten met komkommer en selenium

Opmerking: Stapdefinitie is niets anders dan de stappen die u wilt uitvoeren onder deze komkommermethode.

Stap 7) Het script uitvoeren.

De gebruiker kan dit script uitvoeren vanuit het Test Runner-script, dat wil zeggen 'Runner.java', zoals weergegeven in onderstaande schermafbeelding.

Automatiseringstesten met komkommer en selenium

Stap 8) Analyseer de uitvoer.

Bij het uitvoeren van het script 'Runner.java' wordt de tekst op de console weergegeven. Het is dezelfde tekst die is gedefinieerd in het script 'Steps.java'.

Automatiseringstesten met komkommer en selenium

Scenario 2: Voer de inloggegevens in en reset de waarde.

Hier voeren we gewoon de inloggegevens in op de Guru99 demo-inlogpagina en resetten we de waarde

Voor Scenario 2 hoeven we alleen het 'Steps.java'-script bij te werken. Hier schrijven we feitelijk het seleniumscript zoals hieronder weergegeven. Eerst moeten we het Selenium jar-bestand aan dit project toevoegen.

Voer de inloggegevens in en reset de waarde

Stap 1) Hier updaten we het 'Steps.java'-script zoals weergegeven in de onderstaande code en schermafbeelding.

package StepDefinition;		

import org.openqa.selenium.By;		
import org.openqa.selenium.WebDriver;		
import org.openqa.selenium.firefox.FirefoxDriver;		

import cucumber.api.java.en.Given;		
import cucumber.api.java.en.Then;		
import cucumber.api.java.en.When;		

public class Steps {				

    WebDriver driver;			
    		
    @Given("^Open the Firefox and launch the application$")					
    public void open_the_Firefox_and_launch_the_application() throws Throwable							
    {		
       System.setProperty("webdriver.gecko.driver", "E://Selenium//Selenium_Jars//geckodriver.exe");					
       driver= new FirefoxDriver();					
       driver.manage().window().maximize();			
       driver.get("http://demo.guru99.com/v4");					
    }		

    @When("^Enter the Username and Password$")					
    public void enter_the_Username_and_Password() throws Throwable 							
    {		
       driver.findElement(By.name("uid")).sendKeys("username12");							
       driver.findElement(By.name("password")).sendKeys("password12");							
    }		

    @Then("^Reset the credential$")					
    public void Reset_the_credential() throws Throwable 							
    {		
       driver.findElement(By.name("btnReset")).click();					
    }		
}		

Screenshot van het bovenstaande seleniumscript.

Voer de inloggegevens in en reset de waarde

Stap 2) Voer het script uit.

Na het updaten voeren we Runner.java uit.

Stap 3) Analyseer de uitvoer.

In de uitvoer ziet u het volgendewing:

  • Browser gelanceerd.
  • De demosite van de Guru99-bank wordt geopend.
  • Gebruikersnaam en wachtwoord worden op de inlogpagina geplaatst.
  • Reset de waarden.

Voer de inloggegevens in en reset de waarde

Scenario 3: Voer inloggegevens in op Guru99 en reset de waarde. Doe dit voor 3 sets gegevens.

Hier moeten we zowel 'Step.java' als het featurebestand bijwerken.

Stap 1) Update het featurebestand zoals hieronder weergegeven:

Here we update the feature file with 'Scenario Outline' and  'examples' syntax.

Feature: Reset functionality on login page of Application				


Scenario Outline: Verification of reset button with numbers of credential


Given Open the Firefox and launch the application				


When Enter the Username <username>and Password <password>				


Then Reset the credential						

Examples:                      		

|username  |password         |		

|User1     |password1        |		

|User2     |password2        |		

|User3     |password3        |

// In this line we define the set of data.

Voer inloggegevens in

Stap 2) Werk nu het Step.java-script bij.

Hier werken we de methoden bij om de parameters door te geven, het bijgewerkte script hieronder weergegeven:

package StepDefinition;		

import org.openqa.selenium.By;		
import org.openqa.selenium.WebDriver;		
import org.openqa.selenium.firefox.FirefoxDriver;		

import cucumber.api.java.en.Given;		
import cucumber.api.java.en.Then;		
import cucumber.api.java.en.When;		

public class Steps {				

    WebDriver driver;			
    		
    @Given("^Open the Firefox and launch the application$")					
    public void open_the_Firefox_and_launch_the_application() throws Throwable							
    {		
       System.setProperty("webdriver.gecko.driver", "E://Selenium//Selenium_Jars//geckodriver.exe");					
       driver= new FirefoxDriver();					
       driver.manage().window().maximize();			
       driver.get("www.demo.guru99.com/v4");					
    }		

    @When("^Enter the Username \"(.*)\" and Password \"(.*)\"$")			
    public void enter_the_Username_and_Password(String username,String password) throws Throwable 							
    {		
       driver.findElement(By.name("uid")).sendKeys(username);					
       driver.findElement(By.name("password")).sendKeys(password);					
    }		

    @Then("^Reset the credential$")					
    public void	Reset_the_credential() throws Throwable 							
    {		
       driver.findElement(By.name("btnReset")).click();					
    }		
}		

Voer inloggegevens in

Stap 3) Voer nu het bijgewerkte script uit.

Het onderstaande scherm toont de succesvolle uitvoering van het script en de tijd die elke set gegevens in beslag neemt.

Voer inloggegevens in

Stap 4) Analyseer de uitvoer.

In de uitvoer ziet u het volgendewing:

De onderstaande uitvoer wordt herhaald voor het aantal datasets, dat wil zeggen 3 sets.

  • Browser gelanceerd.
  • De demosite van de Guru99-bank wordt geopend.
  • Gebruikersnaam en wachtwoord worden op de inlogpagina geplaatst.
  • Reset de waarden.

Voer inloggegevens in

Conclusie

Komkommer is een zeer populaire BDD-tool. Het is gemakkelijk te lezen en kan worden begrepen door alle belanghebbenden, inclusief technische en niet-technische personen.

Komkommer kan worden geïntegreerd met Selenium met behulp van following 3 stappen

  1. Creëer een featurebestand waarin de feature en scenario's stap voor stap worden gedefinieerd met behulp van de Augurk-taal.
  2. Maak een Testrunner-bestand. In dit bestand hebben we Cucumber geïntegreerd met het BDD-framework in Selenium. Wij voeren dit script uit.
  3. Creat Step-definitie, het daadwerkelijke seleniumscript dat in dit pakket is gedefinieerd.