Automatiseringstest ved hjælp af agurkværktøj og selen – Selen-tutorial # 30

I sidste Selen-tutorial introducerede vi dig til Selen Grid, som er et distribueret testudførelsesmiljø for at fremskynde udførelsen af et testkort.

Nu i slutningen af denne omfattende Selenium-træningsserie lærer vi avanceret Selen-test og relaterede begreber.

I denne og den næste tutorial, vi vil introducere dig til Cucumber – a Behavior Driven Development (BDD) ramme, der bruges sammen med Selen til udførelse af accepttest.

Agurkintroduktion

En agurk er et værktøj baseret på BDD-rammer (Behavior Driven Development), der bruges til at skrive acceptstest til webapplikationen. Det muliggør automatisering af funktionel validering i letlæsbart og forståeligt format (som almindeligt engelsk) til forretningsanalytikere, udviklere, testere osv.

Agurkfunktioner kan fungere som et godt dokument for alle. Der er mange andre værktøjer som JBehave, som også understøtter BDD-rammer. Oprindeligt blev agurk implementeret i Ruby og derefter udvidet til Java framework. Begge værktøjer understøtter native JUnit.

Behavior Driven Development er en udvidelse af Test Driven Development, og det bruges til at teste systemet i stedet for at teste det bestemte stykke kode. Vi vil diskutere mere BDD og skrivestil BDD-tests.

Agurk kan bruges sammen med selen, Watir og Capybara osv. Agurk understøtter mange andre sprog som Perl, PHP, Python, Net osv. I denne vejledning koncentrerer vi os om agurk med Java som sprog.

Agurkens grundlæggende

For at forstå agurk skal vi kende alle funktionerne i agurk og dens anvendelse.

# 1) Feature Files:

Feature files er den essentielle del af agurk, der bruges til at skrive testautomatiseringstrin eller acceptstest. Dette kan bruges som live dokument. Trinene er applikationsspecifikationen. Alle funktionsfilerne slutter med .feature-udvidelse.

Eksempel på funktionsfil:

Feature: Login Functionality Feature

For at sikre Login-funktionalitet fungerer
Jeg vil køre agurktesten for at kontrollere, at den fungerer

Scenarie: Loginfunktionalitet

Givet bruger navigerer til SOFTWARETETINGHELP.COM
Når bruger logger ind ved hjælp af brugernavn som “BRUGER ”Og adgangskode” PASSWORD “
Så skal login være vellykket

Scenarie: Loginfunktionalitet

Givet bruger navigerer til SOFTWARETETINGHELP.COM
Når bruger logger ind ved hjælp af brugernavn som” USER1 ”og adgangskode” PASSWORD1 ”
Derefter skal der kastes fejlmeddelelse

# 2) Funktion:

Dette giver oplysninger om forretningsfunktionaliteten på højt niveau (Se den forrige eksempel) og formålet med applikation under test. Alle skal være i stand til at forstå hensigten med funktionsfil ved at læse det første Feature-trin. Denne del holdes grundlæggende kort.

# 3) Scenarie:

Grundlæggende repræsenterer et scenario en bestemt funktionalitet, der er under test. Ved at se scenariet skal brugeren kunne forstå hensigten bag scenariet og hvad testen handler om. Hvert scenario skal følge givet, hvornår og derefter format. Dette sprog kaldes “agurk”.

  1. Givet: Som nævnt ovenfor angiver given forudsætningerne. Det er grundlæggende en kendt tilstand.
  2. Hvornår: Dette er bruges, når der skal udføres en handling. Som i eksemplet ovenfor har vi set, når brugeren forsøger at logge ind ved hjælp af brugernavn og adgangskode, bliver det til en handling.
  3. Derefter: Det forventede resultat eller resultat skal være placeret her. For eksempel: Kontroller, at login er vellykket, vellykket sidenavigation.
  4. Baggrund: Når der kræves et trin til at udføre i hvert scenarie, skal disse trin placeres i baggrunden. For eksempel: Hvis en brugeren skal rydde databasen inden hvert scenarie, så kan disse trin placeres i en baggrund.
  5. Og: Og bruges til at kombinere to eller flere samme type handlinger.

Eksempel:

Funktion: Login-funktionalitetsfunktion

Scenarie: Login-funktionalitet
Givet bruger navigerer til SOFTWARETETINGHELP.COM
Når bruger logger ind ved hjælp af brugernavn som “BRUGER”
Og passwo rd som “adgangskode”
Så skal login være vellykket
Og startside skal vises

Eksempel på baggrund:

Baggrund:

givet bruger logget ind som administrator af databaser
Og alle uønskede værdier er ryddet

# 4) Scenariooversigt:

Scenarieoversigter bruges, når den samme test skal udføres med forskellige datasæt. Lad os tage det samme eksempel. Vi er nødt til at teste login-funktionalitet med flere forskellige sæt brugernavn og adgangskode.

Feature: Login Functionality Feature

For at sikre Login-funktionalitet fungerer,
jeg vil køre agurktest for at kontrollere, at den fungerer

Scenariooversigt: Loginfunktionalitet

Givet bruger navigerer til SOFTWARETESTINGHELP.COM
Når bruger logger ind med brugernavn som < brugernavn > og adgangskode < adgangskode >
Så skal login være vellykket

Eksempler:
| brugernavn | adgangskode |
| Tom | adgangskode1 |
| Harry | password2 |
| Jerry | password3 |

Bemærk:

  1. Som vist i eksemplet ovenfor videregives kolonnenavne som en parameter til When-sætning.
  2. I stedet for Scenario skal du bruge Scenariooversigt.
  3. Eksempler bruges til at sende forskellige argumenter i tabelformatet. Lodrette rør bruges til at adskille to forskellige søjler. Et eksempel kan indeholde mange forskellige kolonner.

# 5) Tags:

Agurk kører som standard alle scenarier i alle funktionsfilerne. I realtidsprojekter kan der være hundreder af funktionsfiler, som ikke altid skal køres.

For eksempel: Funktionsfiler relateret til røgtest behøver ikke køre hele tiden. Så hvis du nævner et tag som røgfrit i hver funktionsfil, der er relateret til røgtest og kører agurktest med @SmokeTest-tag. Agurk kører kun de funktionsfiler, der er specifikke for givne tags. Følg nedenstående eksempel. Du kan angive flere tags i en funktionsfil.

Eksempel på brug af enkelte tags:

@SmokeTest

Feature: Login Functionality Feature

For at sikre loginfunktionalitet fungerer,
Jeg vil køre agurktesten for at kontrollere, at den fungerer

Scenariooversigt: Loginfunktionalitet

Givet bruger navigerer til SOFTWARETESTINGHELP. COM
Når bruger logger ind med brugernavn som < brugernavn > og adgangskode < adgangskode >
Så skal login være vellykket

Eksempel på brug af flere tags:

Som vist i eksemplet nedenfor, samme funktionsfil kan bruges til røgtest scenarier såvel som til login test scenarie. Når du har til hensigt at køre dit script til en røgtest, skal du bruge @SmokeTest. Tilsvarende når du vil have dit script til at køre til login-test, skal du bruge @LoginTest-tag.

Et hvilket som helst antal tags kan nævnes for en funktionsfil såvel som for et scenarie.

@SmokeTest @ LoginTest

Feature: Login Functionality Feature

For at sikre Login Functionality fungerer,
Jeg vil køre agurktesten for at kontrollere, at den fungerer

Scenarieoversigt: Login-funktionalitet

Givet bruger navigerer til SOFTWARETETINGHELP.COM
Når bruger logger ind med brugernavn som < brugernavn > og adgangskode < adgangskode >
Så skal login være vellykket

På samme måde kan du angiv tags for at køre det specifikke scenario i en funktionsfil. Kontroller nedenstående eksempel for at køre specifikt scenarie.

Feature: Login Functionality Feature

For at sikre Login-funktionalitet fungerer,
jeg vil køre agurktesten for at kontrollere, at den er arbejder

@positiveScenario
Scenarie: Loginfunktionalitet

Givet bruger navigerer til SOFTWARETETINGHELP.COM
Når bruger logger ind med brugernavn som “USER” og adgangskode “PASSWORD”
Så skal login være vellykket

@negaviveScenario
Scenarie: Login-funktionalitet

Givet bruger navigerer til SOFTWARETETINGHELP.COM
Når bruger logger ind ved hjælp af brugernavn som “USER1” og adgangskode “PASSWORD1”
Derefter skal fejlmeddelelsen kaste

# 6) JUnit Runner:

For at køre den specifikke funktion fil agurk bruger standard JUnit Runner og specificer tags i @Cucumber . Muligheder. Flere tags kan gives ved hjælp af separat komma. Her kan du angive stien til rapporten og typen af rapport, du vil generere.

Eksempel på Junit Runner:

På samme måde kan du give agurk instruktion om at køre flere tags. Nedenstående eksempel illustrerer, hvordan man bruger flere tags i agurk til at køre forskellige scenarier.

# 7) Agurkrapport:

Agurk genererer sit eget HTML-format. Bedre rapportering kan dog ske ved hjælp af Jenkins eller bambusværktøj. Detaljer om rapportering er beskrevet i næste emne af agurk.

Agurkprojektopsætning:

Detaljeret forklaring af agurkeprojektopsætning findes separat i næste selvstudie. Se agurkstudie del 2 for at få flere oplysninger om projektopsætning. Husk, at der ikke kræves ekstra softwareinstallationer til agurk.

Implementering af funktionsfil:

Vi er nødt til at implementere disse trin i Java for at teste funktionsfilerne. Brug for at oprette en klasse, der indeholder de givne, hvornår og derefter udsagn. Agurk bruger sine kommentarer, og alle trin er indlejret i disse kommentarer (givet, hvornår, derefter). Hver sætning starter med “^”, så agurk forstår starten på trinnet. Tilsvarende slutter hvert trin med “$”. Brugeren kan bruge regulære udtryk til at videregive forskellige testdata. Regulære udtryk tager data fra funktionstrin og overgår til definitioner.Rækkefølgen af parametre afhænger af, hvordan de sendes fra funktionsfilen. Se næste tutorial for projektopsætning og kortlægning mellem funktionsfiler og Java-klasser.

Eksempel:

Nedenstående eksempel er for at illustrere, hvordan funktionsfiler kan implementeres.

I dette eksempel har vi ikke brugt nogen selen-API. Dette er for bare at vise, hvordan agurk fungerer som en selvstændig ramme. Følg næste vejledning for selenintegration med agurk.

Når du udfører agurkløberklasse, begynder agurk at læse trin i funktionsfil. For eksempel, når du udfører @smokeTest, vil agurk læse Funktionstrin og givet en oversigt over scenariet. Så snart agurk finder Givet udsagnet, vil den samme givne sætning blive søgt efter dine java-filer. Hvis det samme trin findes i java-filen, udfører agurk den funktion, der er angivet for det samme trin, ellers springer agurk over trinnet.

Konklusion

I denne vejledning har vi dækket funktioner i agurkeværktøj og dets anvendelse i realtidsscenario.
Agurk er et mest yndlingsværktøj til mange projekter, da det er let at forstå, læsbart og indeholder forretningsfunktionalitet.

I det næste kapitel vil vi dække hvordan man opretter et agurk – java-projekt, og hvordan man integrerer Selen WebDriver med agurk.

Sidst opdateret: 18. januar 2021 6:40

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *