how automate api requests using rest assured
V tej vadnici se bomo naučili avtomatizirati zahteve za API z uporabo REST Assured med izvajanjem testnih skriptov nad Jenkinsom:
V 2. vadnici REST API Tutorial Series smo z uporabo POSTMAN-a spoznali različne vrste odzivnih kod, zahteve REST, najboljše prakse REST in testiranje API-jev.
POČITEK Spletne storitve postajajo iz dneva v dan priljubljene zaradi enostavnosti razvoja, implementacije, dostopa in nato izvedbe. Poleg tega so lahki in nimajo nobenih strogih standardov, ki bi jih bilo treba upoštevati.
Kadar pa obstaja večje število storitev, ki jih je treba izvesti v vsaki novi gradnji, to postane nočna mora za preizkuševalca in stroške projekta. Spet nekatere storitve so notranje, ki so povezane s samim projektom, nekatere pa so zgrajene tako, da jih porabijo tretje osebe.
Torej se je pojavila ideja avtomatizacije. Na voljo je več orodij za avtomatizacijo storitev REST, na primer
- vRest
- HttpMaster
- Parasoft
- RestAssured
RestAssured je med preizkuševalci priljubljeno orodje za avtomatizacijo. Poglejmo, zakaj je to najprimernejša možnost.
najboljše orodje za odstranjevanje zlonamerne programske opreme za Windows 10
Kaj se boste naučili:
Zakaj RESTAssured?
- Je odprtokodna, zato jo lahko vsaka organizacija uporabi za svoje projektne potrebe.
- REST Assured je knjižnica Java, zato ni na voljo kot GUI kot druga orodja. Je okvir za testiranje storitev REST v Javi.
- Zagotavlja jezik, specifičen za domeno (DSL), da ustvari skript za avtomatizacijo, uporablja kateri koli materni jezik, kot je Java, in preizkuša spletni API RESTful.
- Podpira format XML in JSON za zahteve, odgovore.
- Deluje kot brezglava stranka.
- Zahtevo, ki jo bomo poslali strežniku, lahko prilagodimo s to knjižnico.
- Prav tako lahko preizkusi raznoliko kombinacijo zapletene poslovne logike.
- Lahko pošlje kodo stanja, odgovore, telo odziva, glave s strežnika za poslano zahtevo.
- Omogoča BDD slog pisanja testnega skripta, torej v obliki GIVEN-WHEN-THEN, tako da si ga lahko ogleda tudi vsak član poslovne ekipe, zlasti iz okolja, ki ni IT, in razume logiko ter pokritost s testom.
V tej vadnici bomo avtomatizirali zahteve, ki smo jih ročno ustvarili prej v prvi vadnici REST API prek POSTMAN-a, obravnavali pa bomo tudi komercialno orodje z imenom GITHUB.
Avtomatizacija zahtev za spletni API z uporabo REST Assured
V tej vadnici bomo izvajali avtomatizacijo od konca do konca, tj. Ustvarjali razred Java in ga izvajali iz Jenkinsa.
Predpogoji:
- Predvideni prejemniki morajo imeti delovno znanje o Eclipse IDE, Maven, TestNG, ReportNG.
- Prejemniki se morajo zavedati tudi Jenkinsa.
- Internetna povezava je potrebna, če dostopamo do spletnih storitev. V primeru, da dostopamo do storitev, nameščenih lokalno, v tem primeru preverite, ali ima tester pravico.
- Če avtomatiziramo komercialna, zaščitena spletna mesta, v tem primeru preverite, ali žeton za avtorizacijo, žetoni API, ključi API itd. Delujejo pravilno in so na voljo preizkuševalcu, ki trenutno avtomatizira skript.
Testiranje URL-ja
- http://jsonplaceholder.typicode.com deluje in deluje
- Uporabnik ima veljavne poverilnice nad GitHub
Okoljske nastavitve
# 1) Namestite Eclipse IDE
Najprej moramo prenesti Eclipse IDE z uradnega spletnega mesta Mrk.
Nato namestite IDE. Pravilno nastavite pot, okoljsko spremenljivko JAVA_HOME. Pot JDK, JRE naj bo priročna za prihodnjo uporabo. Ko je Eclipse nameščen, ustvarite / nastavite delovni prostor in odprite delovni prostor.
V mojem primeru je:
#two) Ustvarite projekt Maven
Prepričajte se, da ste Maven home konfigurirali za spremenljivke Okolje.
# 3) V pom.xml dodajte vse ustrezne, potrebne odvisnosti, vtičnike, ki se nanašajo na REST-ASSURED, TESTNG, REPORTNG.
Tu je vzorec pom.xml.
4.0.0 com restapi 2.9.1-SNAPSHOT jar restapi http://maven.apache.org UTF-8 junit junit 3.8.1 test org.testng testng 6.11 com.jayway.restassured rest-assured 2.9.0 com.jayway.jsonpath json-path 2.2.0 com.jayway.restassured json-schema-validator 2.9.0 com.google.code.gson gson 2.6.2 test org.hamcrest hamcrest-junit 2.0.0.0 org.hamcrest hamcrest-all 1.3 commons-io commons-io 2.4 io.rest-assured rest-assured-common 3.0.1 org.uncommons reportng 1.1.4 test org.testng testng com.google.inject guice 3.0 org.apache.maven.plugins maven-surefire-plugin 2.14.1 ${env} listener org.uncommons.reportng.HTMLReporter, org.uncommons.reportng.JUnitXMLReporter Tutorials.xml
# 4) Na pot gradnje projektov Maven dodajte potrebne kozarce.
Običajno so to datoteke knjižnice, ki so pod REST zagotovljenim kozarcem, TESTNG, REPORTNG. Čeprav smo dodali odvisnost, vtičnik nad datoteko pom.xml, vendar včasih še vedno pride do napake, moramo dodati te kozarce / knjižnice, da zgradimo pot projekta maven, da preprečimo napake (če obstajajo).
Ko pa namesto Maven ustvarjamo projekte Java, moramo v tem primeru imeti te kozarce, knjižnice pri roki in jih uporabljati po potrebi.
# 5) Namestite JENKINS (v sistemu Windows)
Prenesite Jenkins iz jenkins.io/download/.
Nato odprite namestitev in sledite korakom, dokler ni pravilno nameščena.
Po namestitvi moramo zagnati JENKINS, lahko to storimo tudi iz ukaznega poziva.
C: Programske datoteke Jenkins> java -jar jenkins.war –httpPort = 9090.
Ko se prikaže zgornje sporočilo, moramo počakati še nekaj časa, da vidimo naslednje sporočilo.
Kot lahko vidimo zadnje sporočilo na zgornjem zaslonu, kjer je Jenkins v celoti pripravljen za delovanje, zato lahko zdaj Jenkinsa zaženemo z naslednjim URL-jem.
http: // localhost: 9090 /
Prvič lahko traja čas, potem pa hitreje. Po tem moramo ustvariti uporabnika.
Ko je uporabnik ustvarjen, moramo znova zagnati Jenkins in z geslom dostopati do uporabniškega vmesnika.
Ko je Jenkin nameščen, lahko vtičnike namestimo prek Manage Jenkins> Global Tool Configuration (celo med namestitvijo Jenkin).
Ustvarjanje skripte za avtomatizacijo
# 6) Ustvarimo lahko nov RAZRED JAVA in ga pretvorimo v TESNG ali neposredno ustvarite RAZRED TESTNG, čemur sledi ustvarjanje nove datoteke XML (testng.xml).
Zaradi poenostavitve sta ustvarjena dva Java Classes
# 1) Vadnica1.java - Ta datoteka vsebuje uporabo vseh metod, kot so GET, POST, PUT, PATCH, DELETE, LOGREQUEST, LOGRESPONSE, ASSERT z uporabo preskusnega URL-ja za preskus https: jsonplaceholder.typicode.com.
Čeprav se URL obnaša kot izvirni URL, tako da daje takšne odgovore, vendar v resnici na strežniku ni sprememb. Lastnosti in reakcije spletnih storitev lahko dokažejo le, ko od stranke prejmejo kakršno koli zahtevo.
# 2) Vadnica2.java - Ta datoteka vsebuje primer GitHub v realnem času, kjer bomo brali komentar, dodan v bistvo.
Opomba : GitHub zahteva preverjanje pristnosti, zato moramo generirati žeton API ali osnovno avtorizacijo, ko smo prijavljeni v GitHub - nastavitve, sicer pa lahko žeton za avtorizacijo generiramo iz samega POSTMAN-a
TESNG.XML
Tu je datoteka XML, ki bo izvedla oboje Vadnica1.java in Vadnica2.java
Za predstavitvene namene sem izključil vse metode za zagon in omogočil izvajanje samo ene metode GET Tutorial1.java. Če pa želimo videti vse izvedene metode, jih moramo nadomestiti z datoteko XML TestNG. V našem primeru je ime datoteke TestNG testng1.xml.
Zdaj, če izvedemo zgoraj datoteko testng1.xml v Eclipseu potem bomo dobili naslednje izhod konzole.
(TestNGContentHandler) (OPOZORILO) Priporočljivo je, da na vrh datoteke dodate “”, sicer TestNG morda ne bo deloval ali ne bo deloval, kot je bilo pričakovano.
(TestNG) Tek:
D: RestAssured restapi testng1.xml
*** PRIDOBITE METODO ***
Userid - (1) do - (3) Naslov - (če je težavno, da je vaja boleča ali) telo - (in prav, ampak zakon
In vse volitve ali v zadovoljstvo slepih so
ali obsojanje kakršne koli nastale žalosti in užitka
in je pripravljen in se muči neprijetno ali neprijetno; in)
*** PRIDOBITE METODO KONČA ***
————————————————–
Vadnice za API REST
Skupno opravljenih preizkusov: 1, napak: 0, preskokov: 0
————————————————-
najboljša podjetja za video igre, za katera delajo
Tukaj je testni rezultat zbirke.
Tu je privzeto poročilo, ki ga je ustvaril TestNG.
Tu je poročilo, ki ga je ustvaril ReportNG.
Ker smo že konfigurirali ReportNG, lahko torej pričakujemo jasen pregled celotnega opravljenega, neuspešnega štetja, kot je opisano zgoraj.
Izvajanje testnih skriptov z ukaznim pozivom
- Zagnati moramo ukazni poziv
- Nastavite delovni imenik kot lokacijo delovnega prostora
- Poiščite lokacijo koša / cilja
- Poiščite / ustvarite lokacijo knjižnice
- Najprej potrebujemo niz, imenik, v katerem projekt obstaja. V mojem primeru je to D: RestAssured restapi
- Java - ključna beseda
- cp - To je pot razreda, pomeni pot, na kateri razred Java obstaja v projektu
- Cilj - Enako je kot mapa bin, ko delamo na projektu Java. Ker delamo na projektu Maven, bomo torej imeli to mapo. V tej mapi imamo lahko še dve mapi: razredi, preizkusni razredi. Dejanski razred Java mora obstajati med tema dvema mapama
- Lib - Ta mapa bo vsebovala vse kozarce, ki smo jih uporabili med izvajanjem testnega skripta iz Eclipse. V nekaterih primerih mape morda ni. Zato bomo morda morali ustvariti mapo in v njej hraniti vse kozarce, izvršljive datoteke itd.
- org.testng.TestNG testng1.xml - To je kot sintaksa. Zadnji del je testng1.xml je datoteka virov TestNG, ki bo poklicana za izvajanje želenih testnih skriptov
Popoln ukaz bo
java -cp target / test-classes; target / Classes; lib / * org.testng.TestNG testng1.xml
Po tem pritisnite enter
Opomba: Mapa bin lahko vidimo med delom na projektu Java. Če pa delamo v projektu Maven, bomo imeli ciljno mapo in običajne razrede, pod njo bo prisotna mapa testnih razredov.
Ustvarjanje datoteke BAT in izvajanje preizkusnih skriptov
Namesto da bi odprli ukazni poziv in zagnali zgornji ukaz za izvajanje preizkusnega skripta, lahko ukaz shranimo v besedilno datoteko in mu med shranjevanjem damo ime kot,
'Run.bat' (poskrbite, da boste obdržali '' okoli run.bat)
Evo, kako izgleda, ko je ustvarjen.
Zdaj dvokliknite na 'zaženi'
Odpre se ukazni poziv in izvede preskusni skript in po zaključku se ukazni poziv zapre.
Integracija JENKINS-a z Mavenom, Java
V Jenkinsu moramo narediti 4-5 konfiguracij, da jo integriramo z Maven, Java in izvedemo isto.
Ko se prijavimo v Jenkins,
Pojdi na Manager Jenkins >> Globalna konfiguracija orodij
nastavite namestitveno pot JDK
Opomba : Prepričajte se, da Jenkinova različica podpira različico JDK / Java. Jenkins različice 2.73 zahteva vsaj JDK / JAVA različice 1.8, sicer bo med izvajanjem testnih skriptov povzročal težave.
Nastavite namestitveno pot Maven
Po tem pojdite na Manager Jenkins >> Konfiguriranje sistemov
kaj storiti s c ++
Nastavite spremenljivo pot okolja
Naslednji, Ustvari nov element
Kliknite na ustvariti novo povezavo in določiti ime za delo izberite vrsto projekta kot Prosti slog . Za zdaj ni treba skrbeti za druge stvari.
Ko bo delovno mesto ustvarjeno, bo videti tako.
Zdaj kliknite na opravilo
Sledite spodnjim korakom:
- Kliknite povezavo za konfiguracijo na levi strani.
- Pomaknite se navzdol po zavihku Splošno in kliknite gumb Napredno.
- Izberite potrditveno polje delovnega prostora po meri in določite lokacijo mape projekta.
Potem
- Pomaknite se navzdol do možnosti Build Triggers
- Izberite potrditveno polje Občasno gradi
- Nastavite nekaj časa, kot je navedeno spodaj
Pomaknite se navzdol, nastavite ime Build. V našem primeru gre za izvedljiv paketni ukaz sistema Windows.
Na istem mestu, kjer smo že hranili datoteko run.bat, je mapa D: RestAssured restapi
Shranite vse do zdaj narejene spremembe.
Zdaj počakajte, da se opravilo cron zažene. Vidimo, da se je gradnja začela.
Ko je gradnja uspešno izvedena, moramo nato klikniti številko 20, kot je določeno na zgornji sliki.
Kliknite na Izhod konzole na levi plošči.
Zdaj bi morali videti naslednji izhod.
Zaključek
REST ASSURED je zelo uporabna knjižnica JAVA za avtomatizacijo REST API-jev ne glede na jezik. Ima veliko vgrajenih možnosti. Prav tako ima veliko različic z zanimivimi funkcijami, vključno z možnostmi. Podpira številne formate kot zahteve, kot so XML, JSON itd.
V tej vadnici smo razložili, kako avtomatizirati zahteve za API z uporabo RESTAssured med izvajanjem testnih skriptov z Jenkinsom. Pojasnili smo tudi, zakaj je Rest Assured boljša izbira za avtomatizacijo zahtev za API.
Upamo, da ste uživali v branju te vadnice o API-ju za počitek!
Priporočeno branje
- Testiranje API-ja REST s kumaricami z uporabo pristopa BDD
- 10 najboljših orodij za testiranje API-jev v letu 2021 (orodja za testiranje API-jev SOAP in REST)
- Preizkušanje API-ja REST s pomočjo Spring RestTemplate in TestNG
- Delo z zahtevami HTTP v JMetru
- Vadnica za POSTMAN: Testiranje API-jev z uporabo POSTMAN-a
- 20 najpomembnejših vprašanj in odgovorov za preskušanje API-jev
- 10 najboljših orodij za upravljanje API-jev s primerjavo funkcij
- 36 vprašanj za intervju z Jenkinsom (za leto 2021)