Cucumber: testovací nástroj na automatizáciu testovania

Cucumber je open-source framework na automatizáciu testovania, ktorý sa používa na písanie testovacích prípadov v prirodzenom jazyku. Je založený na Gherkin špecifikácii jazyka, ktorá používa jednoduchú gramatiku na vyjadrenie krokov testu, očakávaných výsledkov a ďalších informácií.

Cucumber je testovací nástroj, ktorý podporuje vývoj riadený správaním (BDD – Behavior Driven Development) a je písaný v jazyku Ruby. Ponúka spôsob písania testov, ktorému porozumie každý bez ohľadu na jeho technické znalosti. Pri BDD používatelia (obchodní analytici, product owneri) najprv napíšu scenáre alebo akceptačné testy, ktoré opisujú správanie systému z pohľadu zákazníka a tie sú určené na preskúmanie a podpísanie product ownermi pred tým, ako vývojári napíšu kód. Cucumber môžeš použiť spolu s Watir, Selenium, Capybara atď. Podporuje mnoho ďalších jazykov, ako sú PHP, Net, Python, Perl.

Výhody Cucumber

  • IT Testeri môžu písať testovacie skripty bez toho, aby mali hlboké znalosti programovania.
  • Pluginy sú rýchlejšie v porovnaní so Selenium.
  • Podporuje rôzne programovacie jazyky.
  • Kód sa dá opakovane použiť.
  • Jednoduché a rýchle nastavenie.
  • Dá sa použiť na automatizáciu testovania na rôznych platformách, vrátane webových aplikácií, desktopových aplikácií a API.
  • Cucumber je možné rozšíriť o vlastné kroky a funkcie.
  • Používa prirodzený jazyk, ktorý je ľahko pochopiteľný pre testerov aj vývojárov.

Nevýhody Cucumber

  • Cucumber testy môžu byť náročné na údržbu, ak sa aplikácia často mení.
  • Vyžaduje si zapojenie používateľa, aby bolo možné správne opísať scenáre.

Porovnanie Cucumber s inými frameworkmi

Cucumber je často porovnávaný s inými frameworkmi na automatizáciu testovania, ako sú Selenium, TestNG, Cypress, Robot Framework a Jbehave.

Cucumber vs Selenium

  • Selenium je framework na automatizáciu testovania, zatiaľ čo Cucumber je nástroj na behaviorálne testovanie.
  • Selenium je napísané v programovacích jazykoch, ako sú Java, .net a iné, zatiaľ čo Cucumber je napísaný v programovacom jazyku aj v obyčajnom texte.
  • Selenium podporuje podmienené príkazy, ale Cucumber nie.
  • Testovacie skripty sa v Selenium píšu na základe požiadaviek, ale v Cucumber začínaš najprv so scenármi.
  • Skripty Selenium sa ťažko vyvíjajú, zatiaľ čo Cucumber bol jednoduchší na vývoj.
  • Identifikácia syntaktických chýb je počas vývoja skriptu pomerne jednoduchá, zatiaľ čo v Cucumberi chyby hneď nenájdeš.
  • Oba frameworky podporujú jazyky Perl, Python, Java, PHP, .net a iné.
  • Inštalácia Selenium je náročnejšia ako inštalácia Cucumber.
  • Selenium sa používa na funkčné a výkonnostné testovanie, Cucumber sa používa na testovanie user stories.
  • Selenium je zamerané na webové aplikácie, Cucumber možno použiť na testovanie akéhokoľvek typu softvéru.

Cucumber vs TestNG

  • TestNG podporuje vývoj riadený testami (TDD), Cucumber podporuje vývoj riadený správaním (BDD).
  • TestNG sa používa na testovanie na rôznych úrovniach pomocou Unit testing a Functional testing. V podstate sa dá použiť na testovanie funkcií od nízkej úrovne až po funkcie vysokej úrovne, zatiaľ čo Cucumber sa používa na funkčné testovanie funkcií vysokej úrovne s viacerými scenármi.
  • TestNG je dobré na testovanie jednotlivých testovacích prípadov, ale nie je ľahko čitateľné pre netechnických ľudí, zatiaľ čo Cucumber implementuje testy pomocou rovnakého jazyka, ktorý sa používa na diskusiu s obchodným tímom.
  • Oba frameworky podporujú paralelné testovanie.
  • Pre TestNG aj pre Cucumber platí, že sú open-source a bezplatné.

Cucumber vs Playwright

  • Oba frameworky, aj Playwright aj Cucumber, sú open-source a bezplatné.
  • Oba frameworky podporujú rôzne jazyky programovania, vrátane JavaScriptu, Pythonu, TypeScriptu a C#.
  • Oba frameworky podporujú paralelné testovanie.
  • Cucumber je založený na prístupe BDD, zatiaľ čo Playwright je založený na prístupe TDD.
  • Cucumber používa prirodzený jazyk na písanie testovacích prípadov, zatiaľ čo Playwright používa špeciálny jazyk na písanie testovacích prípadov.
  • Cucumber je jednoduchší na použitie ako Playwright.
  • Playwright je výkonnejší ako Cucumber.

Cucumber vs Cypress

  • Cucumber je založený na prístupe BDD (Behavior Driven Development), čo znamená, že testovacie prípady sú písané v prirodzenom jazyku, ktorý je zrozumiteľný pre testerov aj vývojárov, zatiaľ čo Cypress je založený na TDD (Test Driven Development).
  • Cucumber podporuje rôzne jazyky programovania, zatiaľ čo Cypress podporuje iba JavaScript a TypeScript.
  • Cucumber nepodporuje testovanie výkonnosti, zatiaľ čo Cypress áno.
  • Oba frameworky sú open-source a bezplatné.
  • Cypress aj Cucumber podporujú API testovanie.

Cucumber vs Robot Framework

  • Cucumber je primárne spojený s vývojom riadeným správaním (BDD) a je napísaný v jazyku Gherkin. Robot Framework naproti tomu používa prístup založený na kľúčových slovách a umožňuje testerom písať testovacie prípady pomocou kľúčových slov a parametrov, čo uľahčuje ich pochopenie a údržbu.
  • Cucumber ponúka väčšiu flexibilitu z hľadiska programovacích jazykov, Robot Framework je implementovaný pomocou jazyka Python a na písanie testovacích prípadov podporuje predovšetkým jazyk Python.
  • Oba frameworky majú veľkú a aktívnu komunitu s rozsiahlou dokumentáciou a návodmi.
  • Cucumber možno používať s rôznymi testovacími nástrojmi, ako sú Selenium a WebDriver. Robot Framework sa používa predovšetkým so Selenium.
  • Cucumber poskytuje rôzne možnosti reportovania vrátane HTML, JSON a XML. Robot Framework poskytuje jediný report HTML.
  • Cucumber sa všeobecne považuje za jednoduchší na používanie ako Robot Framework, najmä pre testerov bez skúseností s programovaním.
  • Robot Framework je flexibilnejší a rozšíriteľnejší ako Cucumber.
  • Robot Framework je vo firmách používanejší ako Cucumber.

Cucumber vs Jbehave

  • Oba frameworky používajú na písanie testov syntax Gherkin
  • Oba frameworky podporujú rôzne programovacie jazyky vrátane jazykov Java, Python a Ruby.
  • Oba frameworky možno použiť na automatizáciu rôznych typov testov vrátane unit testov, integračných testov a end-to-end testov.
  • Oba frameworky sú open-source a môžu sa používať bezplatne.
  • Cucumber je čisto BDD framework, zatiaľ čo JBehave je hybridný framework, ktorý podporuje BDD aj TDD (Test Driven Development).
  • Cucumber používa striktne syntax Gherkin, zatiaľ čo JBehave umožňuje väčšiu flexibilitu syntaxe.
  • Cucumber možno používať s rôznymi testovacími nástrojmi, napríklad Selenium a WebDriver. JBehave sa používa predovšetkým so Seleniom.
  • Cucumber poskytuje rôzne možnosti reportovania vrátane HTML, JSON a XML. JBehave poskytuje jediný report HTML.
  • Cucumber sa všeobecne považuje za jednoduchší na používanie a pochopenie ako JBehave, najmä pre testerov bez skúseností s programovaním.
  • JBehave je flexibilnejší a rozšíriteľnejší ako Cucumber.
  • Cucumber je používanejší ako JBehave.

Cucumber API testovanie

Cucumber môže byť použitý na automatizáciu testovania API. Ak chceš automatizovať testovanie API pomocou Cucumber, budeš musieť použiť testovací nástroj, napríklad RestAssured alebo Postman. Tieto nástroje umožňujú odosielať požiadavky HTTP na rozhrania API a analyzovať odpovede. Potom môžeš pomocou nástroja Cucumber napísať testy, ktoré potvrdzujú očakávané správanie API.

Tu je príklad testu Cucumber pre API, ktorý vracia zoznam produktov.

Gherkin štýl:

Scenár: Získať zoznam produktov

When I send a GET request to „/products“

Then I should receive a response with status code 200 OK

  And the response body should contain a list of products

Tento test odošle požiadavku GET na koncový bod /products rozhrania API a potvrdí, že odpoveď má stavový kód 200 OK a že telo odpovede obsahuje zoznam produktov.

Testovanie API v aplikácii Cucumber možno použiť na testovanie všetkých aspektov API:

  • Autentifikácia,
  • autorizácia,
  • overovanie vstupov,
  • overenie výstupov,
  • výkonnosť,
  • škálovateľnosť.

Viac o Gherkin štýle jazyka si vieš prečítať tu.

Cucumber inštalácia

Prerekvizity:  Java JDK, Eclipse. Tu nájdeš podrobný návod na inštaláciu Java a Eclipse IDE na Windows.

Na inštaláciu Cucumberu na Windowse postupuj podľa týchto krokov:

  1. Otvor Eclipse a klikni na Help položku v hornej lište. Potom klikni na „Eclipse Marketplace“.

Cucumber inštalácia na Windowse

2. Zobrazí sa ti toto okno. Do vyhľadávacej lišty zadaj „Cucumber“ a stlač Enter. Teraz stlač tlačidlo Install.

Cucumber inštalácia na Windowse

3. Klikni na „I accept the terms of the license agreement“ a potom stlač tlačidlo Finish.

Cucumber inštalácia na Windowse

4. Teraz zaklikni checkbox Authority / Update Site a Trust Selected.

Cucumber inštalácia na Windowse

5. Teraz reštartuj Eclipse.

Cucumber inštalácia na Windowse

6. Cucumber by mal byť úspešne nainštalovaný. Overíš si to tak, že klikneš na Help -> About Eclipse IDE.

Cucumber inštalácia na Windowse

7. Keď sa ti zobrazí toto okno, klikni na „Installation details“.

Cucumber inštalácia na Windowse

8. Ak v zozname nájdeš Cucumber Eclipse, inštalácia prebehla úspešne a môžeš začať s testovaním.

Cucumber inštalácia na Windowse

Záver

Cucumber je výkonný open-source framework na automatizáciu testovania, ktorý umožňuje písanie testov v prirodzenom jazyku a podporuje Behavior Driven Development (BDD). Jeho flexibilita v podpore rôznych programovacích jazykov a integrácia s mnohými testovacími nástrojmi, ako sú Selenium a Capybara, robí z neho atraktívnu voľbu pre projekty rôznej veľkosti a typu.

Napriek niektorým výzvam, ako je údržba testov pri častých zmenách aplikácie, Cucumber poskytuje jednoduché a efektívne riešenie pre automatizáciu testovania, ktoré je prístupné pre technických aj netechnických používateľov.

Ak vieš po nemecky a hľadáš si prácu ako IT tester, prezri si naše benefity pre zamestnancov a reaguj na najnovšie ponuky práce.

O autorovi

Michaela Kojnoková

Agile Test Engineer

Po štúdiu informatiky na ŽU a TUKE som sa najviac ponorila do oblasti automatizácie testovania. Okrem toho sa venujem tvorbe webov, databázam, dátovej analytike, umelej inteligencii a strojovému učeniu. Mám rada cestovanie, šport a najviac si užívam čas strávený v prírode s mojimi blízkymi. LinkedIn

Daj nám o sebe vedieť