how automate api requests using rest assured
I denne vejledning lærer vi at automatisere API-anmodninger ved hjælp af REST-sikret under udførelse af testskripter over Jenkins:
I den anden tutorial i REST API Tutorial Series lærte vi forskellige typer svarkoder, REST-anmodninger, REST-bedste praksis og API-test ved hjælp af POSTMAN.
HVILE webtjenester bliver populære dag for dag på grund af deres lette udvikling, implementering, adgang og derefter udførelse. Derudover er disse lette og har ingen strenge standarder, der skal følges.
Men når der er et større antal tjenester, der skal udføres i hver nybygning, bliver det et mareridt for testeren og projektomkostningerne. Igen er nogle tjenester interne, der er relateret til selve projektet, og nogle er bygget til at blive forbrugt af tredjeparter.
Så ideen om automatisering er kommet op. Der er flere værktøjer til rådighed til at automatisere REST-tjenesterne som f.eks.
- vRest
- HttpMaster
- Parasoft
- Stol trygt på
RestAssured er et populært automatiseringsværktøj blandt testere. Lad os se, hvorfor det er en foretrukken mulighed.
Hvad du vil lære:
Hvorfor RESTAssured?
- Det er open source, derfor kan enhver organisation bruge det til deres projektbehov.
- REST Assured er et Java-bibliotek, så det ikke kommer som en GUI som andre værktøjer. Det er en ramme til at teste REST-tjenester i Java.
- Det giver et domænespecifikt sprog (DSL) til at oprette et automatiseringsscript, bruger ethvert modersmål som Java og tester RESTful Web API.
- Det understøtter XML- og JSON-format til anmodningen, svarene.
- Det fungerer som en hovedløs klient.
- Vi kan tilpasse den anmodning, som vi skal sende til serveren ved hjælp af dette bibliotek.
- Det kan også teste en varieret kombination af kompleks forretningslogik.
- Det er i stand til at hente statuskode, svar, responstekst, overskrifter fra serveren til den sendte anmodning.
- Det gør det muligt for BDD-stilen at skrive test script, dvs. i formatet GIVEN-WHEN-THEN, så ethvert medlem af forretningsteamet, især fra ikke-IT baggrunden, også kan se det og forstå logikken og testdækningen.
I denne vejledning automatiserer vi de anmodninger, som vi oprettede manuelt tidligere i den første REST API-tutorial gennem POSTMAN, og vi vil også diskutere et kommercielt værktøj ved navn GITHUB.
Automatisering af Web API-anmodninger ved hjælp af REST Assured
I denne vejledning udfører vi end-to-end automatisering, dvs. opretter en Java-klasse og udfører den fra Jenkins.
Forudsætninger:
- Påtænkte modtagere skal have en fungerende viden om Eclipse IDE, Maven, TestNG, ReportNG.
- Modtagere skal også være opmærksomme på Jenkins.
- Internetforbindelse er påkrævet, hvis vi får adgang til tjenester, der er distribueret over internettet. Hvis vi har adgang til tjenester, der er implementeret lokalt, skal du i så fald sørge for, at testeren har ret.
- Hvis vi automatiserer kommercielle, sikre websteder, skal du i så fald sørge for, at autorisationstoken, API-tokens, API-nøgler osv. Fungerer korrekt og leveres til testeren, som i øjeblikket automatiserer scriptet.
Test URL
- http://jsonplaceholder.typicode.com er i gang
- Brugeren har gyldig legitimationsopgørelse over GitHub
Miljøindstillinger
# 1) Installer Eclipse IDE
Først og fremmest skal vi downloade Eclipse IDE fra den officielle hjemmeside for Formørkelse.
Installer derefter IDE. Indstil sti, JAVA_HOME miljøvariabel korrekt. Hold JDK, JRE-stien praktisk til fremtidig brug. Når Eclipse er installeret, skal du oprette / indstille et arbejdsområde og åbne arbejdsområdet.
I mit tilfælde er det:
#to) Opret et Maven-projekt
Sørg for, at du har konfigureret Maven-hjemmet over miljøvariabler.
# 3) Tilføj alle relevante, nødvendige afhængighed, plugins relateret til REST-ASSURED, TESTNG, REPORTNG til pom.xml.
Her er en prøve 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) Føj de påkrævede krukker til Maven-projektets build-sti.
Normalt er dette biblioteksfiler, der kommer under en REST-sikret krukke, TESTNG, REPORTNG. Selvom vi tilføjede afhængigheden, plugin over pom.xml-filen, men stadig nogle gange kommer fejl, derfor er vi nødt til at tilføje disse krukker / biblioteker for at bygge stien til maven-projektet for at forhindre fejl (hvis nogen).
Når vi opretter Java-projekter i stedet for Maven-projekter, er vi i så fald nødt til at holde disse krukker, bibliotekerne praktiske og bruge dem efter behov.
# 5) Installer JENKINS (på Windows)
Download Jenkins fra jenkins.io/download/.
Åbn derefter opsætningen, følg trinene, indtil den er installeret korrekt.
Når vi er installeret, skal vi starte JENKINS, vi kan gøre det samme fra en kommandoprompt.
C: Program Files Jenkins> java -jar jenkins.war –httpPort = 9090.
Når ovenstående meddelelse vises, skal vi vente lidt mere tid på at se følgende meddelelse.
Som vi kan se den sidste besked på ovenstående skærmbillede, hvor Jenkins er helt i gang, kan vi nu starte Jenkins ved hjælp af følgende URL.
http: // localhost: 9090 /
Første gang det kan tage tid, men derefter bagefter bliver det hurtigere. Derefter skal vi oprette en bruger.
Når brugeren er oprettet, skal vi genstarte Jenkins og få adgang til brugergrænsefladen med adgangskoden.
Når Jenkin er installeret, kan vi installere plugins over Manage Jenkins> Global Tool Configuration (selv under Jenkin-installation).
hvordan man udskriver indhold i array java
Oprettelse af automatiseringsskript
# 6) Vi kan oprette en ny JAVA-KLASSE og konvertere den til TESNG eller Opret direkte en TESTNG KLASSE efterfulgt af oprettelse af en ny XML-fil (testng.xml).
For enkelheds skyld er der oprettet to Java-klasser
# 1) Tutorial1.java - Denne fil indeholder brug af alle metoderne såsom GET, POST, PUT, PATCH, SLET, LOGREQUEST, LOGRESPONSE, ASSERT ved hjælp af en dummy test URL https: jsonplaceholder.typicode.com.
Selvom URL'en opfører sig som en original URL ved at give sådanne svar tilbage, men faktisk over serveren foretages der ingen ændringer. Det er kun for at demonstrere webtjenesteegenskaber og reaktion, når de modtager anmodning fra en klient.
# 2) Tutorial2.java - Denne fil indeholder realtidseksemplet på GitHub, hvor vi læser den kommentar, der er føjet til en kerne.
Bemærk : GitHub kræver godkendelse, derfor er vi nødt til at generere API-token eller grundlæggende autorisation, når vi først er logget ind på GitHub - indstillinger ellers kan vi generere autorisationstoken fra POSTMAN selv
TESNG.XML
Her er XML-filen, der udfører begge dele Tutorial1.java og Tutorial2.java
Til demonstrationsformål har jeg ekskluderet alle metoder til at køre og aktiveret kun en GET-metode i Tutorial1.java, der skal udføres. Men hvis vi ønsker at se alle de udførte metoder, er vi nødt til at erstatte med over TestNG XML-fil. I vores tilfælde er TestNG-filnavnet testng1.xml.
Nu hvis vi udfører ovenstående testng1.xml-fil over formørkelse så får vi følgende konsol output.
[TestNGContentHandler] [WARN] Det anbefales kraftigt at tilføje “” øverst i din fil, ellers kan TestNG muligvis mislykkes eller ikke fungerer som forventet.
[TestNG] Kører:
D: RestAssured restapi testng1.xml
*** FÅ METODE ***
Userid - [1] til - [3] Titel - [hvis det er besværligt, at øvelsen er smertefuld eller] krop - [og rigtigt, men loven
Og alt valg eller til blindes glæde er
eller fordømme enhver resulterende sorg og glæde
og er villig til og fra slid på et ubehageligt eller ubehag, og]
*** FÅ METODEN SLUT ***
—————————————————–
REST API-vejledninger
Samlede testkørsler: 1, Fejl: 0, Spring over: 0
—————————————————-
Her er testresultatet af pakken.
Her er standardrapporten genereret af TestNG.
Her er rapporten genereret af ReportNG.
Da vi allerede har konfigureret ReportNG, kan vi derfor forvente et klart overblik over det samlede beståede, mislykkede antal som ovenfor.
Udførelse af testskripter ved hjælp af kommandoprompt
- Vi er nødt til at starte kommandoprompten
- Indstil arbejdskataloget som placeringen af arbejdsområdet
- Find bin / målplacering
- Find / opret biblioteksplacering
- Først har vi brug for et sæt, den mappe, hvor projektet findes. I mit tilfælde er det D: RestAssured restapi
- Java - nøgleord
- cp - Det er klassestien, betyder stien, hvor Java-klassen findes i projektet
- Mål - Det er det samme som bin-mappen, når vi arbejder på et Java-projekt. Da vi arbejder på Maven-projektet, har vi derfor denne mappe. Under denne mappe kan vi have to flere mapper: klasser, testklasser. Den aktuelle Java-klasse skal findes blandt disse to mapper
- Lib - Denne mappe indeholder alle de krukker, som vi har brugt under udførelsen af testscriptet fra Eclipse. I nogle tilfælde er mappen muligvis ikke til stede. Derfor kan det være nødvendigt at oprette en mappe og opbevare alle krukker, eksekverbare filer osv. I den.
- org.testng.TestNG testng1.xml - Dette er som en syntaks. Den sidste del er testng1.xml er ressourcefilen til TestNG, som kaldes til at udføre de ønskede testskripter
Den komplette kommando vil være
java -cp mål / testklasser; mål / klasser; lib / * org.testng.TestNG testng1.xml
Tryk derefter på Enter
Bemærk: Vi kan se papirkurven, mens vi arbejder på et Java-projekt. Men hvis vi arbejder i et Maven-projekt, har vi en målmappe og normale klasser, mappen test-klasser vil være til stede under den.
Oprettelse af BAT-fil og udfør testscripts
I stedet for at åbne kommandoprompten og køre ovenstående kommando for at udføre testscriptet, kan vi beholde kommandoen i en tekstfil, og mens den gemmes, giver den den et navn som,
'Run.bat' [sørg for at holde '' rundt run.bat]
Sådan ser det ud, når det er oprettet.
Dobbeltklik nu på 'kør'
Kommandoprompten åbnes, og den udfører testscriptet, og når udførelsen er afsluttet, lukkes kommandoprompten.
hvordan man finder apk-filer på Android-telefonen
Integrering af JENKINS med Maven, Java
Vi er nødt til at lave 4-5 konfigurationer hos Jenkins for at integrere det med Maven, Java og udføre det samme.
Når vi først logger ind på Jenkins,
Goto Manager Jenkins >> Global Tool Configuration
indstil JDK-installationssti
Bemærk : Sørg for, at Jenkins version understøtter JDK / Java-version. Jenkins version 2.73 kræver mindst JDK / JAVA version 1.8 ellers vil det skabe problemer under udførelse af testscripts.
Indstil Maven-installationsstien
Derefter Goto Manager Jenkins >> Konfigurer systemer
Indstil miljøvariabel sti
Næste, Opret en ny vare
Vi skal klikke på Opret et nyt link, angiv det navn for projektet skal du vælge projekttypen som Freestyle . Ingen grund til at bekymre sig om andre ting lige nu.
Når jobbet er oprettet, vil det se sådan ud.
Klik nu på jobbet
Følg nedenstående trin:
- Klik på konfigurationslinket i venstre sidepanel.
- Rul ned til fanen Generelt, og klik på knappen Avanceret.
- Marker afkrydsningsfeltet brugerdefineret arbejdsområde, og angiv placeringen af projektmappen.
Efter det
- Rul mere ned til Build Triggers
- Marker afkrydsningsfeltet Byg periodisk
- Indstil tid som nævnt nedenfor
Rul ned, indstil navnet på Build. I vores tilfælde er det en eksekverbar Windows-batchkommando.
Det er på samme sted, hvor vi har holdt run.bat-filen tidligere, der er D: RestAssured restapi-mappen
Gem alle ovenstående ændringer hidtil.
Vent nu til cron-jobbet kører. Vi kan se build er igangsat.
Når bygningen er udført med succes, skal vi derefter klikke på build nr. 20 som angivet i ovenstående billede.
Klik på Konsol output link i venstre panel.
Nu skal vi kunne se følgende output.
Konklusion
REST ASSURED er et meget nyttigt JAVA-bibliotek til at automatisere REST API'er uanset sprog. Det har mange indbyggede muligheder. Det har også mange versioner med interessante funktioner, indstillinger inkluderet i det. Det understøtter mange formater som anmodninger som XML, JSON osv.
I denne vejledning forklarede vi, hvordan man automatiserer API-anmodninger ved hjælp af RESTAssured, mens man udfører testskripter ved hjælp af Jenkins. Vi forklarede også, hvorfor Rest Assured er et bedre valg til at automatisere API-anmodninger.
Vi håber du nød at læse denne Rest API Tutorial-serie!
Anbefalet læsning
- REST API-test med agurk ved hjælp af BDD-tilgang
- 10 bedste API-testværktøjer i 2021 (SOAP og REST API-testværktøjer)
- REST API-test med Spring RestTemplate og TestNG
- Arbejde med HTTP-anmodninger i JMeter
- POSTMAN Tutorial: API-test ved hjælp af POSTMAN
- Top 20 vigtigste API-test Interviewspørgsmål og svar
- Top 10 bedste API-styringsværktøjer med funktionssammenligning
- Top 36 Jenkins interviewspørgsmål [Til 2021]