automation testing using cucumber tool
V zadnji vadnici o selenu smo vam predstavili Selen mreža kateri je do porazdeljeno izvajanje testa okolje za pospešitev izvajanja preizkusne točke .
Zdaj na koncu te obsežne serije treningov Selenium se učimo napredno Testiranje selena in s tem povezani pojmi.
V tej in naslednji vadnici vam bomo predstavili Kumara - a Okvir za razvoj obnašanja (BDD), ki se uporablja s selenom za izvajanje preskusov sprejemljivosti.
Kaj se boste naučili:
Uvod v kumare
Kumara je orodje, ki temelji na okviru vedenja, usmerjenem v razvoj (BDD) in se uporablja za pisanje sprejemnih testov za spletno aplikacijo. Omogoča avtomatizacijo funkcionalne validacije v lahko berljivi in razumljivi obliki (kot navadna angleščina) poslovnim analitikom, razvijalcem, preizkuševalcem itd.
Datoteke s kumaricami so lahko dober dokument za vse. Obstaja veliko drugih orodij, kot je JBehave, ki prav tako podpirajo okvir BDD. Sprva je bila Cucumber implementirana v Ruby, nato pa razširjena na Java framework. Obe orodji podpirata izvorni JUnit.
Behaviour Driven Development je razširitev Test Driven Development in se uporablja za testiranje sistema in ne za preizkušanje določenega dela kode. Več bomo obravnavali BDD in slog pisanja testov BDD.
Kumara se lahko uporablja skupaj s selenom, Watirjem, Capybaro itd. Kumara podpira številne druge jezike, kot so Perl, PHP, Python, Net itd. V tej vadnici se bomo osredotočili na Kumare z Javo kot jezikom.
Osnove kumar
Da bi razumeli kumarico, moramo poznati vse značilnosti kumar in njeno uporabo.
html intervju vprašanja in odgovori za sveže
# 1) Funkcijske datoteke:
Datoteke funkcij so bistveni del kumar, ki se uporablja za pisanje korakov za avtomatizacijo preskusov ali sprejemne teste. To je mogoče uporabiti kot dokument v živo. Koraki so specifikacija aplikacije. Vse datoteke funkcij se končajo s pripono .feature.
Vzorčna datoteka funkcije:
Značilnost : Funkcija funkcionalnosti prijave
Da bi zagotovili delovanje funkcionalnosti prijave,
Izvesti želim test kumar, da preverim, ali deluje
Scenarij : Funkcionalnost prijave
Glede na to uporabnik se pomakne na SOFTWARETETINGHELP.COM
Kdaj uporabnik se prijavi z uporabniškim imenom kot »UPORABNIK« in geslom »GESLO«
Potem prijava bi morala biti uspešna
Scenarij : Funkcionalnost prijave
Glede na to uporabnik se pomakne na SOFTWARETETINGHELP.COM
Kdaj uporabnik se prijavi z uporabniškim imenom kot »USER1« in geslom »PASSWORD1«
Potem vrniti sporočilo o napaki
# 2) Lastnost:
T Njegova vsebuje informacije o visoki ravni poslovne funkcionalnosti (glej prejšnji primer) in namenu preizkušane aplikacije. Vsak bi moral razumeti namen datoteke funkcije tako, da prebere prvi korak funkcije. Ta del je v bistvu kratek.
# 3) Scenarij:
V bistvu scenarij predstavlja določeno funkcionalnost, ki je na preizkusu. Ko vidi scenarij, bi moral uporabnik razumeti namen, ki stoji za scenarijem, in kaj sploh je test. Vsak scenarij mora slediti dan, kdaj in nato format. Ta jezik se imenuje 'kornišon'.
- Glede na: Kot je navedeno zgoraj, podani določa predpogoje. V bistvu je znana država.
- Kdaj : Uporablja se, kadar je treba izvesti neko dejanje. Kot v zgornjem primeru smo videli, ko se uporabnik poskuša prijaviti z uporabniškim imenom in geslom, postane dejanje .
- Nato: Tu je treba postaviti pričakovani izid ali rezultat. Za primer: preverite, ali je prijava uspešna, uspešna navigacija po strani.
- Ozadje: Kadar je za izvedbo katerega koli koraka potreben kateri koli korak, je treba te korake postaviti v ozadje. Na primer: Če mora uporabnik pred vsakim scenarijem počistiti bazo podatkov, lahko te korake postavi v ozadje.
- In : In se uporablja za kombiniranje dveh ali več enakih akcij.
Primer:
Značilnost : Funkcija funkcionalnosti prijave
Scenarij : Funkcionalnost prijave
Glede na to uporabnik se pomakne na SOFTWARETETINGHELP.COM
Kdaj uporabnik se prijavi z uporabniškim imenom kot »USER«
In geslo kot 'geslo'
Potem prijava bi morala biti uspešna
In Prikazana mora biti domača stran
c ++ primer dvojno povezanega seznama
Primer ozadja:
Ozadje:
Glede na to uporabnik prijavljen kot skrbnik baz podatkov
In so odstranjene vse neželene vrednosti
# 4) Oris scenarija:
Obrisi scenarija se uporabljajo, kadar je treba isti test izvesti z drugačnim naborom podatkov. Vzemimo isti primer. Preizkusiti moramo funkcijo prijave z več različnimi nabori uporabniškega imena in gesla.
Značilnost : Funkcija funkcionalnosti prijave
Da bi zagotovili delovanje funkcionalnosti prijave,
Izvesti želim test kumar, da preverim, ali deluje
Oris scenarija : Funkcionalnost prijave
Glede na to uporabnik se pomakne na SOFTWARETESTINGHELP.COM
Kdaj uporabnik se prijavi z uporabniškim imenom kot< uporabniško ime > in geslo< geslo >
Potem prijava bi morala biti uspešna
Primeri:
| uporabniško ime | geslo |
| Tom | geslo1 |
| Harry | geslo2 |
| Jerry | geslo3 |
Opomba:
- Kot je prikazano v zgornjem primeru, se imena stolpcev posredujejo kot parameter Kdaj izjavo.
- Namesto Scenario morate uporabiti Scenario Outline.
- Primeri se uporabljajo za posredovanje različnih argumentov v obliki tabele. Navpične cevi se uporabljajo za ločevanje dveh različnih stolpcev. Primer lahko vsebuje veliko različnih stolpcev.
# 5) Oznake:
Kumara privzeto zažene vse scenarije v vseh datotekah funkcij. V projektih v realnem času bi lahko bilo na stotine funkcijskih datotek, ki jih ni treba ves čas izvajati.
Na primer : Datotek s funkcijami, povezanih s preskusom dima, ni treba ves čas izvajati. Torej, če omenite oznako kot brezdimno v vsaki datoteki funkcije, ki je povezana s preskusom dima in zažene test kumar z oznako @SmokeTest. Kumara bo zagnala samo tiste datoteke s funkcijami, ki so specifične za dane oznake. Upoštevajte spodnji primer. V eno funkcijsko datoteko lahko določite več oznak.
Primer uporabe posameznih oznak:
@SmokeTest
Značilnost : Funkcija funkcionalnosti prijave
Da bi zagotovili delovanje funkcionalnosti prijave,
Izvesti želim test kumar, da preverim, ali deluje
Oris scenarija : Funkcionalnost prijave
Glede na to uporabnik se pomakne na SOFTWARETESTINGHELP.COM
Kdaj uporabnik se prijavi z uporabniškim imenom kot< uporabniško ime > in geslo< geslo >
Potem prijava bi morala biti uspešna
Primeri:
| uporabniško ime | geslo |
| Tom | geslo1 |
| Harry | geslo2 |
| Jerry | geslo3 |
Primer uporabe več oznak:
Kot je prikazano v spodnjem primeru, lahko isto funkcijsko datoteko uporabimo tako za scenarije preizkusa dima kot za scenarij preizkusa prijave. Ko nameravate zagnati skript za preizkus dima, uporabite @SmokeTest. Podobno, ko želite, da se skript zažene za preizkus prijave, uporabite oznako @LoginTest.
Za datoteko z značilnostmi in za scenarij je mogoče omeniti poljubno število oznak.
@SmokeTest @LoginTest
Značilnost : Funkcija funkcionalnosti prijave
Da bi zagotovili delovanje funkcionalnosti prijave,
Izvesti želim test kumar, da preverim, ali deluje
Oris scenarija : Funkcionalnost prijave
Glede na to uporabnik se pomakne na SOFTWARETETINGHELP.COM
Kdaj uporabnik se prijavi z uporabniškim imenom kot in geslom
Potem prijava bi morala biti uspešna
Primeri:
| uporabniško ime | geslo |
| Tom | geslo1 |
| Harry | geslo2 |
| Jerry | geslo3 |
Podobno lahko določite oznake za zagon določenega scenarija v datoteki funkcije. Preverite spodnji primer, da zaženete določen scenarij.
Značilnost : Funkcija funkcionalnosti prijave
Da bi zagotovili delovanje funkcionalnosti prijave,
Izvesti želim test kumar, da preverim, ali deluje
@positiveScenario
Scenarij : Funkcionalnost prijave
Glede na to uporabnik se pomakne na SOFTWARETETINGHELP.COM
Kdaj uporabnik se prijavi z uporabniškim imenom kot »UPORABNIK« in geslom »GESLO«
Potem prijava bi morala biti uspešna
@negaviveScenario
Scenarij : Funkcionalnost prijave
Glede na to uporabnik se pomakne na SOFTWARETETINGHELP.COM
Kdaj uporabnik se prijavi z uporabniškim imenom kot »USER1« in geslom »PASSWORD1«
Potem sporočilo o napaki naj vrže
# 6) JUnit Runner:
Za zagon določene datoteke s funkcijami kumara uporablja standardni JUnit Runner in v @Cucumber določi oznake. Opcije. Z vejico ločeno lahko dodelite več oznak. Tu lahko določite pot poročila in vrsto poročila, ki ga želite ustvariti.
Primer tekača Junit:
import cucumber.api.junit.Cucumber;
import org.junit.runner.RunWith; @RunWith (Cucumber.class) @ Cucumber.Options (format = {'SimpleHtmlReport: report / smokeTest.html'}, tags = {'@ smokeTest'}) Javni razred JUnitRunner {} Podobno lahko kumaram daste navodila za zagon več oznak. Spodnji primer ponazarja, kako uporabiti več oznak v kumarah za zagon različnih scenarijev.
import cucumber.api.junit.Cucumber; import org.junit.runner.RunWith; @RunWith(Cucumber.class) @Cucumber.Options(format={'SimpleHtmlReport:report/smokeTest.html'},tags={'@smokeTest',”@LoginTest”}) Public class JUnitRunner { }
# 7) Poročilo o kumarah:
Kumara ustvari svoj format HTML. Vendar je mogoče boljše poročanje narediti z orodjem Jenkins ali bambusa. Podrobnosti poročanja so zajete v naslednji temi o kumarah.
Nastavitev projekta kumare:
Podrobna razlaga vzpostavitve projekta kumar je na voljo ločeno v naslednji vadnici. Za več informacij o nastavitvi projekta glejte Vadnico za kumare 2. del. Ne pozabite, da za kumare ni potrebna dodatna namestitev programske opreme.
Izvajanje datoteke funkcije:
vprašanja in odgovori za razgovore za razvijalce jave
Te korake moramo izvesti v Javi, da preizkusimo datoteke funkcij. Treba je ustvariti razred, ki vsebuje tiste, ki so podani, kdaj in potem. Kumara uporablja svoje opombe in vsi koraki so vdelani v te opombe (podani, kdaj in potem). Vsaka fraza se začne z '^', tako da kumara razume začetek koraka. Podobno se vsak korak konča z “$”. Uporabnik lahko z regularnimi izrazi posreduje različne testne podatke. Regularni izrazi zajemajo podatke iz korakov funkcije in prehajajo v definicije korakov. Vrstni red parametrov je odvisen od tega, kako so posredovani iz datoteke funkcije. Glejte naslednjo vadnico za nastavitev projekta in preslikavo med datotekami funkcij in razredi Java.
Primer:
Spodnji primer je ponazoriti, kako je mogoče uporabiti datoteke funkcij.
V tem primeru nismo uporabili nobenega API-ja za selen. S tem želimo samo pokazati, kako kumar deluje kot samostojen okvir. Upoštevajte naslednjo vadnico za integracijo selena s kumaricami.
public class LoginTest { @Given('^user navigates to SOFTWARETETINGHELP.COM$') public void navigatePage() { system.out.println(“Cucumber executed Given statement”); } @When('^user logs in using Username as '(.*)' and Password '(.*)'$') public void login(String usename,String password) { system.out.println(“Username is:”+ usename); system.out.println(“Password is:”+ password); } @When('^click the Submit button$') public void clickTheSubmitButton() { system.out.println(“Executing When statement”) } @Then('^Home page should be displayed$') public void validatePage() { system.out.println(“Executing Then statement”) } @Then('^login should be successful$') public void validateLoginSuccess() { system.out.println(“Executing 2nd Then statement”) } }
Ko zaženete razred tekača kumar, bo kumara začela brati korake datoteke funkcije. Na primer, ko zaženete @smokeTest, bo kumara prebrala Značilnost korak in Glede na to izjava scenarij . Takoj, ko kumara najde Glede na izjavo, isto Glede na to izjava bo poiskala vaše datoteke java. Če je isti korak v datoteki java, potem kumara izvede funkcijo, določeno za isti korak, sicer kumara korak preskoči.
Zaključek
V tej vadnici smo zajeli funkcije orodja za kumare in njegovo uporabo v realnem času.
Kumara je najbolj priljubljeno orodje za številne projekte, saj je lahko razumljiva, berljiva in vsebuje poslovno funkcionalnost.
V naslednjem poglavju , bomo zajeli, kako ustanoviti projekt kumare - java in kako integrirati Selenium WebDriver s kumarico.
Priporočeno branje
- Vadnica za kumare selena: Integracija kumar Java Selenium WebDriver
- 30+ najboljših vaj za selen: Naučite se selen z resničnimi primeri
- Vadnica za mrežo selena: namestitev in primer preskušanja med brskalniki
- Spock za integracijo in funkcionalno testiranje s selenom
- Uporaba orodja za avtomatizacijo gradnje Maven in nastavitev projekta Maven za selen - vaja # 24
- Uvod v Selenium WebDriver - Vadnica za selenij št. 8
- Vadnice za globinsko zasenčenje za začetnike
- Vadnica za orodje za preizkušanje dostopnosti WAVE