Automatiseringstesting ved hjelp av agurkverktøy og selen – Selen-opplæring nr. 30

I forrige Selen-opplæring introduserte vi deg for Selenium Grid, som er et distribuert miljø for testutførelse utførelsen av et testpass.

Nå på slutten av denne omfattende Selen-opplæringsserien lærer vi avanserte Selen-testing og relaterte konsepter.

I denne og neste opplæringen, vi vil introdusere deg for Cucumber – a Behavior Driven Development (BDD) rammeverk som brukes med Selen for å utføre akseptanstesting.

Agurkintroduksjon

En agurk er et verktøy basert på BDD-rammeverk (Behavior Driven Development) som brukes til å skrive aksepttester for webapplikasjonen. Det tillater automatisering av funksjonell validering i lett lesbart og forståelig format (som vanlig engelsk) til forretningsanalytikere, utviklere, testere osv.

Agurkfunksjonsfiler kan tjene som et godt dokument for alle. Det er mange andre verktøy som JBehave som også støtter BDD-rammeverk. Opprinnelig ble agurk implementert i Ruby og deretter utvidet til Java-rammeverket. Begge verktøyene støtter innfødte JUnit.

Behavior Driven Development er en utvidelse av Test Driven Development, og den brukes til å teste systemet i stedet for å teste den bestemte koden. Vi vil diskutere mer BDD og skrivestil BDD-tester.

Agurk kan brukes sammen med Selen, Watir og Capybara etc. Agurk støtter mange andre språk som Perl, PHP, Python, Net etc. I denne veiledningen vil vi konsentrere oss om agurk med Java som språk.

Agurk Grunnleggende

For å forstå agurk, trenger vi å kjenne til alle funksjonene til agurk og bruken av den.

# 1) Feature Files:

Feature files er den essensielle delen av agurk som brukes til å skrive testautomatiseringstrinn eller godkjenningstester. Dette kan brukes som live dokument. Trinnene er applikasjonsspesifikasjonen. Alle funksjonsfilene ender med .feature-utvidelse.

Eksempel på funksjonsfil:

Feature: Login Functionality Feature

For å sikre at Login Functionality fungerer,
Jeg vil kjøre agurktesten for å bekrefte at den fungerer

Scenario: Påloggingsfunksjonalitet

Gitt bruker navigerer til SOFTWARETETINGHELP.COM
Når bruker logger på med brukernavn som «BRUKER ”Og passord» PASSWORD «
Da skal innloggingen være vellykket

Scenario: Påloggingsfunksjonalitet

Gitt bruker navigerer til SOFTWARETETINGHELP.COM
Når bruker logger på med brukernavn som» USER1 ”og passord” PASSWORD1 ”
Da skal feilmeldingen kastes

# 2) Feature:

Dette gir informasjon om forretningsfunksjonaliteten på høyt nivå (se forrige eksempel) og formålet med søknad under test. Alle skal kunne forstå intensjonen med funksjonsfilen ved å lese det første funksjonstrinnet. Denne delen holdes i utgangspunktet kort.

# 3) Scenario:

I utgangspunktet representerer et scenario en bestemt funksjonalitet som er under test. Ved å se scenariet skal brukeren kunne forstå intensjonen bak scenariet og hva testen handler om. Hvert scenario skal følge gitt, når og deretter formatere. Dette språket kalles «gherkin».

  1. Gitt: Som nevnt ovenfor spesifiserer gitt betingelsene. Det er i utgangspunktet en kjent tilstand.
  2. Når: Dette er brukes når noen handlinger skal utføres. Som i eksemplet ovenfor har vi sett når brukeren prøver å logge på med brukernavn og passord, blir det en handling.
  3. Deretter: Det forventede resultatet eller resultatet skal være plassert her. For eksempel: bekreft at innloggingen er vellykket, vellykket sidenavigering.
  4. Bakgrunn: Når et trinn kreves for å utføre i hvert scenario, må disse trinnene plasseres i bakgrunnen. For eksempel: Hvis en brukeren må rydde databasen før hvert scenario, så kan disse trinnene settes i bakgrunnen.
  5. Og: Og brukes til å kombinere to eller flere samme type handlinger.

Eksempel:

Funksjon: Påloggingsfunksjonalitetsfunksjon

Scenario: Påloggingsfunksjonalitet
Gitt bruker navigerer til SOFTWARETETINGHELP.COM
Når bruker logger på med brukernavn som «USER»
Og passwo rd som «passord»
Da skal innloggingen være vellykket
Og hjemmesiden skal vises

Eksempel på bakgrunn:

Bakgrunn:

Gitt bruker logget inn som databaseadministrator
Og alle søppelverdiene blir slettet

# 4) Scenario disposisjon:

Scenario disposisjoner brukes når den samme testen må utføres med forskjellige datasett. La oss ta det samme eksemplet. Vi må teste påloggingsfunksjonalitet med flere forskjellige sett med brukernavn og passord.

Feature: Login Functionality Feature

For å sikre at Login Functionality fungerer,
jeg vil kjøre agurktest for å bekrefte at den fungerer

Scenariooversikt: Påloggingsfunksjonalitet

Gitt bruker navigerer til SOFTWARETESTINGHELP.COM
Når bruker logger på med brukernavn som < brukernavn > og Passord < passord >
Da skal påloggingen være vellykket

Eksempler:
| brukernavn | passord |
| Tom | passord1 |
| Harry | passord2 |
| Jerry | passord3 |

Merk:

  1. Som vist i eksemplet ovenfor blir kolonnenavn sendt som en parameter til When-setningen.
  2. I stedet for scenariet må du bruke Scenario disposisjon.
  3. Eksempler brukes til å sende forskjellige argumenter i tabellformat. Vertikale rør brukes til å skille to forskjellige kolonner. Et eksempel kan inneholde mange forskjellige kolonner.

# 5) Koder:

Agurk kjører som standard alle scenarier i alle funksjonsfilene. I sanntidsprosjekter kan det være hundrevis av funksjonsfiler som ikke er nødvendig å kjøre til enhver tid.

For eksempel: Funksjonsfiler relatert til røykprøve trenger ikke kjøres hele tiden. Så hvis du nevner en tag som røykfri i hver funksjonsfil som er relatert til røykprøve og kjører agurktest med @SmokeTest-tag. Agurk kjører bare de funksjonsfilene som er spesifikke for gitte koder. Følg eksemplet nedenfor. Du kan spesifisere flere koder i en funksjonsfil.

Eksempel på bruk av enkeltkoder:

@SmokeTest

Funksjon: Innloggingsfunksjonalitetsfunksjon

For å sikre at innloggingsfunksjonalitet fungerer,
Jeg vil kjøre agurktesten for å bekrefte at den fungerer

Scenariooversikt: Påloggingsfunksjonalitet

Gitt bruker navigerer til SOFTWARETESTINGHELP. COM
Når bruker logger på med brukernavn som < brukernavn > og Passord < passord >
Da skal påloggingen være vellykket

Eksempel på bruk av flere koder:

Som vist i eksempelet nedenfor, samme funksjonfil kan brukes til røykprøvescenarier så vel som for påloggingsprøvescenarier. Når du har tenkt å kjøre skriptet ditt for en røykprøve, så bruk @SmokeTest. På samme måte når du vil at skriptet skal kjøre for påloggingstest, bruk @LoginTest-taggen.

Et hvilket som helst antall tagger kan nevnes for en funksjonsfil så vel som for et scenario.

@SmokeTest @ LoginTest

Feature: Login Functionality Feature

For å sikre at Login Functionality fungerer,
Jeg vil kjøre agurktesten for å bekrefte at den fungerer

Scenariooversikt: Påloggingsfunksjonalitet

Gitt bruker navigerer til SOFTWARETETINGHELP.COM
Når bruker logger på med brukernavn som < brukernavn > og passord < passord >
Da skal påloggingen være vellykket

På samme måte kan du spesifiser koder for å kjøre det spesifikke scenariet i en funksjonsfil. Vennligst sjekk eksemplet nedenfor for å kjøre spesifikt scenario.

Feature: Login Functionality Feature

For å sikre at Login Functionality fungerer,
Jeg vil kjøre agurktesten for å bekrefte at den er arbeider

@positiveScenario
Scenario: Påloggingsfunksjonalitet

Gitt bruker navigerer til SOFTWARETETINGHELP.COM
Når bruker logger på med brukernavn som «USER» og Passord «PASSWORD»
Da skal pålogging være vellykket

@negaviveScenario
Scenario: Påloggingsfunksjonalitet

Gitt bruker navigerer til SOFTWARETETINGHELP.COM
Når bruker logger på med brukernavn som «USER1» og passord «PASSWORD1»
Da skal feilmeldingen kaste

# 6) JUnit Runner:

For å kjøre den spesifikke funksjonen fil agurk bruker standard JUnit Runner og spesifiser koder i @Cucumber . Alternativer. Flere koder kan gis ved å bruke komma separat. Her kan du spesifisere banen til rapporten og typen rapport du vil generere.

Eksempel på Junit Runner:

På samme måte kan du gi agurk instruksjon om å kjøre flere koder. Eksemplet nedenfor illustrerer hvordan du bruker flere tagger i agurk til å kjøre forskjellige scenarier.

# 7) Agurkrapport:

Agurk genererer sitt eget HTML-format. Imidlertid kan bedre rapportering gjøres ved hjelp av Jenkins eller bambusverktøy. Detaljer om rapportering er dekket i neste emne for agurk.

Agurkprosjektoppsett:

Detalj forklaring av agurkprosjektoppsett er tilgjengelig separat i neste opplæring. Se agurkveiledning del 2 for mer informasjon om prosjektoppsett. Husk at det ikke er behov for ekstra programvareinstallasjoner for agurk.

Implementering av funksjonsfil:

Vi må implementere disse trinnene i Java for å teste funksjonsfilene. Trenger du å lage en klasse som inneholder de gitte, når og deretter uttalelser. Agurk bruker merknadene sine, og alle trinnene er innebygd i disse kommentarene (gitt når, da). Hver setning starter med «^» slik at agurk forstår starten på trinnet. Tilsvarende slutter hvert trinn med «$». Brukeren kan bruke vanlige uttrykk for å overføre forskjellige testdata. Vanlige uttrykk tar data fra funksjonstrinn og gir definisjoner til trinn.Rekkefølgen av parametere avhenger av hvordan de sendes fra funksjonsfilen. Se neste opplæring for prosjektoppsett og kartlegging mellom funksjonsfiler og Java-klasser.

Eksempel:

Nedenfor er eksemplet for å illustrere hvordan funksjonsfiler kan implementeres.

I dette eksemplet har vi ikke brukt noen selen API. Dette er for å bare vise hvordan agurk fungerer som et frittstående rammeverk. Følg neste veiledning for selenintegrasjon med agurk.

Når du utfører agurkløperklasse, begynner agurk å lese trinnene for filfunksjoner. For eksempel når du kjører @smokeTest, vil agurk lese Feature step og gitt en uttalelse om scenario. Så snart agurk finner Gitt uttalelsen, vil den samme gitt uttalelsen bli søkt etter java-filene dine. Hvis det samme trinnet er funnet i java-fil, utfører agurk funksjonen som er spesifisert for samme trinn, ellers vil agurk hoppe over trinnet.

Konklusjon

I denne veiledningen har vi dekket funksjonene til agurkverktøy og bruk i sanntidsscenario.
Agurk er et mest favorittverktøy for mange prosjekter, da det er lett å forstå, lesbart og inneholder forretningsfunksjonalitet.

I neste kapittel vil vi dekke hvordan du setter opp et agurk-java-prosjekt og hvordan du integrerer Selen WebDriver med agurk.

Sist oppdatert: 18. januar 2021 06:40

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *