cucumber gherkin tutorial
Den här informativa självstudien förklarar fördelarna med gurka-gurka-ramverk och hur man skriver automatiseringsskript med gurkspråk med tydliga exempel:
Gurka är ett verktyg baserat på BDD-ram (Behavior Driven Development). BDD är en metod för att förstå funktionerna hos en applikation i den enkla representationen av ren text.
Huvudsyftet med ramen för beteendedriven utveckling är att få olika projektroller som affärsanalytiker, kvalitetssäkring, utvecklare etc. att förstå applikationen utan att dyka djupt in i de tekniska aspekterna.
Gurkaverktyg används vanligtvis i realtid för att skriva godkännandetester av en applikation. Gurkaverktyget ger stöd för många programmeringsspråk som Java, Ruby, .Net, etc. Det kan integreras med flera verktyg som Selen, Capybara, etc.
Vad du kommer att lära dig:
Vad är gurka?
Gurka är språket som används av Gurkaverktyg. Det är en enkel engelsk framställning av applikationsbeteendet. Gurka använder begreppet funktionsfiler för dokumentationsändamål. Innehållet i funktionsfilerna är skrivet på gurka.
I följande ämnen kommer vi att se mer om fördelarna med Cucumber Gherkin framework, Integrera Gurka med Selen, Skapa en funktionsfil och dess motsvarande stegdefinitionsfil och en exempelfunktionsfil.
Vanliga termer för gurka-agurkramverk
Cucumber Gherkin framework använder vissa nyckelord som är viktiga för att skriva en funktionsfil.
Följande termer används oftast i funktionsfiler:
# 1) Funktion:
En funktionsfil måste innehålla en beskrivning på hög nivå av en Application under Test (AUT). Den första raden i funktionsfilen måste börja med nyckelordet ”Feature” enligt beskrivningen aven ansökanunder test. Enligt de standarder som föreskrivs av Gurka måste funktionsfilen innehålla följande tre element som första rad.
- Feature Keyword
- Funktionsnamn
- Funktionsbeskrivning (valfritt)
Funktionsnyckelordet måste följas av ett funktionsnamn. Det kan innehålla ett valfritt beskrivningsavsnitt som kan sträcka sig över flera rader i funktionsfilen. En funktionsfil har tillägget .feature.
# 2) Scenario:
Ett scenario är en testspecifikation av funktionaliteten som ska testas. Helst kan en funktionsfil innehålla ett eller flera scenarier som en del av funktionen. Ett scenario innehåller flera teststeg. Enligt gurkastandarderna måste ett scenario innehålla 3-5 teststeg eftersom långa scenarier tenderar att förlora sin uttrycksfulla kraft när antalet steg ökar.
Ett scenario kan innehålla följande steg:
- Åtgärd som ska utföras av en användare.
- Förväntade resultat av åtgärden.
På ättikspråk måste ett scenario innehålla följande nyckelord:
- Given
- När
- Sedan
- Och
Given:
Angivet nyckelord används för att specificera förutsättningarna för att exekvera ett specifikt scenario. Ett scenario kan innehålla mer än en given uttalande eller det kan inte finnas några angivna uttalanden för ett scenario.
När:
Detta nyckelord används för att specificera åtgärden eller en händelse som utförs av användaren, såsom att klicka på en knapp, mata in data i textrutan etc. Det kan finnas flera när uttalanden i ett enda scenario.
Sedan:
Sedan används nyckelord för att specificera det förväntade resultatet av en åtgärd som utförs av användaren. Helst när sökord måste följas av sedan nyckelord för att förstå det förväntade resultatet av användaråtgärder.
Och:
Och nyckelord används som ett sammankopplingsnyckelord för att kombinera flera påståenden. Till exempel, flera givna och när uttalanden i ett scenario kan kombineras med nyckelordet 'And'.
# 3) Scenarioöversikt:
En scenariot är ett sätt att parametrera scenarier.
Detta används helst när samma scenario måste köras för flera datauppsättningar, men teststegen förblir desamma. Scenarioöversikt måste följas av nyckelordet ”Exempel”, som anger värden för varje parameter.
Nedan följer exemplet för att förstå konceptet Scenario Outline:
Exempel:
Scenarioöversikt: Ladda upp en fil
Given att en användare är på skärmen för uppladdningsfil.
När användaren klickar på knappen Bläddra.
Och användaren går in i uppladdningstextrutan.
Och användaren klickar på Enter-knappen.
Sedan verifierar att filöverföringen är lyckad.
Exempel:
| filnamn |
| fil1 |
|file2|
Parametrar inom scenariot måste anges med tecknen ''. En lista med datavärden för parametern måste anges med Pipe-symbolen (|).
# 4) Bakgrund:
Bakgrundsnyckelord används för att gruppera flera angivna uttalanden i en enda grupp.
Detta används vanligtvis när samma uppsättning givna uttalanden upprepas i varje scenario i en funktionsfil. Istället för att specificera angivna uttalanden för varje scenario upprepade gånger kan de specificeras med nyckelordet ”Bakgrund” före det första scenariot.
Exempel:
Bakgrund:
Angiven användare finns på inloggningssidan för programmet
Fördelar med gurka gurka Framework
Nedan följer fördelarna med Cucumber Gherkin framework som gör Gurka till ett idealiskt val för snabb utvecklad Agile-metodik i dagens företagsvärld:
- Gurka är ett open source-verktyg.
- Enkel textrepresentation gör det lättare för icke-tekniska användare att förstå scenarierna.
- Det överbryggar kommunikationsgapet mellan olika projektintressenter som affärsanalytiker, utvecklare och kvalitetssäkringspersonal.
- Automationstestfall utvecklade med gurkaverktyget är lättare att underhålla och förstå.
- Lätt att integrera med andra verktyg som Selenium och Capybara.
Integrering av gurka med selen
Gurka och selen är de två kraftfullaste funktionella testverktygen. Integrering av gurka med Selenium Webdriver hjälper olika icke-tekniska medlemmar i ett projektteam att förstå applikationsflödet.
Nedan följer stegen som ska följas för integrering av gurka med Selenium Webdriver:
Steg 1:
Gurka kan integreras med Selenium Webdriver genom att ladda ner nödvändiga JAR-filer.
Nedan följer listan över JAR-filer som ska laddas ner för att använda gurka med Selenium Webdriver:
- täckning-2.1.1.jar
- gurka-kärna-1.2.2.jar
- gurka-java-1.2.2.jar
- gurka-junit-1.2.2.jar
- gurka-jvm-deps-1.0.3.jar
- gurka-rapportering-0.1.0.jar
- gurka-2.12.2.jar
- hamcrest-core-1.3.jar
- junit-4.11.jar
Ovanstående JAR-filer kan laddas ner från Maven hemsida .
Var och en av ovanstående JAR-filer måste laddas ner individuellt från ovanstående webbplats.
Steg 2:
Skapa ett nytt projekt i Eclipse och lägg till ovanstående JAR-filer i projektet. För att lägga till JAR-filerna i projektet, högerklicka på projekt -> Bygg väg -> Konfigurera byggväg.
Klicka på Lägg till externa JAR knappen och lägg till listan med ovanstående JAR-filer i projektet.
Steg 3:
Innan du skapar funktionsfilerna och stegdefinitionsfilerna måste vi installera ett naturligt plugin i Eclipse. Det kan göras genom att kopiera och klistra in URL till Hjälp -> Installera ny programvara -> URL
Klicka på Nästa knapp för att installera plugin i Eclipse.
Skapa en funktionsfil
Skapa separata mappar för funktionsfiler och stegdefinitionsfiler i projektstrukturen. Stegdefinitionsfiler inkluderar Java-kodningslinjer medan funktionsfilen innehåller engelska uttalanden i form av gurkspråk.
- Skapa en separat mapp för lagring av funktionsfil genom att högerklicka på projektet -> Nytt -> Paket .
- Funktionsfilen kan skapas genom att navigera till högerklicka på projektet / paketet -> Ny -> Fil .
- Ange ett namn för funktionsfilen. Funktionsfilen måste följas av tillägget .feature
- Projektstrukturen måste se ut som nedanstående struktur.
Skapa en stegdefinitionsfil
Varje steg i funktionsfilen måste mappas till motsvarande stegdefinition. Taggar som används i filen Gurkagurka måste mappas till dess stegdefinition med hjälp av taggarna @Given, @When och @Then.
Följande är syntaxen för en stegdefinitionsfil:
Syntax:
@TagName (“^ Stegnamn $”)
Public void methodName ()
{
Metoddefinition
}
microsoft dynamics ax 2012 tutorial för nybörjare
Stegnamn måste vara prefix med symbolen karat (^) och efterföljas av symbolen ($). Metodnamn kan vara vilket giltigt namn som helst som är acceptabelt enligt Java-kodningsstandarder. Metoddefinition inkluderar kodningsuttalanden i Java eller något annat programmeringsspråk som testaren väljer.
Feature File och Step Definition File Exempel
Följande scenario kan användas för att skapa funktionsfil och stegdefinitionsfil:
Scenario:
- Öppna inloggningssidan för en applikation som testas.
- Ange användarnamnet
- Ange lösenordet
- Klicka på inloggningsknappen.
- Kontrollera om användarinloggningen lyckas.
Funktionsfil:
Ovanstående scenario kan skrivas i form av en funktionsfil enligt nedan:
Funktion: Logga in på en applikation som testas.
Scenario: Logga in på applikationen.
Given Öppna Chrome-webbläsaren och starta appen.
När Användaren anger användarnamnet i fältet Användarnamn.
Och Användaren anger ett lösenord i fältet Lösenord.
När Användaren klickar på inloggningsknappen.
Stegdefinitionsfil:
I ovanstående funktion kan en fil mappas till motsvarande stegdefinitionsfil som visas nedan. Observera att för att tillhandahålla en länk mellan funktionsfilen och stegdefinitionsfilen måste en testkörningsfil skapas.
Nedan visas en stegdefinitionsfil enligt dess funktionsfil.
package com.sample.stepdefinitions; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import cucumber.api.java.en.And; import cucumber.api.java.en.Given; import cucumber.api.java.en.When; public class StepDefinition { WebDriver driver; @Given('^Open Chrome browser and launch the application$') public void openBrowser() { driver = new ChromeDriver(); driver.manage().window().maximize(); driver.get('www.facebook.com'); } @When('^User enters username onto the UserName field$') public void enterUserName() { driver.findElement(By.name('username')).sendKeys('test@demo.com'); } @And('^User enters password onto the Password field$') public void enterPassword() { driver.findElement(By.name('password')).sendKeys('test@123'); } @When('^User clicks on Login button$') public void clickOnLogin() { driver.findElement(By.name('loginbutton')).click(); } }
TestRunner-klassen används för att tillhandahålla länken mellan funktionsfil och stegdefinitionsfil. Nedan följer ett exempel på hur TestRunner-klassen ser ut. En TestRunner-klass är vanligtvis en tom klass utan klassdefinition.
Package com.sample.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 { }
Vi måste köra TestRunner-klassfilen för körning av funktionsfiler och stegdefinitionsfiler.
Exempel
Nedan visas funktionsfilrepresentationen av olika scenarier.
Exempel 1:
För att verifiera om användarnamnet och lösenordet finns på inloggningssidan:
Funktion: Verifiera visningen av användarnamn och lösenordsfält på en inloggningssida.
Scenario: För att verifiera visning av användarnamn och lösenordsfält.
Given Användaren öppnar webbläsaren Firefox och navigerar till applikationen under test.
När Användaren navigerar till en inloggningssida.
Sedan Kontrollera att användarnamnfältet visas på inloggningssidan.
Och Kontrollera att lösenordsfältet visas på inloggningssidan.
Exempel 2:
Nedan följer exemplet för scenarioöversikt i Cucumber Gherkin:
Funktion: Kontrollera om inloggningen lyckas för flera uppsättningar testdata.
Scenarioöversikt: För att verifiera om inloggningen lyckas för flera uppsättningar testdata.
Given Öppna Chrome-webbläsaren och starta appen.
När Användaren går in i fältet Användarnamn.
Och Användaren går in i lösenordsfältet.
När Användaren klickar på inloggningsknappen.
Exempel:
| användarnamn | lösenord |
| användare1 | lösenord1 |
| användare2 | lösenord2 |
Slutsats
- BDD är en metod för att förstå funktionerna i en applikation i enkel återgivning av ren text.
- Gurka är ett verktyg som använder Behavior Driven Development för att skriva godkännandetester av en applikation. Den används för att överbrygga kommunikationsgapet mellan olika projektintressenter.
- Huvudanvändningen av Gurka ligger i dess enkelhet att förstå användningen av funktionsfiler av icke-tekniska användare.
Det är inte för sent att prova detta gurkaverktyg med gurkspråk.
Rekommenderad läsning
- Geb Tutorial - Browser Automation Testing med hjälp av Geb Tool
- Gurkselen-handledning: Gurka Java Selen WebDriver-integration
- Automationstestning med gurkaverktyg och selen - Selen självstudie # 30
- Vad är Automation Testing (Ultimate Guide to Start Test Automation)
- Spock Tutorial: Testing With Spock And Groovy
- Bästa verktyg för testning av programvara 2021 (QA Test Automation Tools)
- Handledning för destruktiv testning och icke-destruktiv testning
- Funktionell testning mot icke-funktionell testning