automation testing using cucumber tool
V minulém selenovém výukovém programu jsme vám představili Selénová mřížka který je na distribuované provedení testu prostředí k urychlení provedení zkušebního průchodu .
Nyní na konci této komplexní selenové tréninkové série se učíme pokročile Testování selenu a související pojmy.
V tomto a dalším výukovém programu vás seznámíme s Okurka - a Behavior Driven Development (BDD) framework, který se používá se selenem k provádění akceptačních testů.
Co se naučíte:
Úvod okurky
Okurka je nástroj založený na architektuře BDD (Behavior Driven Development), který se používá k psaní akceptačních testů pro webovou aplikaci. Umožňuje automatizaci funkčního ověřování ve snadno čitelném a srozumitelném formátu (jako je běžná angličtina) pro obchodní analytiky, vývojáře, testery atd.
Soubory funkcí okurky mohou sloužit jako dobrý dokument pro všechny. Existuje mnoho dalších nástrojů, jako je JBehave, které také podporují BDD framework. Zpočátku byla okurka implementována v Ruby a poté rozšířena na rámec Java. Oba nástroje podporují nativní JUnit.
Behavior Driven Development je rozšíření Test Driven Development a používá se k testování systému, spíše než k testování konkrétní části kódu. Budeme diskutovat více o BDD a stylu psaní testů BDD.
Cucumber can be used along with Selenium, Watir, and Capybara etc. Cucumber podporuje mnoho dalších jazyků, jako je Perl, PHP, Python, Net atd. V tomto tutoriálu se zaměříme na Cucumber s Javou jako jazykem.
Základy okurky
Abychom pochopili okurku, potřebujeme znát všechny vlastnosti okurky a její využití.
jak psát testovací případy v qa
# 1) Soubory funkcí:
Soubory funkcí jsou nezbytnou součástí okurky, která se používá k psaní kroků automatizace testů nebo akceptačních testů. To lze použít jako aktivní dokument. Kroky jsou specifikací aplikace. Všechny soubory funkcí končí příponou .feature.
Ukázkový soubor funkcí:
Vlastnosti : Funkce funkce přihlášení
Aby bylo zajištěno, že funkce přihlášení funguje,
Chci spustit test okurky, abych ověřil, že funguje
Scénář : Funkce přihlášení
Dáno uživatel přejde na SOFTWARETETINGHELP.COM
Když uživatel se přihlásí pomocí uživatelského jména jako „USER“ a hesla „PASSWORD“
Pak přihlášení by mělo být úspěšné
Scénář : Funkce přihlášení
Dáno uživatel přejde na SOFTWARETETINGHELP.COM
Když uživatel se přihlásí pomocí uživatelského jména jako „USER1“ a hesla „PASSWORD1“
Pak chybová zpráva by měla být vyvolána
# 2) Funkce:
T poskytuje informace o podnikových funkcích na vysoké úrovni (viz předchozí příklad) a účelu testované aplikace. Každý by měl být schopen porozumět záměru souboru funkcí přečtením prvního kroku funkce. Tato část je v zásadě stručná.
# 3) Scénář:
Scénář v zásadě představuje konkrétní funkčnost, která je testována. Při pohledu na scénář by měl být uživatel schopen porozumět záměru za scénářem a o tom, o co v testu jde. Každý scénář by měl následovat podle formátu, kdy a poté. Tento jazyk se nazývá „okurka“.
- Dané: Jak již bylo uvedeno výše, uvedená specifikuje předběžné podmínky. Je to v zásadě známý stav.
- Když : Používá se, když má být provedena nějaká akce. Stejně jako v předchozím příkladu jsme viděli, že když se uživatel pokusí přihlásit pomocí uživatelského jména a hesla, stane se z něj akce .
- Pak: Zde by měl být uveden očekávaný výsledek nebo výsledek. Například: ověřte, zda je přihlášení úspěšné, úspěšná navigace po stránce.
- Pozadí: Kdykoli je v každém scénáři vyžadován jakýkoli krok, musí být tyto kroky umístěny na pozadí. Pro instanci: Pokud uživatel potřebuje vymazat databázi před každým scénářem, lze tyto kroky umístit na pozadí.
- A : A se používá ke kombinaci dvou nebo více stejných typů akcí.
Příklad:
Vlastnosti : Funkce funkce přihlášení
Scénář : Funkce přihlášení
Dáno uživatel přejde na SOFTWARETETINGHELP.COM
Když uživatel se přihlásí pomocí uživatelského jména jako „USER“
A heslo jako „heslo“
Pak přihlášení by mělo být úspěšné
A Měla by se zobrazit domovská stránka
nejlepší svobodný software pro zrychlení počítače
Příklad pozadí:
Pozadí:
Dáno uživatel přihlášen jako správce databází
A všechny nevyžádané hodnoty jsou vymazány
# 4) Scénář scénáře:
Obrysy scénáře se používají, když je třeba provést stejný test s jinou sadou dat. Vezměme si stejný příklad. Musíme otestovat funkčnost přihlášení s několika různými sadami uživatelského jména a hesla.
Vlastnosti : Funkce funkce přihlášení
Aby bylo zajištěno, že funkce přihlášení funguje,
Chci spustit test okurky, abych ověřil, že funguje
Osnova scénáře : Funkce přihlášení
Dáno uživatel přejde na SOFTWARETESTINGHELP.COM
Když uživatel se přihlašuje pomocí uživatelského jména jako< uživatelské jméno > a heslo< Heslo >
Pak přihlášení by mělo být úspěšné
Příklady:
| uživatelské jméno | heslo |
| Tom | heslo1 |
| Harry | heslo2 |
| Jerry | heslo3 |
Poznámka:
- Jak je uvedeno výše, jsou názvy sloupců předávány jako parametr Když tvrzení.
- Místo scénáře musíte použít scénář osnovy.
- Příklady se používají k předání různých argumentů v tabulkovém formátu. Svislé trubky se používají k oddělení dvou různých sloupů. Příklad může obsahovat mnoho různých sloupců.
# 5) Značky:
Okurka ve výchozím nastavení spouští všechny scénáře ve všech souborech funkcí. V projektech v reálném čase mohou existovat stovky souborů funkcí, které nemusí být spuštěny vždy.
Například : Soubory funkcí související s kouřovým testem nemusí být spuštěny pořád. Takže pokud v každém souboru funkcí uvedete značku jako bezdymovou, která souvisí s kouřovým testem a spustí test okurky se značkou @SmokeTest. Okurka spustí pouze ty soubory funkcí, které jsou specifické pro dané značky. Postupujte podle níže uvedeného příkladu. V jednom souboru funkcí můžete zadat více značek.
Příklad použití jednotlivých značek:
@SmokeTest
Vlastnosti : Funkce funkce přihlášení
Aby bylo zajištěno, že funkce přihlášení funguje,
Chci spustit test okurky, abych ověřil, že funguje
Osnova scénáře : Funkce přihlášení
Dáno uživatel přejde na SOFTWARETESTINGHELP.COM
Když uživatel se přihlašuje pomocí uživatelského jména jako< uživatelské jméno > a heslo< Heslo >
Pak přihlášení by mělo být úspěšné
Příklady:
| uživatelské jméno | heslo |
| Tom | heslo1 |
| Harry | heslo2 |
| Jerry | heslo3 |
Příklad použití více značek:
Jak je ukázáno v níže uvedeném příkladu, stejný soubor funkcí lze použít pro scénáře kouřového testu i pro scénář testu přihlášení. Pokud chcete spustit skript pro kouřový test, použijte @SmokeTest. Podobně, pokud chcete, aby váš skript běžel pro test přihlášení, použijte značku @LoginTest.
Lze uvést libovolný počet značek pro soubor funkcí i pro scénář.
@SmokeTest @LoginTest
Vlastnosti : Funkce funkce přihlášení
Aby bylo zajištěno, že funkce přihlášení funguje,
Chci spustit test okurky, abych ověřil, že funguje
Osnova scénáře : Funkce přihlášení
Dáno uživatel přejde na SOFTWARETETINGHELP.COM
Když uživatel se přihlašuje pomocí uživatelského jména jako a hesla
Pak přihlášení by mělo být úspěšné
Příklady:
| uživatelské jméno | heslo |
| Tom | heslo1 |
| Harry | heslo2 |
| Jerry | heslo3 |
Podobně můžete určit značky pro spuštění konkrétního scénáře v souboru funkcí. Chcete-li spustit konkrétní scénář, zkontrolujte níže uvedený příklad.
Vlastnosti : Funkce funkce přihlášení
Aby bylo zajištěno, že funkce přihlášení funguje,
Chci spustit test okurky, abych ověřil, že funguje
@positiveScenario
Scénář : Funkce přihlášení
Dáno uživatel přejde na SOFTWARETETINGHELP.COM
Když uživatel se přihlásí pomocí uživatelského jména jako „USER“ a hesla „PASSWORD“
Pak přihlášení by mělo být úspěšné
@negaviveScenario
Scénář : Funkce přihlášení
Dáno uživatel přejde na SOFTWARETETINGHELP.COM
Když uživatel se přihlásí pomocí uživatelského jména jako „USER1“ a hesla „PASSWORD1“
Pak chybová zpráva by měla hodit
# 6) JUnit Runner:
Chcete-li spustit soubor specifických funkcí okurka, použijte standardní JUnit Runner a zadejte značky v @Cucumber. Možnosti. Více značek lze zadat oddělením čárkami. Zde můžete určit cestu k sestavě a typ sestavy, kterou chcete generovat.
Příklad Junit Runner:
import cucumber.api.junit.Cucumber;
import org.junit.runner.RunWith; @RunWith (Cucumber.class) @ Cucumber.Options (format = {'SimpleHtmlReport: report / smokeTest.html'}, tags = {'@ smokeTest'}) Veřejná třída JUnitRunner {} Podobně můžete dát okurce pokyn ke spuštění více značek. Níže uvedený příklad ukazuje, jak použít více značek v okurce ke spuštění různých scénářů.
import cucumber.api.junit.Cucumber; import org.junit.runner.RunWith; @RunWith(Cucumber.class) @Cucumber.Options(format={'SimpleHtmlReport:report/smokeTest.html'},tags={'@smokeTest',”@LoginTest”}) Public class JUnitRunner { }
# 7) Okurková zpráva:
Okurka vytváří svůj vlastní formát HTML. Lepší hlášení však lze provést pomocí nástroje Jenkins nebo bambus. Podrobnosti o podávání zpráv jsou popsány v dalším tématu okurky.
Nastavení projektu okurky:
Podrobné vysvětlení nastavení projektu okurky je k dispozici samostatně v dalším kurzu. Další informace o nastavení projektu najdete v části Cucumber Tutorial Part2. Pamatujte, že u okurky nejsou vyžadovány žádné další instalace softwaru.
Implementace souboru funkcí:
otestovat můj web v různých prohlížečích
Tyto kroky musíme implementovat v Javě, abychom mohli otestovat soubory funkcí. Je třeba vytvořit třídu, která obsahuje výroky dané, kdy a pak. Okurka používá své anotace a všechny kroky jsou do těchto anotací vloženy (pokud jsou uvedeny, kdy). Každá fráze začíná na „^“, takže okurka chápe začátek kroku. Podobně každý krok končí „$“. Uživatel může předávat různá testovací data pomocí regulárních výrazů. Regulární výrazy přebírají data z kroků funkce a předávají definice kroku. Pořadí parametrů závisí na tom, jak jsou předávány ze souboru funkcí. V dalším výukovém programu najdete nastavení projektu a mapování mezi soubory funkcí a třídami Java.
Příklad:
Níže uvedený příklad ilustruje, jak lze implementovat soubory funkcí.
V tomto příkladu jsme nepoužili žádné API selenu. To je jen ukázat, jak okurka funguje jako samostatný rámec. Postupujte podle následujícího kurzu pro integraci selenu s okurkou.
public class LoginTest { @Given('^user navigates to SOFTWARETETINGHELP.COM$') public void navigatePage() { system.out.println(“Cucumber executed Given statement”); } @When('^user logs in using Username as '(.*)' and Password '(.*)'$') public void login(String usename,String password) { system.out.println(“Username is:”+ usename); system.out.println(“Password is:”+ password); } @When('^click the Submit button$') public void clickTheSubmitButton() { system.out.println(“Executing When statement”) } @Then('^Home page should be displayed$') public void validatePage() { system.out.println(“Executing Then statement”) } @Then('^login should be successful$') public void validateLoginSuccess() { system.out.println(“Executing 2nd Then statement”) } }
Když spustíte třídu okurky, okurka začne číst kroky souboru funkcí. Například když spustíte @smokeTest, přečte se okurka Vlastnosti krok a Dáno prohlášení o scénář . Jakmile okurka zjistí, vzhledem k prohlášení, stejné Dáno výpis bude vyhledán pro vaše soubory Java. Pokud je stejný krok nalezen v souboru Java, pak okurka provede funkci zadanou pro stejný krok, jinak okurka tento krok přeskočí.
Závěr
V tomto kurzu jsme se zabývali funkcemi nástroje okurky a jeho použitím v reálném čase.
Okurka je nejoblíbenější nástroj pro mnoho projektů, protože je snadno srozumitelný, čitelný a obsahuje obchodní funkce.
V další kapitole se budeme zabývat tím, jak nastavit projekt okurka - java a jak integrovat Selenium WebDriver s okurkou.
Doporučené čtení
- Cucumber Selenium Tutorial: Cucumber Java Selenium WebDriver Integration
- 30+ nejlepších návodů na selen: Naučte se selen se skutečnými příklady
- Výukový program selenové mřížky: Nastavení a příklad testování mezi prohlížeči
- Spock pro integraci a funkční testování se selenem
- Použití nástroje Maven Build Automation Tool a nastavení projektu Maven pro selen - výuka selenu č. 24
- Úvod do selenu WebDriver - Selenium Tutorial # 8
- Výukové programy pro zatmění do hloubky pro začátečníky
- Výukový program pro testování přístupnosti WAVE