Selenium Cucumber (BDD Framework Tutorial)
โก รlykรคs yhteenveto
Selenium Cucumber muodostaa tehokkaan kรคyttรคytymislรคhtรถisen kehityksen (BDD) viitekehyksen, joka yhdistรครค selkokielisen Gherkin-syntaksin Selenium WebDriver-automaatio. Tรคmรค opetusohjelma selittรครค edellytykset, kรคy lรคpi kolme kรคytรคnnรถn skenaariota ja nรคyttรครค, miten ominaisuustiedostot, vaihemรครคritelmรคt ja TestRunner-luokka integroituvat selaintestien suorittamiseksi.

Tรคssรค opetusohjelmassa opit integroimaan Cucumber Selenium WebDriver rakentaa kรคyttรคytymiseen perustuvan kehityskehyksen (BDD), joka on luettava, yllรคpidettรคvรค ja datalรคhtรถinen.
Mikรค on Cucumber?
Cucumber on testaustyรถkalu, joka tukee kรคyttรคytymislรคhtรถistรค kehitystรค (BDD). Se kuvaa sovelluksen toimintaa yksinkertaisella englanninkielisellรค tekstillรค kรคyttรคen Gherkin-kieltรค, jonka avulla myรถs muut kuin kehittรคjรคt voivat osallistua testispesifikaatioiden laatimiseen ilman ohjelmointikielen opettelua. Lue lisรครค Cucumber oppitunti.
Mikรค on Selenium?
Selenium on automaatiotyรถkalu, jota kรคytetรครคn Toiminnallinen testaus verkkopohjaisista sovelluksista. Selenium tukee useita ohjelmointikieliรค, mukaan lukien Java, Ruby, Pythonja C#, mikรค tekee siitรค luonnollisen valinnan tiimeille, joilla on erilaisia โโteknisiรค taustoja. Lue lisรครค Selenium oppitunti.
Miksi kรคyttรครค Cucumber Selenium?
Cucumber ja Selenium ovat kaksi laajimmin kรคytettyรค testausteknologiaa. Useimmat organisaatiot kรคyttรคvรคt jo Selenium toiminnallista testausta varten ja haluat kerrostaa Cucumber huipulla, koska Cucumber helpottaa hakemusprosessin lukemista ja ymmรคrtรคmistรค.
Cucumber perustuu kรคyttรคytymislรคhtรถiseen kehitykseen (Behavior Driven Development) toimii siltana seuraavien roolien vรคlillรค:
- Ohjelmistoinsinรถรถri ja liiketoimintaanalyytikko.
- Manuaalinen testaaja ja automaatiotestauslaite.
- Manuaalinen testaaja ja kehittรคjรคt.
Cucumber Myรถs BDD-kehys auttaa asiakkaita ymmรคrtรคmรครคn sovelluskoodia koska se kรคyttรครค Gherkin-kieltรค, joka on selkokielellรค. Kuka tahansa organisaatiossa voi seurata ohjelmiston toimintaa. Gherkin-syntaksi on selkeรครค englantia, mikรค pitรครค mรครคrityksen ymmรคrrettรคvรคnรค myรถs muille kuin teknisille lukijoille.
Kรคytรถn edellytykset Cucumber Selenium
Ennen kuin aloitamme Cucumber-Selenium integrointia varten tarvitset seuraavat asiat:
Selenium jar-tiedostot:
- Selenium-palvelin-erillinen
Voit ladata ne osoitteesta https://www.selenium.dev/downloads/.
Jar-tiedostot kohteelle Cucumber:
- Cucumber-ydin
- Cucumber-html
- Cobertura koodin kattavuus
- Cucumber-java
- Cucumber-junit
- Cucumber-jvm-deps
- Cucumber-raportointi
- Hamcrest-ydin
- etikkakurkku
- JUnit
Voit ladata ne osoitteesta https://mvnrepository.com/search?q=CucumberSinun tรคytyy etsiรค jokainen jar-tiedosto ja ladata ne yksi kerrallaan.
Esimerkiksi nรคin ladataan yksi jar-tiedostoista, โCucumber-coreโ -kirjasto.
Napsauta yllรค olevaa latauslinkkiรค. Se ohjaa Maven-arkiston sivustolle. Etsi nyt tiettyรค jar-tiedostoa (tรคssรค tapauksessa "Cucumber Coreโ), kuten alla olevassa kuvakaappauksessa nรคkyy:
Napsauta seuraavalla sivulla versiota 1.2.2:
Seuraavalla nรคytรถllรค napsauta Lataa ladataksesi Cucumber Ydin-jar-tiedosto:
Huomautus: Mukavuuden vuoksi olemme koonneet tarvittavat Maven-jar-tiedostot. tรครคltรคNรคmรค jar-tiedostot voivat vanhentua ja muuttua yhteensopimattomiksi ajan myรถtรค, joten suosittelemme niiden lataamista itse yllรค kuvatulla menetelmรคllรค.
Automaatiotestauksen kรคyttรถ Cucumber Selenium
Kรคydรครคn lรคpi, miten sitรค kรคytetรครคn Cucumber Selenium askel askeleelta. Tรคssรค kรคsittelemme kolmea skenaariota:
- Skenaario 1: Tulosta teksti konsoliin.
- Skenaario 2: Anna kirjautumistiedot ja palauta arvo.
- Skenaario 3: Syรถtรค kirjautumistiedot Guru99 ja nollaa arvo โ toistetaan kolmelle tietojoukolle.
Skenaario 1: Tekstin tulostaminen konsoliin
Tรคssรค skenaariossa tulostamme vain tekstiรค konsoliin kรคyttรคmรคllรค Cucumber.
Vaihe 1) Luo projekti kohdassa Eclipse.
Luo Java projekti, jonka nimi on "CucumberKanssaSelenium" kuten alla olevassa kuvassa nรคkyy.
Vaihe 2) Lisรครค jar-tiedostot projektiin.
Napsauta projektia hiiren kakkospainikkeella > Ominaisuudet > Java Build Path. Lisรครค kaikki aiemmin lataamasi kirjastot.
Vaihe 3) Luo ominaisuustiedosto.
Luodaksesi ominaisuustiedoston, luo ensin Ominaisuudet-kansio alla olevan kuvakaappauksen mukaisesti.
Kirjoita kansion nimi โOminaisuudetโ ja napsauta Valmis.
Luo nyt ominaisuustiedosto Ominaisuudet-kansioon nimeltรค MyTest.featureProsessi on samanlainen kuin kansion luominen.
Huomautus: Saatat joutua asentamaan Cucumber Eclipse Liitรคnnรคinen ensin. Mene kohtaan Ohje โ Asenna uusi ohjelmisto ja liitรค linkki. http://cucumber.github.io/cucumber-eclipse/update-site/, ja asenna se.
Vaihe 4) Kirjoita skenaariot.
Alla olevat rivit on kirjoitettu MyTest.feature kรคyttรคen kurkkukieltรค:
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 Selitys
rivi 1) Mรครคrittelee liiketoiminnan toiminnallisuuden.
rivi 2) Mรครคrittรครค testattavan skenaarion.
rivi 3) Mรครคrittelee ennakkoedellytyksen (Annettu).
rivi 4) Mรครคrittรครค suoritettavan toiminnon (Milloin).
rivi 5) Mรครคrittelee odotetun lopputuloksen tai tuloksen (Sitten).
Vaihe 5) Kirjoita Selenium TestRunner-skripti kohteelle Cucumber kehyssuunnittelu.
Luo TestRunner paketti ja sitten Runner.java luokkatiedosto sen alla.
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
{
}
Edellรค Cucumber Java esimerkiksi, me suoritamme kurkku testi kรคyttรคen seuraavia merkintรถjรค:
@RunWith() kertoo JUnit testien suorittamisen aloittavasta testisuorittajaluokasta.
@CucumberAsetukset() mรครคrittรครค testiominaisuudet, kuten ominaisuustiedoston polun ja vaiheittaisen mรครคrityksen liimapaketin.
TestRunner-tiedoston kuvakaappaus:
Vaihe 6) Luo vaiheen mรครคritysskripti.
Luo nyt Vaiheen mรครคritelmรค paketti ja sitten Vaiheet.java sen alla oleva komentosarjatiedosto. Steps.java-tiedostoon kirjoitamme Selenium logiikka, joka kuvaa jokaista Gherkin-vaihetta.
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.");
}
}
Luokka on nimetty Askeleetja Cucumber merkinnรคt yhdistรคvรคt jokaisen menetelmรคn ominaisuustiedostovaiheeseen:
@ Annettu mรครคrittelee avausmenetelmรคn Firefox ja kรคynnistรค sovellus.
@Kun mรครคrittรครค tavan, jolla kรคyttรคjรคtunnus ja salasana syรถtetรครคn.
@Sitten mรครคrittรครค tunnistetietojen nollaustavan.
Jokainen metodi yksinkertaisesti tulostaa viestin konsoliin.
Alla olevassa kuvakaappauksessa nรคkyy Steps.java-skripti ja projektipuu:
Huomautus: Vaiheen mรครคritelmรค on koodi, jonka haluat Cucumber suoritetaan, kun se vastaa ominaisuustiedoston vaihetta.
Vaihe 7) Suorita kรคsikirjoitus.
Suorita tรคmรค komentosarja TestRunner-tiedostosta (Runner.java) alla olevan kuvan mukaisesti.
Vaihe 8) Analysoi tulos.
Kun suoritat Runner.java-tiedoston, Cucumber tulostaa konsoliin saman tekstin kuin on mรครคritelty Steps.java-tiedostossa.
Skenaario 2: Syรถtรค kirjautumistiedot ja palauta arvo
Tรคhรคn syรถtรคmme tunnistetiedot Guru99 demon kirjautumissivu ja nollaa arvo.
Skenaariossa 2 meidรคn tarvitsee pรคivittรครค vain Vaiheet.javaTรคhรคn lisรคtรครคn todellinen Selenium koodi. Varmista ensin, ettรค Selenium jar-tiedosto lisรคtรครคn projektiin.
Vaihe 1) Pรคivitรค Steps.java-skripti alla olevan kuvan mukaisesti.
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();
}
}
Kuvakaappaus yllรค olevasta Selenium kรคsikirjoitus:
Vaihe 2) Suorita kรคsikirjoitus.
Pรคivitettyรคsi Steps.java-tiedoston, suorita Runner.java.
Vaihe 3) Analysoi tulostetta. Tulosteessa nรคet seuraavaa:
- Selain kรคynnistetty.
- Guru99 pankin demosivusto avautuu.
- Kรคyttรคjรคtunnus ja salasana syรถtetรครคn kirjautumissivulla.
- Nollaus-painike tyhjentรครค arvot.
Skenaario 3: Suorita kirjautumis- ja nollausprosessi kolmella tietojoukolla
Tรคssรค meidรคn tรคytyy pรคivittรครค molemmat Vaiheet.java ja ominaisuustiedoston, joka ohjaa samaa tyรถnkulkua kolmella tunnistetietojoukolla.
Vaihe 1) Pรคivitรค ominaisuustiedosto alla olevan kuvan mukaisesti.
Kรคytรคmme Skenaarion รครคriviivat ja Esimerkit syntaksi niin Cucumber toistaa saman skenaarion jokaisen datarivin yli.
Feature: Reset functionality on login page of Application
Scenario Outline: Verification of reset button with multiple credentials
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 |
Vaihe 2) Pรคivitรค Steps.java-komentosarja.
Tรคssรค pรคivitรคmme metodien allekirjoitukset niin, ettรค ne hyvรคksyvรคt parametreja esimerkkitaulukosta.
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(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();
}
}
Vaihe 3) Suorita pรคivitetty skripti.
Alla oleva nรคyttรถ nรคyttรครค onnistuneen suorituksen ja kunkin tietojoukon suorittamiseen kuluneen ajan.
Vaihe 4) Analysoi tuloste. Seuraavat vaiheet toistetaan jokaiselle kolmelle tietojoukolle:
- Selain kรคynnistetty.
- Guru99 pankin demosivusto avautuu.
- Kรคyttรคjรคtunnus ja salasana syรถtetรครคn kirjautumissivulla.
- Nollaus-painike tyhjentรครค arvot.























