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.

  • ๐Ÿฅ’ Ydinmรครคritelmรค: Cucumber on BDD-testaustyรถkalu, joka kuvaa sovelluksen toimintaa selkokielellรค Gherkinin avulla, ja Selenium ohjaa alla olevia selaimen toimintoja.
  • ๐Ÿค Sidosryhmien silta: Cucumber yhdistรครค liiketoiminta-analyytikot, manuaaliset testaajat, automaatioinsinรถรถrit ja kehittรคjรคt jaetun, luettavaan testispesifikaatioon perustuvan jรคrjestelmรคn kautta.
  • ๐Ÿ“ฆ Vaaditut purkit: Selenium itsenรคinen, Cucumber-ydin, Cucumber-jaava, Cucumber-junit, Kurkkukurkku, JUnitja Hamcrest-ydin muodostavat pienimmรคn riippuvuusjoukon.
  • ๐Ÿงฑ Kolme projektitiedostoa: .feature-tiedosto, joka sisรคltรครค skenaarioita, Steps.java-vaiheenmรครคritysluokan ja Runner.java-testirunnerin @-merkillรคCucumberVaihtoehtoiset liima.
  • ๐Ÿ” Dataan perustuvat testit: Kรคytรค skenaarion รครคriviivat ja esimerkkitaulukoita suorittaaksesi saman tyรถnkulun useille tunnistetietojoukoille yhdellรค suorituksella.

Selenium   Cucumber (BDD Framework Tutorial)

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รค:

  1. Ohjelmistoinsinรถรถri ja liiketoimintaanalyytikko.
  2. Manuaalinen testaaja ja automaatiotestauslaite.
  3. 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.

Cucumber   Selenium BDD-kehyksen yleiskatsaus

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/.

Selenium jar-tiedostojen lataussivu

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:

Etsiminen Cucumber Ydinpurkki Maven-arkistossa

Napsauta seuraavalla sivulla versiota 1.2.2:

valita Cucumber Mavenin ydinversio 1.2.2

Seuraavalla nรคytรถllรค napsauta Lataa ladataksesi Cucumber Ydin-jar-tiedosto:

Lataa Cucumber Core-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.

luoda CucumberKanssaSelenium Java projekti vuonna Eclipse

Java projektin nimen konfigurointi Eclipse

Vaihe 2) Lisรครค jar-tiedostot projektiin.

Napsauta projektia hiiren kakkospainikkeella > Ominaisuudet > Java Build Path. Lisรครค kaikki aiemmin lataamasi kirjastot.

Lisรครค Cucumber ja Selenium jar-tiedostot kohteeseen Java Rakennuspolku

Vaihe 3) Luo ominaisuustiedosto.

Luodaksesi ominaisuustiedoston, luo ensin Ominaisuudet-kansio alla olevan kuvakaappauksen mukaisesti.

Luo Ominaisuudet-kansio kohteeseen Eclipse projekti

Kirjoita kansion nimi โ€Ominaisuudetโ€ ja napsauta Valmis.

Mรครคritรค ominaisuudet-kansion nimi kohdassa Eclipse

Ominaisuudet-kansio nรคkyy projektien hallinnassa

Luo nyt ominaisuustiedosto Ominaisuudet-kansioon nimeltรค MyTest.featureProsessi on samanlainen kuin kansion luominen.

Luo MyTest.feature-tiedosto Ominaisuudet-kansioon

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:

Runner.java TestRunner-skripti Cucumber

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:

Steps.java-skripti ja projektipuu Eclipse

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.

Suorita Runner.java-tiedosto Cucumber testi

Vaihe 8) Analysoi tulos.

Kun suoritat Runner.java-tiedoston, Cucumber tulostaa konsoliin saman tekstin kuin on mรครคritelty Steps.java-tiedostossa.

Konsolin lรคhtรถ Cucumber testin suorittaminen

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.

Vahvistaa Selenium jar-tiedosto on projektin luokkapolussa

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:

Skenaario 2 Steps.java ja Selenium logiikka

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.

Skenaarion 2 animaatio nรคytetรครคn Cucumber Selenium koeajo

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 |

Ominaisuustiedosto, jossa on skenaarion pรครคpiirteet ja esimerkkitaulukko

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();
    }
}

Pรคivitetty Steps.java-tiedosto parametrisoiduilla tunnistetiedoilla

Vaihe 3) Suorita pรคivitetty skripti.

Alla oleva nรคyttรถ nรคyttรครค onnistuneen suorituksen ja kunkin tietojoukon suorittamiseen kuluneen ajan.

Skenaarion 3 onnistunut toteutus kolmella tietojoukolla

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.

Skenaarion 3 animaatio, joka nรคyttรครค parametrisoidun Cucumber koeajo

UKK

Cucumber on BDD-kehys, joka suorittaa Gherkinillรค kirjoitettuja skenaarioita. Selenium on selainautomaatiokirjasto, joka ohjaa verkkosivuja. Cucumber ei ole suorassa vuorovaikutuksessa selainten kanssa โ€” se kutsuu Selenium vaihemรครคritelmรคt varsinaisten kรคyttรถliittymรคtoimintojen suorittamiseksi.

Cucumber Ominaisuustiedostot kรคyttรคvรคt Gherkiniรค, selkoenglantia, joka on tiettyyn aihepiiriin liittyvรค kieli ja jรคrjestรครค skenaariot avainsanoilla, kuten Ominaisuus, Skenaario, Given, When, Then, And, But, Skenaario Outline ja Examples. Gherkiniรค voivat lukea sekรค tekniset ettรค ei-tekniset sidosryhmรคt.

Kรคytรค Scenario Outline -avainsanaa esimerkkitaulukon kanssa. Cucumber suorittaa saman skenaarion kerran riviรค kohden korvaamalla paikkamerkit, kuten ja kunkin rivin arvoilla. Tรคmรค on standardi datapohjainen malli Cucumber.

Tekoรคly luo Gherkin-skenaarioita kรคyttรคjรคtarinoista, suosittelee vaihemรครคritelmiรค ja korjaa rikkinรคiset paikantimet Selenium, ja ehdottaa esimerkkidataa. Tekoรคlyavustajat merkitsevรคt myรถs pรครคllekkรคisiรค skenaarioita, heikkoja vรคitteitรค ja vanhentuneita testejรค, mikรค pitรครค BDD-paketin yllรคpidettรคvรคnรค sovelluksen muuttuessa.

Kyllรค. Tekoรคlykoodausavustajat lukevat Gherkinin ominaisuustiedostoja ja luovat vastaavuuksia. Java tai Kotlin-vaiheen mรครคritelmรคt, mukaan lukien Selenium WebDriver-kutsuja, paikannusstrategioita ja parametrien sidontaa. Kehittรคjรคt tarkentavat sitten luotua koodia, mikรค vรคhentรครค merkittรคvรคsti vakiomuotoista koodia kรคynnistyksen yhteydessรค.ping uudet BDD-sviitit.

Tiivistรค tรคmรค viesti seuraavasti: