rest api testing with cucumber using bdd approach
Tento výukový program vysvetľuje testovanie rozhrania REST API s uhorkou pomocou prístupu BDD. Zahŕňa inštaláciu softvéru, nastavenie projektu, vykonávanie testovacieho jazyka a správy.
V tomto článku uvidíme, ako začať s testovaním REST API v štýle BDD s rámcom Cucumber.
Skôr ako sa tejto téme ponoríme hlboko, pochopme dôležité pojmy, ktoré sú s ňou spojené.
Začnime!!
Čo sa dozviete:
- Dôležité koncepty v rozhraní REST API
- Ako funguje uhorka?
- Nastavenie rámca na testovanie uhoriek v systéme Windows
- Záver
- Odporúčané čítanie
Dôležité koncepty v rozhraní REST API
ODDYCH
Toto je softvérový architektonický štýl. Plná forma REST je prevod reprezentatívneho štátu . Definuje množinu obmedzení, ktoré sa majú použiť pri vytváraní webových služieb. Webové služby, ktoré zodpovedajú architektonickému štýlu REST, sa nazývajú webové služby RESTful.
Testovanie REST API
Testovanie REST API je testovanie API pomocou 4 hlavných metód, tj POST, GET, PUT a DELETE.
Šablóna REST
RestTemplate je trieda jarnej architektúry open-source, ktorá poskytuje pohodlný spôsob testovania pokojných webových služieb založených na HTTP poskytovaním preťažených metód pre metódy HTTP.
Poznámka : Ak sa chcete dozvedieť viac o koncepte testovania REST API, môžete si prečítať náš predchádzajúci návod ‘ Testovanie REST API s Spring RestTemplate a TestNG ‘Kde sme sa zaoberali tým, ako vykonať ručné testovanie REST API spolu s konceptom JSON.
BDD
BDD je prístup založený na vývoji správania. Toto je jedna z techník vývoja softvéru, ktorá vyplynula zo štýlu Test-Driven Development, tj. TDD.
Princíp testovania BDD spočíva v tom, že testovacie prípady sú napísané v prirodzenom jazyku, ktorý je ľahko čitateľný aj pre neprogramátorov.
Uhorka
Uhorka je nástroj, ktorý podporuje vývoj založený na správaní
najlepšia špionážna telefónna aplikácia pre Android
Ako funguje uhorka?
Pozrime sa, ako funguje Uhorka.
Uhorka sa skladá zo súborov funkcií, súborov s definíciami krokov a triedy Runner.
Súbory funkcií
Súbory funkcií píše váš obchodný analytik alebo sponzor. Sú napísané vo formáte prirodzeného jazyka so špecifikáciami, ktoré sú v nich popísané, a potvrdzujú, že funkcie aplikácie zodpovedajú špecifikáciám.
V týchto špecifikáciách je uvedených viac scenárov alebo príkladov. Každý scenár predstavuje zoznam určitých krokov, ktoré musí Cucumber vykonať.
Uvažujme o scenári, keď sa chce užívateľ prihlásiť do systému.
Na overenie, či to funguje podľa špecifikácií, je potrebné opísať tento scenár. Tu sú kroky, ktoré je potrebné vykonať spolu s požadovaným výsledkom podľa špecifikácií.
Len pre predstavu, takto bude vyzerať ukážkový scenár:
Scenario: Login to the system Given User launches Login screen When User enters username, password and submit Then Login Successful message appears
Vidíte, že každý scenár je akýmsi zoznamom krokov, ktoré musí Cucumber vykonať. Aby uhorka pochopila scenáre, musí dodržiavať niektoré základné pravidlá syntaxe, tzv Uhorka .
Súbory s definíciami krokov
Súbory s definíciami krokov mapujú každý Gherkinov krok uvedený v súbore funkcií s implementačným kódom. Toto umožňuje spoločnosti Cucumber vykonať akciu, ktorú je potrebné vykonať krokom.
Rámec uhorky podporuje mnoho programovacích jazykov na písanie definícií krokov, ako sú Java, .net a Ruby.
Poznámka : V článku ‘ Testovanie REST API s Spring RestTemplate a TestNG ‘, Vyvinuli sme testovací projekt TestNG so šablónou Spring.
Teraz vyvinieme testovací rámec pre rovnakú službu REST a RestTemplate, ale pomocou štýlu Cucumber pre štýl testovania vývoja zameraného na správanie.
Začnime s nastavením nášho automatizačného testovacieho rámca pomocou programu Cucumber!
Nastavenie rámca na testovanie uhoriek v systéme Windows
# 1) Inštalácia
i) Na vývoj definícií stupňov použijeme Javu. Najprv si teda stiahnite inštalátor JDK pre Windows z Oracle a nainštalujte si na svoj počítač Java.
ii) IDE (integrované vývojové prostredie) : Použil som Eclipse ako IDE pre svoj vývoj Automation Test Suite. Môžete si ho stiahnuť z Zatmenie
(iii) Získajte doplnok Eclipse pre uhorku:
V aplikácii Eclipse postupujte takto:
- Z ponuky vyberte možnosť Pomocník -> Inštalovať nový softvér.
- Zadajte „Zatmenie uhorky“ do vyhľadávacieho textového poľa.
- Klikni na Inštalácia tlačidlo.
Inštalácia zásuvného modulu pre uhorky v Eclipse
- Stále kliknite na tlačidlo Ďalej, kým sa nedostanete k Skontrolujte licenciu obrazovka.
Nakoniec kliknite na začiarkavacie políčko, aby ste prijali licenčnú zmluvu, a kliknite na ikonu Skončiť tlačidlo. Týmto sa inštalácia dokončí. Teraz reštartujte Eclipse IDE. Toto je potrebné, aby bola inštalácia doplnku účinná.
iv) Jarné poháre: Pretože budeme používať triedu RestTemplate, ktorá patrí do jarného rámca, musíte mať jarné rámcové nádoby. Jarné poháre si môžete stiahnuť z Jarný rámec a uložte ho do lokálneho priečinka. Napríklad, C: / projectJar
(v) Jednoduché nádoby typu JSON: Musíme vykonať analýzu JSON. Preto použijeme ľahké jednoduché JSON API. Stiahnite si teda JSON-simple-1.1.jar a uložte ho do C: / projectJar
vi) Dózy na uhorky:
Na spustenie projektu Uhorka by ste potrebovali nasledujúce poháre od uhorky:
- uhorka-jadro
- uhorka-java
- uhorka-JUnit
- uhorka-JVM-deps
- hlásenie uhoriek
- uhorka
- JUnit
- mockito-všetci
- pokrytie
- cucumber-HTML (Pre správy v html)
Tieto súbory môžete stiahnuť pomocou súboru pom.xml. Najjednoduchším spôsobom je však stiahnuť tieto súbory jar z priečinka Centrálne úložisko a uložte tieto súbory jar do miestneho priečinka, Napríklad, C: / projectJar
Teraz sme týmto dokončili všetky potrebné inštalácie. Poďme teda vytvoriť náš projekt BDD Test Automation.
# 2) Nastavenie projektu
- Create File -> New -> Java Project -> Name it as ‘ CRUD_Cucumber “.
- Teraz vytvorte nový balík Java ukážka
- Konfigurujte BuildPath projektu:
- Ako ste videli v predchádzajúcej časti, nainštalovali sme doplnok Cucumber, stiahli sme jar a džbány jednoduché vo formáte JSON. Takže je čas pridať do nášho projektu cestu budovania, ktorá ich spotrebuje. Za týmto účelom vytvorte a lib priečinok v Priečinok CRUD_Cucumber a teraz skopírujte všetky tégliky z C: / projectJar do lib / Uhorka, lib / jar priečinok.
- Kliknite pravým tlačidlom myši na „ CRUD_Cucumber “ -> Cesta zostavy -> Konfigurovať cestu zostavy.
- Klikni na Knižnice tab.
- Kliknite na Pridajte nádoby tlačidlo-> Vyberte všetky tégliky z lib / Uhorka priečinok a lib / jar priečinok. Týmto sa do cesty zostavenia vášho projektu pridajú všetky poháre na uhorky, jarné poháre a jednoduchý pohár JSON.
Štruktúra vášho projektu sa v Prieskumníkovi balíkov Eclipse zobrazí nasledovne.
Štruktúra balíka skúšobného projektu
# 3) Súbor funkcií
Poďme si teraz zostaviť súbor funkcií DemoFeature.feature s funkciou Vykonávanie operácií CRUD v službe zamestnancom.
V našom príklade som použil jednu atrapu http://dummy.restapiexample.com/api vzorovej služby REST.
Tento súbor funkcií popisuje scenáre vykonania operácií CRUD, tj. Pokrytia CRUD (Create-Read-Update-Delete).
- Najprv si definujme funkciu, v našom prípade ide o testovanie metód CRUD, ktoré je možné opísať nasledovne.
Feature: Test CRUD methods in Sample Employee REST API testing
- Teraz to má rôzne scenáre, ako je vytvorenie, aktualizácia, čítanie a odstránenie záznamu zamestnanca. Takže sa pozrite na scenár POST:
Scenario: Add Employee record
- Popíšte nevyhnutný predpoklad pre test, ktorým je nastavenie adresy URL služby zamestnancom.
Given I Set POST employee service api endpoint
- Zadajte skutočný testovací krok odoslania žiadosti o príspevok.
When I Set request HEADER And Send a POST HTTP request
- Teraz opíšte overenie orgánu odpovede.
Then I receive valid Response
V našom súbore funkcií bude scenár vyzerať takto:
Scenario: Add Employee record Given I Set POST employee service api endpoint When I Set request HEADER And Send a POST HTTP request Then I receive valid Response
Podobne môžete napísať zostávajúce scenáre, ako je uvedené nižšie.
DemoFeature.feature
# 4) Kroky implementácie definície
Pre kroky funkcií použité vo vyššie uvedených scenároch musíte napísať programové implementácie, v tomto prípade je to Java.
Kroková definícia je metóda napísaná v Jave s výrazom. Spája svoju metódu s jedným alebo viacerými krokmi. Keď teda Cucumber vykoná kroky popísané v scenári súboru funkcií, najskôr vyhľadá zhodu definícia kroku vykonať.
Napríklad, kedy možno definíciu kroku pre Pridať zamestnanca pomocou POST napísať nasledovne.
Pre daný krok je implementácia napísaná nasledovne:
@Given('^I Set POST employee service api endpoint$') public void setPostEndpoint(){ addURI = 'http://dummy.restapiexample.com/api/v1/create'; System.out.println('Add URL :'+addURI); }
Podobne pre krok When je nasledujúca metóda definície:
@When ('^Send a POST HTTP request$') public void sendPostRequest(){ doublename_id = Math.random(); emp_name = 'zozo_'+name_id;//Just to avoid Duplicate Name entry String jsonBody'{'name':''+emp_name+'','salary':'123','age':'23'}'; System.out.println('
' + jsonBody); HttpEntityentity = new HttpEntity(jsonBody, headers); //POST Method to Add New Employee restTemplate = newRestTemplate (); response = restTemplate.postForEntity(addURI, entity, String.class); }
Teraz je tu časť kroku overenia, tj. Implementácia Then step:
@Then ('^I receive valid Response$') Public void verifyPostResponse(){ responseBodyPOST = response.getBody(); // Write response to file responseBody = response.getBody().toString(); System.out.println('responseBody --->' + responseBody); // Get ID from the Response object employeeId = getEmpIdFromResponse(responseBody); System.out.println('empId is :' + employeeId); // Check if the added Employee is present in the response body. Assert.hasText(responseBody,employeeId); // Check if the status code is 201 Assert.isTrue(response.getStatusCode()==HttpStatus.OK); System.out.println('Employee is Added successfully employeeId:'+employeeId); }
Poznámka: Tu používame metódu RestTemplate na odoslanie žiadosti. Je to rovnaké ako metóda použitá Testovanie REST API s Spring RestTemplate a TestNG „ . Ak sa chcete dozvedieť viac informácií o metódach odpočinkovej šablóny, pozrite si tento návod.
Vaša definícia kroku bude teda vyzerať nasledovne.
StepDefinition.java
Rovnakým spôsobom môžete implementovať definície krokov pre zvyšné scenáre Aktualizovať, Čítať a Odstrániť zamestnanca.
# 5) Spustenie testov
Teraz sme dokončili úlohu vývoja scenára a krokového skriptu, takže poďme spustiť naše testy. Aby sme to dosiahli, musíme napísať triedu bežcov JUnit.
publicclassRunner { }
Tu musíte nad názov triedy pridať nasledujúce anotácie:
@RunWith (Cucumber.class): Spustiť ako trieda testovacieho bežca pre Okurku.
@CucumberOptions: Tu zadáte umiestnenie súboru funkcií a umiestnenie definičného súboru kroku, aby sa rámec Cucumber počas vykonávania prehliadol.
features='' glue=''
Zapojiť: Používa sa na zadanie rôznych možností formátovania pre správu, ktorá sa generuje ako výstup.
Vaša trieda bežcov bude teda vyzerať takto.
TestRunner.java
Stačí kliknúť pravým tlačidlom myši na TestRunner.java a vyberte možnosť „ Spustiť ako test JUnit ‘ . Zobrazí sa výsledok vykonania testu nasledujúcim spôsobom.
Výstup karty Junit
V konzole uvidíte nasledujúce správy.
Výstup konzoly
# 6) Správy
Výsledok sme videli na konzole. Cucumber však poskytuje výsledky testov v prezentovateľnejšom formáte HTML, ktorý je možné zdieľať so zainteresovanými stranami.
Otvorené cieľ -> uhorkové správy v prehliadači.
Poznámka : Pamätáte si Junitské triedy bežcov CucucmberOptions?
@CucumberOptions (features='Features',glue={'demo'},plugin={'pretty', 'html:target/cucumber-reports'})
Tu je doplnok možnosťou, ktorú špecifikujeme pre správy vo formáte HTML spolu s priečinkom.
target/cucumber-reports
Teraz otvorte stránku target cucumber-reports index.html. Stránka správy je stránka HTML, kde môžete vidieť názov objektu so scenármi, ktoré sa úspešne vykonali.
Vaša správa bude teda vyzerať nasledovne.
Výsledok testu CucumberTest vo formáte HTML
Záver
Na záver tohto tutoriálu poďme zhrnúť, čo sme sa doteraz naučili.
Všetky kroky od nastavenia BDD Cucumber REST API Test Automation Framework sme videli od začiatku.
V tomto procese sme sa dozvedeli toto:
- Pre automatizáciu testov sme vybrali programovací jazyk Java.
- Cucumber sme si vybrali ako testovací rámec pre vytvorenie testovacej sady testovacím spôsobom Behavior Driven Development.
- Na odosielanie skutočných požiadaviek HTTP na server sme spotrebovali triedu Spring Framework RestTemplate.
- Na skonzumovanie týchto rozhraní API sme vykonali inštaláciu doplnku Cucumber, stiahli sme si súbory jar závislostí Cucumber, jarné poháre a jednoduchý jar JSON pre analyzátor API.
- Vytvorili sme súbor Feature, ktorý popisuje scenáre v jednoduchej angličtine, súbor Step Definition na mapovanie krokov a triedu JUnit Runner na spustenie súboru Feature.
- Nakoniec sme vykonali triedu Test Runner a výsledok sme videli na konzole v prezentovateľnejšom a čitateľnejšom formáte HTML.
Stručne povedané, tento článok vysvetľuje, ako začať s automatizáciou testu REST API s uhorkou. Pokryli sme nastavenie nášho testovacieho automatizačného rámca priamo od inštalácie všetkého dôležitého softvéru, nastavenia projektu, vývoja TestScript až po vykonanie testu a prezeranie vygenerovaných správ.
To je dostatočné na to, aby každá QA automatizácie mohla začať s rámcom automatizácie testov. Ale ak niekto chce podrobne pochopiť, ako funguje Uhorka vnútorne, ako funguje jazyk Gherkin, potom ho možno preskúmať na Uhorka.
Dúfam, že ste pripravení začať s testovaním rozhrania REST API v štýle BDD s uhorkou !!
Odporúčané čítanie
- 10 najlepších nástrojov na testovanie API v roku 2021 (nástroje na testovanie SOAP a REST API)
- Najlepšie nástroje na testovanie softvéru 2021 (QA Test Automation Tools)
- Testovanie REST API s pružinou RestTemplate a TestNG
- Stiahnutie e-knihy Testing Primer
- Top 20 najdôležitejších API testovacích otázok a odpovedí na pohovory
- Testovanie SaaS: Výzvy, nástroje a prístup k testovaniu
- Zjednodušenie testovania API s Katalon Studio
- Automatizačné testovanie pomocou nástroja Cucumber Tool a selénu - selén - návod č. 30