automation testing using cucumber tool
In de laatste Selenium-tutorial hebben we je kennis laten maken met Selenium Grid dat is naar gedistribueerde testuitvoering omgeving om de uitvoering van een testpas te versnellen
Nu aan het einde van deze uitgebreide Selenium-trainingsreeks, leren we gevorderd Selenium testen en aanverwante concepten.
In deze en de volgende tutorial laten we je kennismaken met de Komkommer - een Behavior Driven Development (BDD) -raamwerk dat wordt gebruikt met Selenium voor het uitvoeren van acceptatietests.
Wat je leert:
- Komkommer introductie
- Komkommer Basics
- Komkommer Project Setup:
- Gevolgtrekking
- Aanbevolen literatuur
Komkommer introductie
Een komkommer is een tool gebaseerd op Behaviour Driven Development (BDD) framework waarmee acceptatietests voor de webapplicatie worden geschreven. Het maakt automatisering van functionele validatie mogelijk in een gemakkelijk leesbaar en begrijpelijk formaat (zoals gewoon Engels) voor bedrijfsanalisten, ontwikkelaars, testers, enz.
Komkommer-feature-bestanden kunnen voor iedereen als een goed document dienen. Er zijn veel andere tools zoals JBehave die ook het BDD-framework ondersteunen. Aanvankelijk werd Cucumber geïmplementeerd in Ruby en vervolgens uitgebreid naar Java-framework. Beide tools ondersteunen native JUnit.
Behavior Driven Development is een uitbreiding van Test Driven Development en wordt gebruikt om het systeem te testen in plaats van het specifieke stuk code te testen. We zullen meer de BDD en de stijl van het schrijven van BDD-tests bespreken.
Komkommer kan samen met Selenium, Watir en Capibara etc. worden gebruikt. Komkommer ondersteunt vele andere talen zoals Perl, PHP, Python, Net etc. In deze tutorial zullen we ons concentreren op Komkommer met Java als taal.
Komkommer Basics
Om komkommer te begrijpen, moeten we alle kenmerken van komkommer en het gebruik ervan kennen.
oeps concept in c # met voorbeeld
# 1) Functiebestanden:
Feature-bestanden zijn het essentiële onderdeel van komkommer die wordt gebruikt om testautomatiseringsstappen of acceptatietests te schrijven. Dit kan worden gebruikt als het live document. De stappen zijn de toepassingsspecificatie. Alle functiebestanden eindigen met de extensie .feature.
Voorbeeld feature-bestand:
Voorzien zijn van : Functie voor aanmeldingsfunctionaliteit
Om ervoor te zorgen dat de inlogfunctionaliteit werkt,
Ik wil de komkommertest uitvoeren om te controleren of deze werkt
Scenario : Login-functionaliteit
Gegeven gebruiker navigeert naar SOFTWARETINGHELP.COM
Wanneer gebruiker logt in met gebruikersnaam als 'USER' en wachtwoord 'PASSWORD'
Vervolgens login zou succesvol moeten zijn
Scenario : Login-functionaliteit
Gegeven gebruiker navigeert naar SOFTWARETINGHELP.COM
Wanneer gebruiker logt in met gebruikersnaam als 'USER1' en wachtwoord 'PASSWORD1'
Vervolgens foutmelding moet worden gegenereerd
# 2) Functie:
T it geeft informatie over de zakelijke functionaliteit op hoog niveau (zie het vorige voorbeeld) en het doel van de te testen applicatie. Iedereen zou de bedoeling van het feature-bestand moeten kunnen begrijpen door de eerste Feature-stap te lezen. Dit deel wordt in principe kort gehouden.
# 3) Scenario:
In wezen vertegenwoordigt een scenario een bepaalde functionaliteit die wordt getest. Door het scenario te zien, zou de gebruiker in staat moeten zijn om de bedoeling achter het scenario te begrijpen en waar de test over gaat. Elk scenario moet volgen, wanneer en dan opgemaakt. Deze taal wordt 'augurk' genoemd.
- Gegeven: Zoals hierboven vermeld, specificeert gegeven de randvoorwaarden. Het is eigenlijk een bekende toestand.
- Wanneer : Dit wordt gebruikt als er een actie moet worden uitgevoerd. Zoals in het bovenstaande voorbeeld hebben we gezien dat wanneer de gebruiker probeert in te loggen met gebruikersnaam en wachtwoord, het een actie wordt
- Vervolgens: Het verwachte resultaat of resultaat moet hier worden geplaatst. Bijvoorbeeld: controleer of de aanmelding is gelukt, geslaagde paginanavigatie.
- Achtergrond: Telkens wanneer een stap in elk scenario moet worden uitgevoerd, moeten die stappen op de achtergrond worden geplaatst. Voorbeeld: als een gebruiker de database vóór elk scenario moet wissen, kunnen die stappen op een achtergrond worden gezet.
- En : En wordt gebruikt om twee of meer acties van hetzelfde type te combineren.
Voorbeeld:
Voorzien zijn van : Functie voor aanmeldingsfunctionaliteit
Scenario : Login-functionaliteit
Gegeven gebruiker navigeert naar SOFTWARETINGHELP.COM
Wanneer gebruiker logt in met gebruikersnaam als 'GEBRUIKER'
En wachtwoord als 'wachtwoord'
Vervolgens login zou succesvol moeten zijn
En De startpagina moet worden weergegeven
java codering interviewvragen en antwoorden
Voorbeeld van achtergrond:
Achtergrond:
Gegeven gebruiker aangemeld als databasebeheerder
En alle ongewenste waarden worden gewist
# 4) Scenario-overzicht:
Scenario-contouren worden gebruikt wanneer dezelfde test moet worden uitgevoerd met een verschillende dataset. Laten we hetzelfde voorbeeld nemen. We moeten de inlogfunctionaliteit testen met meerdere verschillende sets gebruikersnaam en wachtwoord.
Voorzien zijn van : Functie voor aanmeldingsfunctionaliteit
Om ervoor te zorgen dat de inlogfunctionaliteit werkt,
Ik wil de komkommertest uitvoeren om te controleren of deze werkt
Scenario-overzicht : Login-functionaliteit
Gegeven gebruiker navigeert naar SOFTWARETESTINGHELP.COM
Wanneer gebruiker logt in met gebruikersnaam als< gebruikersnaam > en Wachtwoord< wachtwoord
Vervolgens login zou succesvol moeten zijn
Voorbeelden:
| gebruikersnaam | wachtwoord |
| Tom | wachtwoord1 |
| Harry | wachtwoord2 |
| Jerry | wachtwoord3 |
Opmerking:
- Zoals in het bovenstaande voorbeeld wordt getoond, worden kolomnamen als parameter doorgegeven aan Wanneer uitspraak.
- In plaats van Scenario moet u Scenario Outline gebruiken.
- Voorbeelden worden gebruikt om verschillende argumenten in tabelvorm door te geven. Verticale buizen worden gebruikt om twee verschillende kolommen te scheiden. Een voorbeeld kan veel verschillende kolommen bevatten.
# 5) Tags:
Cucumber voert standaard alle scenario's uit in alle feature-bestanden. In realtime projecten kunnen er honderden functiebestanden zijn die niet altijd hoeven te worden uitgevoerd.
Bijvoorbeeld : Feature-bestanden met betrekking tot rooktest hoeven niet altijd te worden uitgevoerd. Dus als u een tag noemt als rookloos in elk feature-bestand dat gerelateerd is aan rooktest en komkommertest uitvoert met @SmokeTest-tag. Cucumber zal alleen die feature-bestanden uitvoeren die specifiek zijn voor bepaalde tags. Volg het onderstaande voorbeeld. U kunt meerdere tags in één feature-bestand specificeren.
Voorbeeld van gebruik van enkele tags:
@Rook test
Voorzien zijn van : Functie voor aanmeldingsfunctionaliteit
Om ervoor te zorgen dat de inlogfunctionaliteit werkt,
Ik wil de komkommertest uitvoeren om te controleren of deze werkt
Scenario-overzicht : Login-functionaliteit
Gegeven gebruiker navigeert naar SOFTWARETESTINGHELP.COM
Wanneer gebruiker logt in met gebruikersnaam als< gebruikersnaam > en Wachtwoord< wachtwoord
Vervolgens login zou succesvol moeten zijn
Voorbeelden:
| gebruikersnaam | wachtwoord |
| Tom | wachtwoord1 |
| Harry | wachtwoord2 |
| Jerry | wachtwoord3 |
Voorbeeld van gebruik van meerdere tags:
Zoals in het onderstaande voorbeeld wordt getoond, kan hetzelfde functiebestand worden gebruikt voor rooktestscenario's en voor inlogtestscenario's. Als u van plan bent uw script voor een rooktest uit te voeren, gebruik dan @SmokeTest. Als u wilt dat uw script wordt uitgevoerd voor de inlogtest, gebruikt u de tag @LoginTest.
Een willekeurig aantal tags kan zowel voor een feature-bestand als voor een scenario worden vermeld.
@SmokeTest @LoginTest
Voorzien zijn van : Functie voor aanmeldingsfunctionaliteit
Om ervoor te zorgen dat de inlogfunctionaliteit werkt,
Ik wil de komkommertest uitvoeren om te controleren of deze werkt
Scenario-overzicht : Login-functionaliteit
Gegeven gebruiker navigeert naar SOFTWARETINGHELP.COM
Wanneer gebruiker logt in met gebruikersnaam en wachtwoord
Vervolgens login zou succesvol moeten zijn
Voorbeelden:
| gebruikersnaam | wachtwoord |
| Tom | wachtwoord1 |
| Harry | wachtwoord2 |
| Jerry | wachtwoord3 |
Evenzo kunt u tags specificeren om het specifieke scenario in een feature-bestand uit te voeren. Controleer het onderstaande voorbeeld om een specifiek scenario uit te voeren.
Voorzien zijn van : Functie voor aanmeldingsfunctionaliteit
Om ervoor te zorgen dat de inlogfunctionaliteit werkt,
Ik wil de komkommertest uitvoeren om te controleren of deze werkt
@positiefcenario
Scenario : Login-functionaliteit
Gegeven gebruiker navigeert naar SOFTWARETINGHELP.COM
Wanneer gebruiker logt in met gebruikersnaam als 'USER' en wachtwoord 'PASSWORD'
Vervolgens login zou succesvol moeten zijn
@negaviveScenario
Scenario : Login-functionaliteit
Gegeven gebruiker navigeert naar SOFTWARETINGHELP.COM
Wanneer gebruiker logt in met gebruikersnaam als 'USER1' en wachtwoord 'PASSWORD1'
Vervolgens foutmelding zou moeten werpen
# 6) JUnit Runner:
Om het specifieke feature-bestand uit te voeren, gebruikt cucumber standaard JUnit Runner en specificeert u tags in @Cucumber. Opties. Meerdere tags kunnen worden gegeven door komma's te scheiden. Hier kunt u het pad opgeven van het rapport en het type rapport dat u wilt genereren.
Voorbeeld van Junit Runner:
importeer org.junit.runner.RunWith; @RunWith (Cucumber.class) @ Cucumber.Options (format = {'SimpleHtmlReport: report / smokeTest.html'}, tags = {'@ smokeTest'}) Openbare klasse JUnitRunner {}Evenzo kunt u komkommer instructies geven om meerdere tags uit te voeren. Onderstaand voorbeeld illustreert hoe u meerdere tags in komkommer kunt gebruiken om verschillende scenario's uit te voeren.
# 7) Komkommerrapport:
Komkommer genereert zijn eigen HTML-formaat. U kunt echter beter rapporteren met de Jenkins- of Bamboo-tool. Details van rapportage worden behandeld in het volgende onderwerp van komkommer.
Komkommer Project Setup:
Gedetailleerde uitleg van het opzetten van een komkommerproject is apart beschikbaar in de volgende tutorial. Raadpleeg Cucumber Tutorial Part 2 voor meer informatie over het opzetten van een project. Onthoud dat er geen extra software-installaties nodig zijn voor komkommer.
vergelijk twee bestanden in linux en zoek de verschillen
Implementatie van Feature-bestand:
We moeten deze stappen in Java implementeren om de feature-bestanden te testen. U moet een klasse maken die de gegeven, wanneer en dan instructies bevat. Komkommer gebruikt zijn annotaties en alle stappen zijn ingebed in die annotaties (gegeven, wanneer, dan). Elke zin begint met '^' zodat komkommer het begin van de stap begrijpt. Op dezelfde manier eindigt elke stap met '$'. De gebruiker kan reguliere expressies gebruiken om verschillende testgegevens door te geven. Reguliere expressies nemen gegevens van functiestappen en geven door aan stapdefinities. De volgorde van parameters hangt af van hoe ze worden doorgegeven vanuit het feature-bestand. Raadpleeg de volgende tutorial voor het instellen van projecten en het in kaart brengen tussen feature-bestanden en Java-klassen.
Voorbeeld:
Onderstaand voorbeeld illustreert hoe feature-bestanden kunnen worden geïmplementeerd.
In dit voorbeeld hebben we geen selenium-API gebruikt. Dit is om te laten zien hoe komkommer werkt als een op zichzelf staand raamwerk. Volg de volgende tutorial voor seleniumintegratie met komkommer.
Wanneer je de komkommer-rennerklasse uitvoert, begint komkommer de stappen van het feature-bestand te lezen. Als u bijvoorbeeld @smokeTest uitvoert, leest komkommer Voorzien zijn van stap en Gegeven een verklaring van scenario Zodra komkommer Gegeven de verklaring vindt, hetzelfde Gegeven statement wordt doorzocht op uw java-bestanden. Als dezelfde stap wordt gevonden in het Java-bestand, voert komkommer de functie uit die voor dezelfde stap is opgegeven, anders slaat komkommer de stap over.
Gevolgtrekking
In deze zelfstudie hebben we de functies van de komkommertool en het gebruik ervan in realtime scenario besproken.
Komkommer is een favoriete tool voor veel projecten, omdat het gemakkelijk te begrijpen en leesbaar is en zakelijke functionaliteit bevat.
In het volgende hoofdstuk , bespreken we hoe u een komkommer-java-project opzet en hoe u Selenium WebDriver met Cucumber integreert.
Aanbevolen literatuur
- Cucumber Selenium Tutorial: Cucumber Java Selenium WebDriver Integration
- 30+ beste selenium-zelfstudies: leer selenium met echte voorbeelden
- Selenium Grid-zelfstudie: installatie en voorbeeld van crossbrowser-testen
- Spock voor integratie en functioneel testen met selenium
- Gebruik van Maven Build Automation Tool en Maven Project Setup voor Selenium - Selenium Tutorial # 24
- Inleiding tot Selenium WebDriver - Selenium Tutorial # 8
- Diepgaande Eclipse-zelfstudies voor beginners
- Tutorial WAVE Accessibility Testing Tool