how automate api requests using rest assured
U ovom uputstvu naučit ćemo automatizirati API zahtjeve pomoću REST Assured tijekom izvršavanja testnih skripti preko Jenkinsa:
U 2. vodiču REST API Tutorial Series-a naučili smo različite vrste kodova odgovora, REST zahtjeve, REST najbolje prakse i API testiranje koristeći POSTMAN.
ODMOR web usluge postaju popularne iz dana u dan zbog njihove lakoće razvoja, implementacije, pristupa i izvršavanja. Povrh toga, ovi su lagani i nemaju stroge standarde kojih se treba pridržavati.
Međutim, kada postoji veći broj usluga koje postoje i koje je potrebno izvršiti u svakoj novoj gradnji, to postaje noćna mora za ispitivača i troškove projekta. Opet, neke su usluge interne koje su povezane sa samim projektom, a neke su namijenjene trećim stranama.
Dakle, pojavila se ideja automatizacije. Dostupno je nekoliko alata za automatizaciju REST usluga, kao što su-
- vRest
- HttpMaster
- Parasoft
- Budite uvjereni
RestAssured je popularan alat za automatizaciju među ispitivačima. Pogledajmo zašto je to preferirana opcija.
Što ćete naučiti:
Zašto RESTAssured?
- Otvoreni je izvor, stoga ga svaka organizacija može koristiti za svoje potrebe projekta.
- REST Assured je Java knjižnica pa ne dolazi kao GUI poput ostalih alata. To je okvir za testiranje REST usluga na Javi.
- Pruža jezik specifičan za domenu (DSL) za stvaranje skripte za automatizaciju, koristi bilo koji materinji jezik kao što je Java i testira RESTful web API.
- Podržava XML i JSON format za zahtjev, odgovore.
- Djeluje kao klijent bez glave.
- Pomoću ove biblioteke možemo prilagoditi zahtjev koji ćemo poslati poslužitelju.
- Također, može testirati raznoliku kombinaciju složene poslovne logike.
- Sposoban je dohvaćanja statusnog koda, odgovora, tijela odgovora, zaglavlja s poslužitelja za poslani zahtjev.
- Omogućava BDD stil pisanja testne skripte, tj. U formatu GIVEN-WHEN-THEN, tako da ga može vidjeti bilo koji član poslovnog tima, posebno iz ne-IT pozadine, i razumjeti logiku i pokrivenost testom.
U ovom uputstvu automatizirat ćemo zahtjeve koje smo ručno kreirali ranije u prvom vodiču za REST API putem POSTMAN-a, a raspravit ćemo i o komercijalnom alatu nazvanom GITHUB.
kako lažirati e-adresu
Automatizacija zahtjeva za web API upotrebom REST Assured
U ovom uputstvu radit ćemo automatizaciju od kraja do kraja, tj. Stvoriti Java klasu i izvršiti je iz Jenkinsa.
Preduvjeti:
- Primatelji trebaju imati radno znanje o Eclipse IDE, Maven, TestNG, ReportNG.
- Primatelji bi također trebali biti svjesni Jenkinsa.
- Internetska veza potrebna je ako pristupamo uslugama raspoređenim putem weba. U slučaju da pristupamo lokalno raspoređenim uslugama, u tom slučaju provjerite ima li pravo ispitivač.
- Ako automatiziramo bilo koje komercijalne, zaštićene web lokacije, u tom slučaju provjerite rade li token autorizacije, API tokeni, API ključevi itd. I pružaju se ispitivaču koji trenutno automatizira skriptu.
Testiranje URL-a
- http://jsonplaceholder.typicode.com je pokrenut i pokrenut
- Korisnik ima valjane vjerodajnice preko GitHub
Postavke okoliša
# 1) Instalirajte Eclipse IDE
Prije svega, moramo preuzeti Eclipse IDE sa službenog web mjesta tvrtke Zasjeniti.
Zatim instalirajte IDE. Ispravno postavite putanju, varijablu okoliša JAVA_HOME. Neka JDK, JRE staza bude pri ruci za buduću upotrebu. Jednom kada je Eclipse instaliran, stvorite / postavite radni prostor i otvorite radni prostor.
U mom slučaju to je:
#dva) Stvorite Maven projekt
Obavezno konfigurirajte dom Maven preko varijabli zaštite okoliša.
# 3) Dodajte sve relevantne, potrebne ovisnosti, dodatke koji se odnose na REST-ASSURED, TESTNG, REPORTNG na pom.xml.
Evo primjera 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) Dodajte potrebne staklenke u stazu izrade projekata Maven.
Obično se radi o datoteci knjižnice koja dolazi pod REST-assured jar, TESTNG, REPORTNG. Iako smo dodali ovisnost, dodatak preko datoteke pom.xml, ali i dalje ponekad dolazi do pogreške, stoga moramo dodati ove staklenke / knjižnice kako bismo izgradili put projekta maven kako bismo spriječili pogreške (ako ih ima).
Međutim, kada stvaramo Java projekte umjesto Maven projekata, u tom slučaju trebamo držati ove staklenke, knjižnice pri ruci i koristiti ih prema potrebi.
# 5) Instalirajte JENKINS (na sustavu Windows)
Preuzmite Jenkins s jenkins.io/download/.
Zatim otvorite postavku, slijedite korake dok se pravilno ne instalira.
Jednom instalirani, moramo pokrenuti JENKINS, to možemo učiniti iz naredbenog retka.
C: Programske datoteke Jenkins> java -jar jenkins.war –httpPort = 9090.
Nakon što se prikaže gornja poruka, trebamo pričekati još neko vrijeme da vidimo sljedeću poruku.
Kao što možemo vidjeti posljednju poruku na gornjem ekranu na kojem je Jenkins u potpunosti pokrenut i radi, stoga sada možemo pokrenuti Jenkinsa pomoću sljedećeg URL-a.
http: // localhost: 9090 /
Prvi put će trebati vremena, ali poslije će biti brže. Nakon toga moramo stvoriti korisnika.
Jednom kada je korisnik stvoren, moramo ponovno pokrenuti Jenkinsa i pristupiti korisničkom sučelju s lozinkom.
Jednom kada je Jenkin instaliran, dodatke možemo instalirati preko Manage Jenkins> Global Tool Configuration (čak i tijekom Jenkin instalacije).
Izrada skripte za automatizaciju
# 6) Možemo stvoriti novi JAVA RAZRED i pretvoriti ga u TESNG ili izravno stvorite TESTNG RAZRED praćen stvaranjem nove XML datoteke (testng.xml).
Radi jednostavnosti, stvorene su dvije Java klase
# 1) Tutorial1.java - Ova datoteka sadrži upotrebu svih metoda poput GET, POST, PUT, PATCH, DELETE, LOGREQUEST, LOGRESPONSE, ASSERT pomoću lažnog URL-a za testiranje https: jsonplaceholder.typicode.com.
Iako se URL ponaša poput originalnog URL-a davanjem takvih odgovora, ali zapravo se na poslužitelju ne mijenjaju. To je samo za demonstriranje svojstava i reakcija web usluga kada prime bilo kakav zahtjev od klijenta.
# 2) Tutorial2.java - Ova datoteka sadrži primjer GitHub-a u stvarnom vremenu gdje ćemo čitati komentar dodan u suštinu.
Bilješka : GitHub zahtijeva provjeru autentičnosti, stoga moramo generirati API token ili osnovnu autorizaciju nakon što se prijavimo u GitHub - postavke, ili možemo generirati token autorizacije od samog POSTMAN-a
TESNG.XML
Ovdje je XML datoteka koja će izvršiti oboje Vodič1.java i Vodič2.java
U demonstracijske svrhe izuzeo sam sve metode za pokretanje i omogućio izvršenje samo jedne GET metode Tutorial1.java. Međutim, ako želimo vidjeti izvršene sve metode, tada moramo zamijeniti s preko TestNG XML datoteke. U našem slučaju naziv datoteke TestNG je testng1.xml.
Sad ako izvršimo gore navedeno testng1.xml datoteku preko Eclipsea tada ćemo dobiti sljedeće izlaz konzole.
(TestNGContentHandler) (UPOZORENJE) Preporučuje se dodavanje znaka “” na vrh datoteke, u protivnom TestNG može propasti ili neće raditi kako se očekivalo.
(TestNG) Trčanje:
D: RestAssured restapi testng1.xml
*** DOBITI METODU ***
Userid - (1) do - (3) Naslov - (ako je uznemirujuće što je vježba bolna ili) tijelo - (i točno, ali zakon
I svi izbori ili na zadovoljstvo slijepih jesu
ili osuđujući bilo kakvu nastalu tugu i zadovoljstvo
i voljan je i od muke odvratne ili nelagode; i)
*** DOBITI METODU ZAVRŠAVA ***
————————————————–
Vodiči za REST API
Ukupno izvršenih testova: 1, neuspjeha: 0, preskoka: 0
————————————————-
kako pokrenuti .jar datoteke windows 10
Evo rezultata testa paketa.
Evo zadanog izvješća koje je generirao TestNG.
Evo izvješća koje je generirao ReportNG.
Budući da smo već konfigurirali ReportNG, stoga možemo očekivati jasan prikaz ukupno proslijeđenih, neuspjelih brojanja kao gore.
Izvršavanje testnih skripti pomoću naredbenog retka
- Moramo pokrenuti naredbeni redak
- Postavite radni direktorij kao mjesto radnog prostora
- Pronađite mjesto za smeće / cilj
- Pronađite / izradite mjesto knjižnice
- Prvo, trebamo skup, direktorij u kojem projekt postoji. U mom slučaju to je D: RestAssured restapi
- Java - ključna riječ
- k.č. - To je put klase, znači put na kojem Java klasa postoji u projektu
- Cilj - Ista je kao mapa bin kada radimo na Java projektu. Budući da radimo na projektu Maven, stoga ćemo imati ovu mapu. Ispod ove mape možemo imati još dvije mape: klase, test-klase. Stvarna klasa Java postojat će između ove dvije mape
- Lib - Ova mapa sadržavat će sve staklenke koje smo koristili tijekom izvršavanja testne skripte iz Eclipsea. U nekim slučajevima mapa možda neće biti prisutna. Stoga ćemo možda trebati stvoriti mapu i u njoj držati sve staklenke, izvršne datoteke itd.
- org.testng.TestNG testng1.xml - Ovo je poput sintakse. Posljednji dio je testng1.xml je datoteka resursa TestNG-a koja će biti pozvana da izvrši željene testne skripte
Kompletna naredba bit će
java -cp target / test-classes; target / Classes; lib / * org.testng.TestNG testng1.xml
Nakon toga pritisnite enter
Bilješka: Mapa bin možemo vidjeti dok radimo na Java projektu. Međutim, ako radimo u projektu Maven, tada ćemo imati ciljnu mapu i normalne razrede, mapa test-klasa bit će prisutna ispod nje.
Stvaranje BAT datoteke i izvršavanje testnih skripti
Umjesto da otvorimo naredbeni redak i pokrenemo gornju naredbu za izvršavanje testne skripte, naredbu možemo zadržati u tekstualnoj datoteci i dok je sprema daje joj ime poput,
'Run.bat' (pobrinite se da zadržite '' oko run.bat)
Evo kako to izgleda nakon što je stvoreno.
Sada dvaput kliknite na 'run'
Otvorit će se naredbeni redak i izvršit će testnu skriptu, a kad se izvršavanje izvrši, naredbeni redak se zatvara.
Integriranje JENKIN-a s Mavenom, Java
Moramo napraviti 4-5 konfiguracija u Jenkinsu kako bismo je integrirali s Mavenom, Javom i izvršili istu.
Jednom kad se prijavimo u Jenkins,
Idi na Manager Jenkins >> Globalna konfiguracija alata
postaviti put instalacije JDK
Bilješka : Provjerite podržava li Jenkinova inačica verziju JDK / Java. Jenkins verzija 2.73 zahtijeva najmanje JDK / JAVA verzije 1.8 jer će inače stvarati probleme tijekom izvršavanja testnih skripti.
Postavite put instalacije Maven
Nakon toga, idite na Manager Jenkins >> Konfiguriranje sustava
najbolje vr slušalice za xbox one
Postavite varijabilni put okoliša
Sljedeći, Stvorite novu stavku
Moramo kliknuti na stvoriti novu vezu, navesti Ime za posao odaberite vrstu projekta kao Slobodni stil . Za sada ne trebate brinuti o drugim stvarima.
Jednom kad se posao stvori, izgledat će ovako.
Sada kliknite na posao
Slijedite korake u nastavku:
- Kliknite vezu za konfiguriranje na lijevoj bočnoj ploči.
- Pomaknite se prema dolje kartici Općenito i kliknite gumb Napredno.
- Označite potvrdni okvir prilagođenog radnog prostora i navedite mjesto mape projekta.
Nakon toga
- Pomaknite se prema dolje da biste izgradili okidače
- Označite potvrdni okvir Povremeno gradi
- Postavite neko vrijeme kako je spomenuto u nastavku
Pomaknite se prema dolje, postavite ime Build. U našem slučaju to je izvršna batch naredba sustava Windows.
Na istom je mjestu gdje smo ranije čuvali datoteku run.bat, a to je D: RestAssured restapi mapa
Spremite sve gore navedene promjene do sada.
Sada, pričekajte da se pokrene posao cron. Vidimo da je gradnja pokrenuta.
Nakon što se gradnja uspješno izvrši, sljedeći put moramo kliknuti na građu # 20 kako je navedeno na gornjoj slici.
Klikni na Izlaz konzole vezu na lijevoj ploči.
Sada bismo mogli vidjeti sljedeći izlaz.
Zaključak
REST ASSURED je vrlo korisna JAVA biblioteka za automatizaciju REST API-ja bez obzira na jezik. Ima mnogo ugrađenih opcija. Također, ima mnogo verzija sa zanimljivim funkcijama, uključujući i opcije. Podržava mnoge formate kao zahtjeve kao što su XML, JSON itd.
U ovom smo uputstvu objasnili kako automatizirati API zahtjeve pomoću RESTAssured tijekom izvršavanja testnih skripti pomoću Jenkinsa. Također smo objasnili zašto je Rest Assured bolji izbor za automatizaciju API zahtjeva.
Nadamo se da ste uživali čitajući ovu seriju vodiča za API za odmor!
Preporučena literatura
- REST API ispitivanje krastavca korištenjem BDD pristupa
- 10 najboljih alata za testiranje API-ja u 2021. godini (SOAP i REST API alati za testiranje)
- REST API testiranje s Spring RestTemplate i TestNG
- Rad s HTTP zahtjevima u JMeteru
- Vodič za POSTMAN: Ispitivanje API-ja pomoću POSTMAN-a
- 20 najvažnijih pitanja i odgovora za ispitivanje API ispitivanja
- 10 najboljih alata za upravljanje API-jem s usporedbom značajki
- 36 pitanja s Jenkinsovog intervjua (za 2021. godinu)