cucumber gherkin tutorial
Tento informativní výukový program vysvětluje výhody rámce okurky okurky a jak psát automatizační skripty pomocí okurky s jasnými příklady:
Cucumber je nástroj založený na rámci BDD (Behavior Driven Development). BDD je metodika pro pochopení funkčnosti aplikace v jednoduché reprezentaci prostého textu.
Hlavním cílem rámce Behavior Driven Development je dosáhnout toho, aby různé projektové role, jako jsou obchodní analytici, zajišťování kvality, vývojáři atd., Porozuměli aplikaci, aniž by se ponořili hluboko do technických aspektů.
Nástroj Cucumber se obecně používá v reálném čase k psaní akceptačních testů aplikace. Nástroj Cucumber poskytuje podporu mnoha programovacím jazykům, jako je Java, Ruby, .Net atd. Může být integrován s několika nástroji, jako je Selenium, Capybara atd.
Co se naučíte:
Co je okurka?
Gherkin je jazyk používaný nástrojem Cucumber. Jedná se o jednoduchou anglickou reprezentaci chování aplikace. Okurka používá pro účely dokumentace koncept souborů funkcí. Obsah v souborech funkcí je napsán v jazyce Gherkin.
V následujících tématech uvidíme více o výhodách rámce Cucumber Gherkin, Integrating Cucumber with Selenium, Create a feature file & its corresponding step definition file and a sample feature file.
Společné podmínky pro rámec okurky okurky
Cucumber Gherkin framework používá určitá klíčová slova, která jsou nezbytná pro zápis souboru funkcí.
V souborech funkcí se nejčastěji používají následující výrazy:
# 1) Funkce:
Soubor funkcí musí obsahovat podrobný popis testované aplikace (AUT). První řádek souboru funkcí musí začínat klíčovým slovem „Funkce“, které následuje po popisuaplikacetestováno. Podle standardů předepsaných společností Cucumber musí soubor funkcí obsahovat jako první řádek následující tři prvky.
- Klíčové slovo funkce
- Název funkce
- Popis funkce (volitelně)
Za klíčovým slovem funkce musí následovat název funkce. Může obsahovat volitelnou část popisu, která může zahrnovat více řádků souboru funkcí. Soubor funkcí má příponu .feature.
# 2) Scénář:
Scénář je testovací specifikace testované funkce. V ideálním případě může soubor prvku obsahovat jeden nebo více scénářů jako součást prvku. Scénář zahrnuje několik kroků testu. Podle norem pro okurky musí scénář zahrnovat 3–5 testovacích kroků, protože zdlouhavé scénáře mají tendenci ztrácet svou expresivní sílu, jakmile se počet kroků zvýší.
Scénář může zahrnovat následující kroky:
- Akce, kterou má provést uživatel.
- Očekávané výsledky akce.
V jazyce Gherkin musí scénář obsahovat následující klíčová slova:
- Dáno
- Když
- Pak
- A
Dané:
Dané klíčové slovo se používá k určení předpokladů pro provedení konkrétního scénáře. Scénář může obsahovat více než jeden zadaný příkaz nebo pro scénář nemusí existovat žádný daný příkaz.
c ++ dvojnásobně propojený seznam
Když:
Toto klíčové slovo se používá k určení akce nebo události provedené uživatelem, jako je kliknutí na tlačítko, zadání dat do textového pole atd. V jednom scénáři může být více příkazů.
Pak:
Potom se klíčové slovo používá k určení očekávaného výsledku akce provedené uživatelem. V ideálním případě musí klíčové slovo následovat klíčové slovo Then, aby bylo možné pochopit očekávaný výsledek akcí uživatele.
A:
Klíčové slovo se používá jako klíčové slovo spojky ke kombinování více příkazů. Například, více výroků Given a When ve scénáři lze kombinovat pomocí klíčového slova „And“.
# 3) Přehled scénáře:
Osnova scénáře je způsob parametrizace scénářů.
Ideálně se používá, když je třeba provést stejný scénář pro více sad dat, ale testovací kroky zůstávají stejné. Za obrysem scénáře musí následovat klíčové slovo „Příklady“, které určuje sadu hodnot pro každý parametr.
Níže je uveden příklad pochopení konceptu scénáře:
Příklad:
Osnova scénáře: Nahrát soubor
Dáno že je uživatel na obrazovce nahrávání souboru.
Když uživatel klikne na tlačítko Procházet.
A uživatel vstupuje do textového pole pro nahrávání.
A uživatel klikne na tlačítko Enter.
Pak ověří, zda je upload souboru úspěšný.
Příklady:
| název souboru |
| soubor1 |
| file2 |
Parametry v osnově scénáře musí být specifikovány pomocí znaků „“. Seznam datových hodnot parametru je třeba zadat pomocí symbolu potrubí (|).
# 4) Pozadí:
Klíčové slovo na pozadí se používá ke seskupení více zadaných příkazů do jedné skupiny.
To se obvykle používá, když se v každém scénáři souboru funkcí opakuje stejná sada daných příkazů. Místo opakovaného zadávání zadaných příkazů pro každý scénář je lze před prvním scénářem zadat pomocí klíčového slova „Pozadí“.
Příklad:
Pozadí:
Daný uživatel je na přihlašovací stránce aplikace
Výhody kostky okurky okurky
Níže jsou uvedeny výhody rámce Cucumber Gherkin, díky nimž je Cucumber ideální volbou pro rychle se rozvíjející agilní metodiku v dnešním podnikovém světě:
- Okurka je open-source nástroj.
- Reprezentace prostého textu usnadňuje netechnickým uživatelům pochopit scénáře.
- Překlenuje komunikační propast mezi různými zúčastněnými stranami projektu, jako jsou obchodní analytici, vývojáři a pracovníci zajišťování kvality.
- Údržba a pochopení automatizačních testovacích případů vyvinutých pomocí nástroje Okurka je snazší.
- Snadná integrace s dalšími nástroji, jako je Selenium a Capybara.
Integrace okurky se selenem
Okurka a selen jsou dva nejvýkonnější funkční testovací nástroje. Integrace okurky se selenovým webdriverem pomáhá různým netechnickým členům projektového týmu porozumět toku aplikací.
Níže jsou uvedeny kroky, které je třeba dodržet při integraci Cucumber s Selenium Webdriver:
Krok 1:
Okurku lze integrovat do selenového webového ovladače stažením potřebných souborů JAR.
Níže je uveden seznam souborů JAR, které se mají stáhnout pro použití Cucumber with Selenium Webdriver:
- pokrytí-2.1.1.jar
- cucumber-core-1.2.2.jar
- cucumber-java-1.2.2.jar
- cucumber-junit-1.2.2.jar
- cucumber-jvm-deps-1.0.3.jar
- cucumber-reporting-0.1.0.jar
- okurka-2.12.2.jar
- hamcrest-core-1.3.jar
- junit-4.11.jar
Výše uvedené soubory JAR lze stáhnout z Maven webová stránka .
Každý z výše uvedených souborů JAR musí být stažen jednotlivě z výše uvedeného webu.
Krok 2:
Vytvořte nový projekt v Eclipse a přidejte do projektu výše uvedené soubory JAR. Chcete-li do projektu přidat soubory JAR, klepněte pravým tlačítkem na ikonu project -> Build Path -> Configure Build Path.
Klikněte na Přidejte externí soubory JAR a přidejte do projektu seznam výše uvedených souborů JAR.
Krok č. 3:
Před vytvořením souborů funkcí a definičních souborů kroků musíme do aplikace Eclipse nainstalovat plugin Natural. Lze to provést zkopírováním a vložením souboru URL na Nápověda -> Instalovat nový software -> URL
Klikněte na Tlačítko Další nainstalovat plugin do Eclipse.
Vytvoření souboru funkcí
Ve struktuře projektu můžete vytvářet samostatné složky pro soubory prvků a soubory definic kroků. Soubory definičních kroků obsahují řádky kódování Java, zatímco soubor funkcí obsahuje anglické příkazy ve formě Gherkinova jazyka.
- Vytvořte samostatnou složku pro ukládání souboru funkcí kliknutím pravým tlačítkem na projekt -> Nový -> balíček .
- Soubor funkcí lze vytvořit tak, že přejdete na pravé tlačítko myši na projekt / balíček -> Nové -> Soubor .
- Zadejte název souboru funkcí. Za souborem funkcí musí následovat přípona .feature
- Struktura projektu musí vypadat jako níže uvedená struktura.
Vytvoření souboru definice kroku
Každý krok souboru prvků musí být mapován na odpovídající definici kroku. Značky použité v souboru Cucumber Gherkin musí být mapovány na definici kroku pomocí značek @Given, @When a @Then.
Následuje syntaxe souboru definice kroku:
Syntax:
@TagName („^ Název kroku $“)
Public void methodName ()
{
Definice metody
}
Názvy kroků musí mít předponu se symbolem karátu (^) a příponu se symbolem ($). Název metody může být jakýkoli platný název, který je přijatelný podle norem kódování Java. Definice metody zahrnuje příkazy kódování v Javě nebo jiném programovacím jazyce dle volby testera.
Příklady souborů funkcí a definičních kroků
Pro vytvoření souboru prvků a souboru definice kroku lze použít následující scénář:
Scénář:
- Otevřete přihlašovací stránku testované aplikace.
- Zadejte uživatelské jméno
- Zadejte heslo
- Klikněte na tlačítko Přihlášení.
- Ověřte, zda je přihlášení uživatele úspěšné.
Soubor funkcí:
Výše uvedený scénář lze zapsat ve formě souboru funkcí, jak je uvedeno níže:
Vlastnosti: Přihlaste se do testované aplikace.
Scénář: Přihlaste se do aplikace.
Dáno Otevřete prohlížeč Chrome a spusťte aplikaci.
Když Uživatel zadá uživatelské jméno do pole UserName.
A Uživatel zadá heslo do pole Heslo.
Když Uživatel klikne na tlačítko Přihlásit.
Soubor definice kroku:
Ve výše uvedené funkci lze soubor namapovat na odpovídající definiční soubor kroku, jak je znázorněno níže. Vezměte prosím na vědomí, že aby bylo možné poskytnout propojení mezi souborem prvků a souborem definic kroků, je třeba vytvořit soubor testovacího běžce.
Níže je znázorněn soubor definice kroku podle jeho souboru funkcí.
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(); } }
Třída TestRunner se používá k zajištění propojení mezi souborem funkcí a souborem definice kroku. Níže je ukázka toho, jak vypadá třída TestRunner. Třída TestRunner je obecně prázdná třída bez definice třídy.
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 { }
Pro spuštění souborů funkcí a definičních souborů kroků musíme spustit soubor třídy TestRunner.
Příklady
Níže je ukázka souboru funkcí různých scénářů.
Příklad č. 1:
Chcete-li ověřit, zda je uživatelské jméno a heslo k dispozici na přihlašovací stránce:
Vlastnosti: Ověřte zobrazení polí uživatelského jména a hesla na přihlašovací stránce.
Scénář: Ověření zobrazení polí uživatelského jména a hesla.
Dáno Uživatel otevře prohlížeč Firefox a přejde na testovanou aplikaci.
Když Uživatel přejde na přihlašovací stránku.
Pak Ověřte zobrazení pole pro uživatelské jméno na přihlašovací stránce.
A Ověřte zobrazení pole hesla na přihlašovací stránce.
Příklad č. 2:
Níže je uveden příklad klíčového slova osnovy scénáře v okurce okurky:
Vlastnosti: Ověřte, zda je přihlášení úspěšné u více sad testovacích dat.
Osnova scénáře: Chcete-li ověřit, zda je přihlášení úspěšné u více sad testovacích dat.
Dáno Otevřete prohlížeč Chrome a spusťte aplikaci.
Když Uživatel vstoupí do pole UserName.
A Uživatel vstoupí do pole Heslo.
Když Uživatel klikne na tlačítko Přihlásit.
Příklady:
| uživatelské jméno | heslo |
| uživatel1 | heslo1 |
| uživatel2 | heslo2 |
Závěr
- BDD je metodika pro pochopení funkčnosti aplikace v jednoduché reprezentaci prostého textu.
- Cucumber je nástroj, který k vývoji akceptačních testů aplikace používá vývoj založený na chování. Používá se k překlenutí komunikační propasti mezi různými účastníky projektu.
- Hlavní použití okurky spočívá v jeho jednoduchosti pochopit použití souborů funkcí netechnickými uživateli.
Ještě není pozdě vyzkoušet tento nástroj Okurka s okurkou.
Doporučené čtení
- Výukový program Geb - Testování automatizace prohlížeče pomocí nástroje Geb
- Cucumber Selenium Tutorial: Cucumber Java Selenium WebDriver Integration
- Testování automatizace pomocí nástroje Cucumber Tool a Selenium - Selenium Tutorial # 30
- Co je to Automation Testing (Ultimate Guide to Start Test Automation)
- Výukový program Spock: Testování pomocí Spocka a Groovyho
- Nejlepší nástroje pro testování softwaru 2021 (QA Test Automation Tools)
- Výukový program pro destruktivní testování a nedestruktivní testování
- Funkční testování vs. nefunkční testování