Selenium met Cucumber (BDD-framework)
In deze tutorial leert u hoe u kunt integreren Cucumber met Selenium Webdriver.
Wat is Cucumber?
Cucumber 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 gebruik maken van Cucumber met Selenium?
Cucumber en Selenium zijn twee populaire technologieën.
De meeste organisaties gebruiken Selenium voor functionele testen. Deze organisaties die gebruik maken van Selenium, willen integreren Selenium met Cucumber as Cucumber merken het is gemakkelijk om de applicatiestroom te lezen en te begrijpen.
Cucumber tool is gebaseerd op het Behavior Driven Development-framework fungeert als brug tussen de volgende personen:
- Software Engineer en Business Analist.
- Handmatige tester en automatiseringstester.
- Handmatige testers en ontwikkelaars.
Cucumber BDD-framework ook Het is voor de klant een voordeel om de applicatiecode te begrijpen omdat het Gherkin-taal gebruikt, wat in platte tekst is. Iedereen in de organisatie kan het gedrag van de software begrijpen. De syntaxis van Gherkin is in eenvoudige tekst die leesbaar en begrijpelijk is.
Voorwaarde voor gebruik Cucumber met Selenium
Voor we beginnen Cucumber Selenium integratie, hebben we de volgende items nodig:
- Selenium jar-bestanden:
- Selenium-server-standalone
Te downloaden op http://www.seleniumhq.org/download/
Jar-bestanden voor Cucumber :
- Cucumber-core
- Cucumber-html
- Cobertura-codedekking
- Cucumber-Java
- Cucumber-junit
- Cucumber-jvm-deps
- Cucumber-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, dat wil zeggen: “Cucumber-kern."
Klik op de bovenstaande downloadlink. Het verwijst door naar de onderstaande site. Zoek nu in de betreffende pot, bijvoorbeeld 'Cucumber Kern' zoals hieronder weergegeven screenshot:
Klik op de volgende pagina op versie 1.2.2,
In het volgende scherm klikt u op downloaden om de 'Cucumber Core' jar-bestand.
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.
Automatisering testen met behulp van Cucumber met Selenium.
Laten we de stappen bestuderen die we kunnen gebruiken Cucumber met selenium stap voor stap. Hier zullen we 3 scenario's behandelen:
- 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 gewoon de tekst in de console af met behulp van Cucumber.
Stap 1) Project maken in Eclipse.
creëren Java project met de naam “CucumbermetSelenium', zoals weergegeven in de onderstaande schermafbeelding.
Stap 2) Jar-bestanden toevoegen aan het project.
Klik met de rechtermuisknop op het project > Selecteer Eigenschappen > Ga naar Java Bouw pad. Voeg alle eerder gedownloade bibliotheken toe.
Stap 3) Functiebestand maken
Voor het maken van een featurebestand maakt u eerst een featuresmap aan, zoals weergegeven onder de schermafbeelding.
Voer nu de mapnaam 'Functies' in en klik op de knop 'Voltooien'.
Maak nu een featurebestand aan in de map 'Features' met de naam 'MyTest.feature' – Het proces is vergelijkbaar met het maken van een map
Opmerking: Mogelijk moet u de Cucumber 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 Selenium Cucumber raamwerk ontwerp
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 bovenstaande Cucumber Java voorbeeldcode, voeren we de komkommer proef door gebruik te maken van de volgende aantekeningen:
@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.
Stap 6) Stapdefinitiescript maken.
Nu maken we hier het 'StepDefinition'-pakket en vervolgens het 'Steps.java'-scriptbestand eronder. Hier schrijven we eigenlijk een selenium-script om de test uit te voeren onder Cucumber werkwijzen.
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.' Cucumber annotatie wordt gebruikt om het featurebestand in kaart te brengen. Elke annotatiemethode is gedefinieerd:
@Gegeven annotatie definieer methode om Firefox te openen en de applicatie te starten
@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.
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.
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'.
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 script 'Steps.java' te updaten. Hier schrijven we het seleniumscript zoals hieronder getoond. Eerst moeten we toevoegen Selenium jar-bestand naar dit project.
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 bovenstaand seleniumscript.
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 volgende:
- Browser gelanceerd.
- De demosite van de Guru99-bank wordt geopend.
- Gebruikersnaam en wachtwoord worden op de inlogpagina geplaatst.
- Reset de waarden.
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.
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(); } }
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.
Stap 4) Analyseer de uitvoer.
In de uitvoer ziet u het volgende:
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.
Conclusie
Cucumber is een zeer populaire BDD-tool. Het is gemakkelijk te lezen en kan worden begrepen door alle belanghebbenden, inclusief technische en niet-technische personen.
Cucumber kan worden geïntegreerd met Selenium met behulp van de volgende 3 stappen
- Creëer een featurebestand waarin de feature en scenario's stap voor stap worden gedefinieerd met behulp van de Augurk-taal.
- Maak een Testrunner-bestand. In dit bestand hebben we geïntegreerd Cucumber met BDD-framework in Selenium. Wij voeren dit script uit.
- Creat Step definitie, het daadwerkelijke selenium-script dat onder dit pakket is gedefinieerd.