how automate api requests using rest assured
I denne opplæringen lærer vi å automatisere API-forespørsler ved hjelp av REST Assured mens du utfører testskripter over Jenkins:
I den andre veiledningen i REST API Tutorial Series lærte vi forskjellige typer svarkoder, REST-forespørsler, REST-best practices og API-testing ved hjelp av POSTMAN.
HVILE webtjenester blir populære hver dag på grunn av deres enkle utvikling, implementering, tilgang og deretter utførelse. I tillegg er disse lette og har ingen strenge standarder å følge.
Imidlertid, når det er et større antall tjenester som eksisterer, og som må utføres i hver nybygg, blir det et mareritt for testeren og for prosjektkostnadene. Igjen, noen tjenester er interne som er relatert til selve prosjektet, og noen er bygget for å bli konsumert av tredjeparter.
Så ideen om automatisering har kommet opp. Det er flere verktøy tilgjengelig for å automatisere REST-tjenestene som-
- vRest
- HttpMaster
- Parasoft
- RestAssured
RestAssured er et populært automatiseringsverktøy blant testere. La oss se hvorfor det er et foretrukket alternativ.
Hva du vil lære:
Hvorfor RESTAssured?
- Det er åpen kildekode, og derfor kan enhver organisasjon bruke den til deres prosjektbehov.
- REST Assured er et Java-bibliotek, så det kommer ikke som en GUI som andre verktøy. Det er et rammeverk for å teste REST-tjenester i Java.
- Det gir et Domain-Specific Language (DSL) for å lage et automatiseringsskript, bruker hvilket som helst morsmål som Java og tester RESTful Web API.
- Den støtter XML- og JSON-format for forespørsel, svar.
- Det fungerer som en hodeløs klient.
- Vi kan tilpasse forespørselen som vi skal sende til serveren ved hjelp av dette biblioteket.
- Det kan også teste en variert kombinasjon av kompleks forretningslogikk.
- Den er i stand til å hente statuskode, svar, svartekst, overskrifter fra serveren for den sendte forespørselen.
- Det muliggjør BDD-stilen for å skrive testmanus, dvs. i formatet GIVEN-WHEN-THEN, slik at ethvert medlem av forretningsteamet, spesielt fra ikke-IT-bakgrunn, også kan se det og forstå logikken og testdekningen.
I denne opplæringen vil vi automatisere forespørslene som vi opprettet manuelt tidligere i den første REST API-opplæringen gjennom POSTMAN, og vi vil også diskutere et kommersielt verktøy som heter GITHUB.
Automatisering av Web API-forespørsler ved bruk av REST Assured
I denne opplæringen vil vi gjøre helautomatisering, dvs. lage en Java-klasse og utføre den fra Jenkins.
Forutsetninger:
- Tiltenkte mottakere må ha arbeidskunnskap om Eclipse IDE, Maven, TestNG, ReportNG.
- Mottakere bør også være oppmerksomme på Jenkins.
- Internett-tilkobling er nødvendig hvis vi får tilgang til tjenester distribuert over nettet. I tilfelle vi får tilgang til tjenester som er distribuert lokalt, må du i så fall sørge for at testeren har rett.
- Hvis vi automatiserer kommersielle, sikrede nettsteder, i så fall må du sørge for at autorisasjonstoken, API-tokens, API-nøkler osv. Fungerer som de skal og leveres til testeren, som for øyeblikket automatiserer skriptet.
Testing URL
- http://jsonplaceholder.typicode.com er i gang
- Brukeren har gyldig legitimasjon over GitHub
Miljøinnstillinger
#1) Installer Eclipse IDE
Først og fremst må vi laste ned Eclipse IDE fra den offisielle nettsiden til Formørkelse.
Installer deretter IDE. Sett sti, JAVA_HOME miljøvariabel riktig. Hold JDK, JRE-banen praktisk for fremtidig bruk. Når Eclipse er installert, oppretter / angir du et arbeidsområde og åpner arbeidsområdet.
I mitt tilfelle er det:
#to) Lag et Maven-prosjekt
Forsikre deg om at du har konfigurert Maven-hjemmet over miljøvariabler.
# 3) Legg til all relevant, nødvendig avhengighet, plugins relatert til REST-ASSURED, TESTNG, REPORTNG til pom.xml.
Her er et eksempel på pom.xml.
hvilke typer e-poster som er der
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) Legg til de nødvendige krukkene i Maven-prosjektene.
Normalt er dette biblioteksfiler som kommer under en REST-forsikret krukke, TESTNG, REPORTNG. Selv om vi la til avhengighet, plugin over pom.xml-filen, men noen ganger kommer det fortsatt feil, derfor må vi legge til disse krukkene / bibliotekene for å bygge banen til maven-prosjektet for å forhindre feil (hvis noen).
Når vi oppretter Java-prosjekter i stedet for Maven-prosjekter, må vi i så fall holde disse glassene, bibliotekene nyttige og bruke dem når og når det er nødvendig.
# 5) Installer JENKINS (På Windows)
Last ned Jenkins fra jenkins.io/download/.
Åpne deretter oppsettet, følg trinnene til det er riktig installert.
Når vi er installert, må vi starte JENKINS, vi kan gjøre det samme fra en ledetekst.
C: Program Files Jenkins> java -jar jenkins.war –httpPort = 9090.
Når meldingen ovenfor vises, må vi vente litt mer tid på å se følgende melding.
Som vi kan se den siste meldingen i skjermbildet ovenfor der Jenkins er i full gang, kan vi nå starte Jenkins ved hjelp av følgende URL.
http: // localhost: 9090 /
Første gang det kan ta tid, men etterpå vil det gå raskere. Etter det må vi opprette en bruker.
Når brukeren er opprettet, må vi starte Jenkins på nytt og få tilgang til brukergrensesnittet med passordet.
Når Jenkin er installert, kan vi installere plugin-modulene over Manage Jenkins> Global Tool Configuration (selv under Jenkin-installasjon).
Opprette automatiseringsskript
# 6) Vi kan lage en ny JAVA-KLASSE og konvertere den til TESNG eller direkte lage en TESTNG KLASSE etterfulgt av å opprette en ny XML-fil (testng.xml).
For enkelhets skyld er det opprettet to Java-klasser
# 1) Opplæring1.java - Denne filen inneholder bruk av alle metodene som GET, POST, PUT, PATCH, DELETE, LOGREQUEST, LOGRESPONSE, ASSERT ved hjelp av en dummy testing URL https: jsonplaceholder.typicode.com.
Selv om URL-en oppfører seg som en original URL ved å gi tilbake slike svar, men faktisk over serveren blir det ikke gjort noen endringer. Det er bare for å demonstrere egenskapene og reaksjonen til webtjenester når de mottar forespørsel fra en klient.
# 2) Tutorial2.java - Denne filen inneholder sanntidseksemplet på GitHub hvor vi skal lese kommentaren som er lagt til i en kjerne.
Merk : GitHub krever godkjenning, derfor må vi generere API-token eller grunnleggende autorisasjon når vi er logget inn på GitHub - innstillinger ellers kan vi generere autorisasjonstoken fra POSTMAN selv
TESNG.XML
Her er XML-filen som vil kjøre begge deler Opplæring1.java og Opplæring2.java
For demonstrasjonsformål har jeg ekskludert alle metoder for å kjøre, og bare har mulig å utføre en GET-metode av Tutorial1.java. Imidlertid, hvis vi ønsker å se alle metodene utført, må vi erstatte med over TestNG XML-fil. I vårt tilfelle er TestNG-filnavnet testng1.xml.
Nå hvis vi utfører det ovennevnte testng1.xml-fil over formørkelse så får vi følgende konsollutgang.
[TestNGContentHandler] [WARN] Det anbefales sterkt å legge til “” øverst i filen, ellers kan TestNG mislykkes eller ikke fungerer som forventet.
[TestNG] Kjører:
D: RestAssured restapi testng1.xml
*** FÅ METODE ***
Userid - [1] til - [3] Tittel - [hvis det er plagsomt at øvelsen er smertefull eller] kropp - [og riktig, men loven
Og alle valg eller til glede for blinde er
eller fordømme enhver resulterende sorg og glede
og er villig til og fra arbeidet med et lukt eller ubehag, og]
*** FÅ METODEN SLUTT ***
—————————————————–
REST API-veiledninger
Totalt antall kjøringer: 1, feil: 0, hopper over: 0
—————————————————-
Her er testresultatet av suiten.
Her er standardrapporten generert av TestNG.
Her er rapporten generert av ReportNG.
Siden vi allerede har konfigurert ReportNG, kan vi derfor forvente en klar oversikt over totalt bestått, mislykket antall som ovenfor.
Utføre testskripter ved hjelp av ledeteksten
- Vi må starte ledeteksten
- Angi arbeidskatalogen som arbeidsområdet
- Finn søppel / målplassering
- Finn / opprett bibliotekssted
- Først trenger vi et sett, katalogen der prosjektet eksisterer. I mitt tilfelle er det D: RestAssured restapi
- Java - nøkkelord
- cp - Det er klassestien, betyr stien Java-klassen eksisterer i prosjektet
- Mål - Det er det samme som bin-mappen når vi jobber med et Java-prosjekt. Siden vi jobber med Maven-prosjektet, vil vi derfor ha denne mappen. Under denne mappen kan vi ha to mapper til: klasser, testklasser. Selve Java-klassen skal eksistere blant disse to mappene
- Lib - Denne mappen inneholder alle glassene som vi har brukt mens vi utfører testskriptet fra Eclipse. I noen tilfeller er mappen kanskje ikke til stede. Derfor kan det hende at vi må lage en mappe og holde alle krukkene, kjørbare filer osv. Inne i den.
- org.testng.TestNG testng1.xml - Dette er som en syntaks. Den siste delen er testng1.xml er ressursfilen til TestNG, som vil bli kalt for å utføre de ønskede testskriptene
Den komplette kommandoen vil være
java -cp mål / test-klasser; mål / klasser; lib / * org.testng.TestNG testng1.xml
Trykk deretter på Enter
Merk: Vi kan se søppelmappen mens vi jobber med et Java-prosjekt. Imidlertid, hvis vi jobber i et Maven-prosjekt, vil vi ha en målmappe og normale klasser, testklassemappen vil være tilstede under den.
Opprette BAT-fil og utføre testskript
I stedet for å åpne ledeteksten og kjøre kommandoen ovenfor for å utføre testskriptet, kan vi beholde kommandoen i en tekstfil, og mens den lagres, gir den den et navn som,
“Run.bat” [sørg for at du holder “” rundt run.bat]
Slik ser det ut når den er opprettet.
Dobbeltklikk nå på 'løp'
Kommandoprompten åpnes, og den utfører testskriptet, og når utførelsen er fullført, blir ledeteksten stengt.
nettsteder for å se anime gratis
Integrering av JENKINS med Maven, Java
Vi må lage 4-5 konfigurasjoner på Jenkins for å integrere den med Maven, Java og utføre det samme.
Når vi logger inn på Jenkins,
Goto Manager Jenkins >> Global Tool Configuration
angi JDK-installasjonsbane
Merk : Forsikre deg om at Jenkins versjon støtter JDK / Java-versjonen. Jenkins versjon 2.73 krever minst JDK / JAVA versjon 1.8, ellers vil det skape problemer mens testskriptene kjøres.
Sett installasjonsstien til Maven
Etter det, Goto Manager Jenkins >> Configure Systems
Sett miljøvariabel bane
Neste, Lag et nytt element
Vi må klikke på opprett en ny lenke, spesifiser Navn velg typen prosjekt som for jobben Fristil . Du trenger ikke å bekymre deg for andre ting per nå.
Når jobben er opprettet, vil den se slik ut.
Klikk nå på jobben
Følg trinnene nedenfor:
- Klikk på konfigurer lenken på venstre sidepanel.
- Bla ned kategorien Generelt og klikk på Avansert-knappen.
- Merk av for egendefinert arbeidsområde og angi plasseringen til prosjektmappen.
Etter det
- Rull ned mer for å bygge utløsere
- Merk av for Bygge regelmessig
- Sett litt tid som nevnt nedenfor
Rull ned, sett navnet på Build. I vårt tilfelle er det en kjørbar Windows-batchkommando.
Det er på samme sted der vi har holdt run.bat-filen tidligere som er D: RestAssured restapi-mappen
Lagre alle endringene ovenfor som er gjort så langt.
Nå, vent til cron-jobben løper. Vi kan se at bygget er igangsatt.
Når build er utført vellykket, må vi deretter klikke på build # 20 som spesifisert i bildet ovenfor.
Klikk på Konsollutgang lenke i venstre panel.
Nå skal vi kunne se følgende utdata.
Konklusjon
REST ASSURED er et veldig nyttig JAVA-bibliotek for å automatisere REST APIs uavhengig av språk. Den har mange innebygde alternativer. Den har også mange versjoner med interessante funksjoner, inkludert alternativer. Den støtter mange formater som forespørsler som XML, JSON, etc.
I denne opplæringen forklarte vi hvordan du automatiserer API-forespørsler ved bruk av RESTAssured mens du utfører testskripter ved hjelp av Jenkins. Vi forklarte også hvorfor Rest Assured er et bedre valg for å automatisere API-forespørsler.
Vi håper du likte å lese denne Rest API Tutorial-serien!
Anbefalt lesing
- REST API-testing med agurk ved bruk av BDD-tilnærming
- 10 beste API-testverktøy i 2021 (SOAP og REST API-testverktøy)
- REST API-testing med Spring RestTemplate og TestNG
- Arbeide med HTTP-forespørsler i JMeter
- POSTMAN-veiledning: API-testing ved hjelp av POSTMAN
- Topp 20 viktigste API-tester Intervju spørsmål og svar
- Topp 10 beste API-styringsverktøy med funksjonssammenligning
- Topp 36 Jenkins intervjuspørsmål [For 2021]