rest api testing with cucumber using bdd approach
najboljše kakovosti youtube v mp3 pretvornik
Ta vadnica pojasnjuje testiranje API-ja REST s kumaricami z uporabo pristopa BDD. Obsega namestitev programske opreme, namestitev projekta, izvedbo TestScripta in poročila.
V tem članku bomo videli, kako začeti s testiranjem API-ja REST v slogu BDD z ogrodjem Cucumber.
Preden se poglobimo v temo, naj razumemo pomembne koncepte, ki so v njej vključeni.
Začnimo!!
Kaj se boste naučili:
- Pomembni koncepti v API-ju REST
- Kako deluje kumara?
- Nastavitev okvira za testiranje kumar v sistemu Windows
- Zaključek
- Priporočeno branje
Pomembni koncepti v API-ju REST
POČITEK
To je arhitekturni slog programske opreme. Celotna oblika REST je reprezentativni državni prenos . Določa nabor omejitev, ki se uporabljajo za ustvarjanje spletnih storitev. Spletne storitve, ki ustrezajo arhitekturnemu slogu REST, se imenujejo spletne storitve RESTful.
Testiranje API-ja REST
Testiranje API-ja REST je testiranje API-ja z uporabo 4 glavnih metod, to so POST, GET, PUT in DELETE.
REST Predloga
RestTemplate je odprtokodni vzmetni razred ogrodja, ki nudi priročen način za preizkušanje prijetnih spletnih storitev, ki temeljijo na HTTP, z zagotavljanjem preobremenjenih metod za metode HTTP.
Opomba : Če želite izvedeti več o konceptu testiranja API-ja REST, si oglejte našo prejšnjo vadnico „ Testiranje API-ja REST s Spring RestTemplate in TestNG “, Kjer smo opisali, kako ročno izvesti testiranje API-ja REST skupaj s konceptom JSON.
BDD
BDD je pristop razvoja, ki temelji na vedenju. To je ena izmed tehnik razvoja programske opreme, ki je nastala pri preizkusno vodenem razvoju, tj. Slogu TDD.
Načelo testiranja BDD je, da so testni primeri napisani v naravnem jeziku, ki je lahko berljiv tudi neprogramerjem.
Kumara
Kumara je orodje, ki podpira razvoj, ki temelji na vedenju
Kako deluje kumara?
Poglejmo, kako deluje kumara.
Kumara je sestavljena iz datotek s funkcijami, datotek z definicijo korakov in razreda Runner.
Datoteke s funkcijami
Datoteke s funkcijami piše vaš poslovni analitik ali morda vaš sponzor. Ti so napisani v naravnem jeziku z opisanimi specifikacijami in potrjujejo, da funkcije aplikacije ustrezajo specifikacijam.
Te specifikacije vsebujejo več scenarijev ali primerov. Vsak scenarij je seznam določenih korakov, ki jih mora opraviti Kumara.
Razmislimo o scenariju, ko se uporabnik želi prijaviti v sistem.
Če želite preveriti, ali to deluje v skladu s specifikacijami, je treba opisati ta scenarij. Tukaj so navedeni koraki in želeni rezultat v skladu s specifikacijami.
Samo za idejo, tako bo videti vzorčni scenarij:
Scenario: Login to the system Given User launches Login screen When User enters username, password and submit Then Login Successful message appears
Vidite, vsak scenarij je nekakšen seznam korakov, ki jih mora opraviti Kumara. Da Kumara razume scenarije, mora upoštevati nekatera osnovna sintaksna pravila, imenovana Kumaricin .
Datoteke z definicijo korakov
Datoteke z definicijami korakov preslikajo vsak Gherkinov korak, omenjen v datoteki Feature, v izvedbeno kodo. To omogoča, da Kumara izvede dejanje, ki ga mora izvesti korak.
Cucumber framework podpira številne programske jezike za pisanje definicij korakov, kot so Java, .net in Ruby.
Opomba : V članku „ Testiranje API-ja REST s Spring RestTemplate in TestNG ’, Smo razvili testni projekt TestNG s predlogo Spring.
Zdaj bomo razvili testno ogrodje za isto storitev REST in RestTemplate, vendar z uporabo kumar za vedenjsko usmerjen razvojni testni slog.
Začnimo z namestitvijo našega okvira za preizkus avtomatizacije s Kumaro!
Nastavitev okvira za testiranje kumar v sistemu Windows
# 1) Namestitev
(jaz) Javo bomo uporabili za razvoj definicij korakov. Torej, najprej prenesite namestitveni program JDK za Windows iz Oracle in namestite Javo na svoj računalnik.
(ii) IDE (integrirano razvojno okolje) : Eclipse sem uporabil kot IDE za razvoj programske opreme Automation Test Suite. Lahko ga prenesete iz Mrk
(iii) Pridobite vtičnik Eclipse za kumare:
V Eclipse sledite tem korakom:
- V menijski možnosti izberite Pomoč -> Namesti novo programsko opremo.
- Enter „Eklipse kumar“ v besedilno polje za iskanje.
- Kliknite na Namestite .
Vgradnja vtičnika za kumare v Eclipse
- Nadaljujte s klikom na gumb Naprej, dokler ne pridete do Preglejte licenco zaslon.
Na koncu kliknite potrditveno polje, da sprejmete licenčno pogodbo, in kliknite na Končaj . S tem bo namestitev dokončana. Zdaj znova zaženite Eclipse IDE. To je potrebno za dejansko namestitev vtičnika.
(iv) Pomladne kozarce: Ker bomo uporabili razred RestTemplate, ki spada v vzmetno ogrodje, morate imeti vzmetne kozarce ogrodja. Spomladanske kozarce lahko naložite z Pomladni okvir in ga shranite v lokalno mapo. Na primer, C: / projektJar
(v) JSON-preprosti kozarci: Izvesti moramo razčlenitev JSON. Zato bomo uporabili lahek API, preprost za JSON. Torej, prenesite JSON-simple-1.1.jar in ga shranite v C: / projektJar
(vi) kozarci za kumare:
Za zagon projekta Kumare bi potrebovali naslednje kozarce za kumare:
- jedro kumare
- kumara-java
- kumara-JUnit
- kumare-JVM-deps
- poročanje kumar
- kornišon
- JUnit
- posmehljivo-vse
- pokritost
- kumara-HTML (Za poročila v html)
Te datoteke lahko prenesete z datoteko pom.xml. Toda najpreprostejši način je, da te jar datoteke prenesete iz Centralno skladišče in shranite te datoteke jar v lokalno mapo, Na primer, C: / projektJar
Zdaj smo s tem zaključili vse potrebne namestitve. Torej, ustvariva svoj projekt BDD Test Automation.
# 2) Nastavitev projekta
- Ustvari datoteko -> Novo -> Projekt Java -> Poimenuj jo kot ‘ CRUD_Kumarica “.
- Zdaj ustvarite nov paket Java demo.
- Konfigurirajte BuildPath projekta:
- Kot ste videli v prejšnjem razdelku, smo namestili vtičnik Cucumber, prenesli pomlad in JSON-preproste kozarce. Čas je, da v naš projekt dodamo pot gradnje, ki jih bo porabil. Za to ustvarite lib mapa v Mapa CRUD_Cucumber in zdaj kopirajte vse kozarce iz C: / projectJar v lib / kumare, lib / pomlad mapo.
- Z desno tipko miške kliknite » CRUD_Kumarica ' -> Zgradite pot -> Konfigurirajte pot zgradbe.
- Kliknite na Knjižnice zavihek.
- Kliknite na Dodajte kozarce gumb-> Izberite vse kozarce v lib / kumara mapo in lib / pomlad mapo. To bo dodalo vse kozarce za kumare, spomladanske kozarce in JSON-preprost kozarec na pot gradnje vašega projekta.
Struktura vašega projekta bo v Raziskovalcu paketov Eclipse prikazana na naslednji način.
Struktura paketa testnega projekta
# 3) Datoteka funkcije
Zdaj pa izdelajmo svojo funkcijsko datoteko DemoFeature.feature s funkcijo Izvajanje CRUD operacij v službi za zaposlene.
V našem primeru sem uporabil eno lutko http://dummy.restapiexample.com/api vzorec REST Service.
Ta datoteka funkcije opisuje scenarije za izvajanje CRUD operacij, tj.za kritje CRUD-a (Create-Read-Update-Delete).
- Najprej določimo funkcijo, v našem primeru gre za testiranje CRUD metod, ki jih lahko opišemo na naslednji način.
Feature: Test CRUD methods in Sample Employee REST API testing
- Zdaj imamo različne scenarije, kot so Ustvari, posodobi, preberi in izbriši zapis zaposlenega. Oglejte si torej scenarij POST:
Scenario: Add Employee record
- Opišite predpogoj za preizkus, ki določa URL službe za zaposlene.
Given I Set POST employee service api endpoint
- Navedite dejanski preskusni korak pošiljanja zahteve za objavo.
When I Set request HEADER And Send a POST HTTP request
- Zdaj opišite preverjanje odzivnega telesa.
Then I receive valid Response
Torej bo v naši funkcijski datoteki scenarij videti tako:
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
Podobno lahko napišete preostale scenarije, kot je prikazano spodaj.
DemoFeature.feature
modeliranje podatkov intervju vprašanja in odgovori pdf
# 4) Izvedba opredelitve korakov
Za korake funkcij, ki se uporabljajo v zgornjih scenarijih, morate napisati programske izvedbe, v tem primeru je to Java.
Definicija koraka je metoda, napisana v Javi in ima izraz. Svojo metodo poveže z enim ali več koraki. Ko torej Cucumber izvede korake, opisane v scenariju datoteke funkcije, najprej poišče ujemanje opredelitev koraka izvršiti.
Na primer, ko lahko definicijo koraka za Dodaj zaposlenega s pomočjo POST zapišemo na naslednji način.
Za dani korak je izvedba zapisana na naslednji način:
@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); }
Podobno je pri koraku When naslednja metoda opredelitve:
@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); }
Zdaj je tukaj del koraka preverjanja, tj. Izvedba koraka Potem:
@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); }
Opomba: Tu uporabljamo metodo RestTemplate za pošiljanje zahteve. To je enako kot metoda, uporabljena v Testiranje API-ja REST s Spring RestTemplate in TestNG ' . Če želite izvedeti več o metodah Predloge za počitek, si oglejte vadnico.
Tako bo vaša definicija koraka videti tako.
StepDefinition.java
Definicije korakov za preostale scenarije lahko posodobite, preberete in izbrišete zaposlenega na enak način.
# 5) Izvajanje testov
Zdaj smo zaključili svojo nalogo za razvoj scenarija in koraka, zato zaženimo naše teste. Za to moramo napisati razred tekača JUnit.
publicclassRunner { }
Tukaj morate nad ime razreda dodati naslednje pripise:
@RunWith (Cucumber.class): Da bi tekel kot testni tekaški razred za Kumare.
@CucumberOptions: Tu določite lokacijo datoteke Features in lokacijo datoteke definicije koraka za ogrodje Cucumber, ki si ga je treba ogledati med izvajanjem.
features='' glue=''
Vključiti: To se uporablja za določanje različnih možnosti oblikovanja za poročilo, ki se ustvari kot izhod.
Zato bo vaš razred tekačev videti tako.
TestRunner.java
Samo z desno miškino tipko kliknite TestRunner.java in izberite možnost ‘ Zaženi kot preskus JUnit ' . Rezultat preizkusa bo prikazan na naslednji način.
Izhod zavihka Junit
V konzoli boste videli naslednja sporočila.
Izhod konzole
# 6) Poročila
Rezultat smo videli na konzoli. Vendar pa Kumara ponuja rezultate testov v bolj predstavljivem formatu HTML, ki ga lahko delite z zainteresiranimi stranmi.
Odprto cilj -> kumare-poročila v brskalniku.
Opomba : Se spomnite tekaškega razreda Junit CucucmberOptions?
@CucumberOptions (features='Features',glue={'demo'},plugin={'pretty', 'html:target/cucumber-reports'})
Tu je vtičnik možnost, ki jo določimo za poročila v obliki HTML skupaj z mapo.
target/cucumber-reports
Zdaj odprite stran target cucumber-reports index.html. Stran s poročilom je stran HTML, kjer si lahko ogledate ime funkcije s scenariji, ki so bile uspešno izvedene.
Torej bo vaše poročilo videti tako.
Rezultat testa Cucumber v obliki HTML
Zaključek
Za zaključek te vadnice naj povzamemo, kar smo se doslej naučili.
Že od začetka smo videli vse korake za nastavitev okvira za avtomatizacijo API-jev BDD Cucumber REST.
V tem procesu smo izvedeli naslednje:
- Za avtomatizacijo preizkusov smo za programski jezik izbrali Javo.
- Za testni okvir za ustvarjanje testne zbirke na testni način Behavior Driven Development smo izbrali Kumaro.
- Za pošiljanje dejanskih zahtev HTTP strežniku smo uporabili razred Spring Frame RestTemplate.
- Za porabo teh API-jev smo izvedli namestitev vtičnika Cucumber, prenesli datoteke jar-ov odvisnosti Cucumber, Spring kozarce in JSON-preprost jar za API razčlenjevalnika.
- Datoteko Feature smo ustvarili za opis scenarijev v preprosti angleščini, datoteko Definicija koraka za preslikavo korakov in razred JUnit Runner za zagon datoteke Feature.
- Na koncu smo izvedli razred Test Runner in na konzoli videli rezultat v bolj predstavljivi in berljivi obliki HTML.
Skratka, v tem članku je razloženo, kako začeti z avtomatizacijo preskusa API-ja REST s kumaricami. Zajemali smo postavitev okvira za avtomatizacijo preizkusov, in sicer od namestitve vse bistvene programske opreme, namestitve projekta, razvoja testnega skripta do izvedbe testa in ogleda ustvarjenih poročil.
To zadostuje za kakršno koli preverjanje kakovosti avtomatizacije za začetek uporabe okvira za avtomatizacijo preskusov. Če pa nekdo želi podrobno razumeti, kako deluje Kumara interno, kako deluje jezik Gherkin, potem je to mogoče raziskati na Kumara.
Upam, da ste pripravljeni začeti s testiranjem API-ja REST v slogu BDD s kumaricami !!
Priporočeno branje
- 10 najboljših orodij za testiranje API-jev v letu 2021 (orodja za testiranje API-jev SOAP in REST)
- Najboljša orodja za testiranje programske opreme 2021 (QA Test Automation Tools)
- Preizkušanje API-ja REST s pomočjo Spring RestTemplate in TestNG
- Preizkus eBook Prenos knjige
- 20 najpomembnejših vprašanj in odgovorov za preskušanje API-jev
- Preskušanje SaaS: izzivi, orodja in pristop testiranja
- Poenostavitev testiranja API-jev s programom Katalon Studio
- Avtomatizirano testiranje z uporabo orodij za kumare in selen - vaja št. 30