how automate api requests using rest assured
I den här självstudien lär vi oss att automatisera API-förfrågningar med hjälp av REST garanterad när du utför testskript över Jenkins:
I den andra självstudien i REST API Tutorial Series lärde vi oss olika typer av svarkoder, REST-förfrågningar, REST-bästa metoder och API-testning med POSTMAN.
RESTEN webbtjänster blir populära dag för dag på grund av att de är enkla att utveckla, implementera, komma åt och sedan utföra. Dessutom är dessa lätta och har inga strikta standarder att följa.
Men när det finns ett större antal tjänster som behöver exekveras i varje nybyggnad blir det en mardröm för testaren och för projektkostnaden. Återigen är vissa tjänster interna som är relaterade till själva projektet och vissa är byggda för att konsumeras av tredje part.
Så idén om automatisering har kommit upp. Det finns flera verktyg tillgängliga för att automatisera REST-tjänsterna som
- vRest
- HttpMaster
- Parasoft
- Var så säker
RestAssured är ett populärt automatiseringsverktyg bland testare. Låt oss se varför det är ett föredraget alternativ.
Vad du kommer att lära dig:
Varför RESTAurured?
- Det är öppen källkod, alltså kan alla organisationer använda det för sina projektbehov.
- REST Assured är ett Java-bibliotek så det kommer inte som ett GUI som andra verktyg. Det är ett ramverk för att testa REST-tjänster i Java.
- Det ger ett domänspecifikt språk (DSL) för att skapa ett automatiseringsskript, använder vilket modersmål som helst som Java och testar RESTful Web API.
- Den stöder XML- och JSON-format för Request, Responses.
- Det fungerar som en huvudlös klient.
- Vi kan anpassa begäran som vi ska skicka till servern med hjälp av detta bibliotek.
- Det kan också testa en varierad kombination av komplex affärslogik.
- Den kan hämta statuskod, svar, svarstyp, rubriker från servern för den skickade begäran.
- Det möjliggör BDD-stilen för att skriva testmanus, dvs i formatet GIVEN-WHEN-THEN så att alla medlemmar i företagsteamet, särskilt från icke-IT-bakgrunden, också kan se det och förstå logiken och testtäckningen.
I den här guiden automatiserar vi de förfrågningar som vi skapade manuellt tidigare i den första REST API-handboken genom POSTMAN och vi kommer också att diskutera ett kommersiellt verktyg med namnet GITHUB.
Automatisering av webb-API-förfrågningar med REST Assured
I denna handledning kommer vi att göra end-to-end automatisering, dvs skapa en Java-klass och köra den från Jenkins.
Förutsättningar:
- Avsedda mottagare måste ha en fungerande kunskap om Eclipse IDE, Maven, TestNG, ReportNG.
- Mottagarna bör också vara medvetna om Jenkins.
- Internetanslutning krävs om vi använder tjänster som distribueras via webben. Om vi använder tjänster som distribueras lokalt, se till att testaren har rätt.
- Om vi automatiserar några kommersiella, säkra webbplatser, i så fall, se till att auktoriseringstoken, API-tokens, API-nycklar osv fungerar korrekt och tillhandahålls till testaren, som för närvarande automatiserar skriptet.
Testar URL
- http://jsonplaceholder.typicode.com är igång
- Användaren har giltig referens över GitHub
Miljöinställningar
# 1) Installera Eclipse IDE
Först och främst måste vi ladda ner Eclipse IDE från den officiella webbplatsen för Förmörkelse.
Installera sedan IDE. Ställ in väg, JAVA_HOME miljövariabel korrekt. Håll JDK, JRE-vägen till hands för framtida bruk. När Eclipse är installerat skapar / ställer du in en arbetsyta och öppnar arbetsytan.
I mitt fall är det:
#två) Skapa ett Maven-projekt
Se till att du har konfigurerat Maven-hemmet över miljövariabler.
# 3) Lägg till alla relevanta, nödvändiga beroenden, plugins relaterade till REST-ASSURED, TESTNG, REPORTNG till pom.xml.
Här är ett exempel på 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) Lägg till de obligatoriska burkarna till Maven-projektets byggväg.
Normalt är detta biblioteksfiler som kommer under en REST-säker burk, TESTNG, REPORTNG. Även om vi har lagt till beroendet, plugin över pom.xml-filen men fortfarande ibland kommer fel, därför måste vi lägga till dessa burkar / bibliotek för att bygga sökvägen till maven-projektet för att förhindra fel (om någon).
qa ingenjör intervju frågor svar pdf
Men när vi skapar Java-projekt istället för Maven-projekt måste vi i så fall behålla dessa burkar, bibliotek praktiska och använda dem när och när det behövs.
# 5) Installera JENKINS (på Windows)
Ladda ner Jenkins från jenkins.io/download/.
Öppna sedan installationen, följ stegen tills den är korrekt installerad.
När vi väl är installerade måste vi starta JENKINS, vi kan göra detsamma från en kommandotolk.
C: Program Files Jenkins> java -jar jenkins.war –httpPort = 9090.
När ovanstående meddelande visas måste vi vänta lite mer tid för att se följande meddelande.
Som vi kan se det sista meddelandet på skärmen ovan där Jenkins är helt igång, därför kan vi nu starta Jenkins med följande URL.
http: // localhost: 9090 /
Första gången kan det ta tid men efteråt blir det snabbare. Efter det måste vi skapa en användare.
När användaren har skapats måste vi starta om Jenkins och komma åt användargränssnittet med lösenordet.
När Jenkin har installerats kan vi installera plugin-programmen via Manage Jenkins> Global Tool Configuration (även under Jenkin-installationen).
Skapa automatiseringsskript
# 6) Vi kan skapa en ny JAVA-KLASS och konvertera den till TESNG eller skapa en TESTNG-KLASS direkt följt av att skapa en ny XML-fil (testng.xml).
För enkelhetens skull skapas två Java-klasser
# 1) Handledning1.java - Den här filen innehåller användning av alla metoder som GET, POST, PUT, PATCH, DELETE, LOGREQUEST, LOGRESPONSE, ASSERT med hjälp av en dummy test-URL https: jsonplaceholder.typicode.com.
Även om webbadressen beter sig som en original-URL genom att ge tillbaka sådana svar men faktiskt över servern görs ingen ändring. Det är bara för att visa webbtjänstegenskaperna och reaktionen när de får någon begäran från en klient.
# 2) Tutorial2.java - Den här filen innehåller realtidsexemplet på GitHub där vi kommer att läsa kommentaren som läggs till i en kärna.
Notera : GitHub kräver autentisering, därför måste vi generera API-token eller grundläggande auktorisering när vi är inloggade på GitHub - inställningar, annars kan vi generera auktoriseringstoken från POSTMAN själv
TESNG.XML
Här är XML-filen som kör båda Handledning1.java och Handledning2.java
För demonstrationsändamål har jag uteslutit alla metoder att köra och aktiverat att endast en GET-metod i Tutorial1.java kan köras. Men om vi vill se alla metoder som körs måste vi ersätta dem med över TestNG XML-fil. I vårt fall är TestNG-filnamnet testng1.xml.
Nu om vi utför ovanstående testng1.xml-fil över Eclipse då får vi följande konsolutgång.
(TestNGContentHandler) (WARN) Det rekommenderas starkt att du lägger till ”” högst upp i filen, annars kan TestNG misslyckas eller inte fungerar som förväntat.
(TestNG) Running:
D: RestAssured restapi testng1.xml
*** FÅ METOD ***
Userid - (1) till - (3) Titel - (om det är besvärligt att övningen är smärtsam eller) kropp - (och rätt, men lagen
Och alla val eller till blinda nöje är
eller fördömande någon resulterande sorg och glädje
och är villig till och från arbetet med ett illaluktande eller obehag, och)
*** FÅ METODEN Slutar ***
—————————————————–
REST API-handledning
Totalt antal körningar: 1, misslyckanden: 0, hoppar över: 0
—————————————————-
Här är svitens testresultat.
Här är standardrapporten som genereras av TestNG.
Här är rapporten som genereras av ReportNG.
Eftersom vi redan har konfigurerat ReportNG kan vi därför förvänta oss en tydlig bild av det totala antalet godkända, misslyckade räkningar enligt ovan.
Köra testskript med kommandotolken
- Vi måste starta kommandotolken
- Ställ in arbetskatalogen som arbetsytans plats
- Hitta facket / målplatsen
- Hitta / skapa biblioteksplats
- Först behöver vi en uppsättning, katalogen där projektet finns. I mitt fall är det D: RestAssured restapi
- Java - nyckelord
- cp - Det är klassstigen, betyder den väg som Java-klassen finns i projektet
- Mål - Det är samma som bin-mappen när vi arbetar med ett Java-projekt. Eftersom vi arbetar med Maven-projektet kommer vi därför att ha den här mappen. Under den här mappen kan vi ha ytterligare två mappar: klasser, testklasser. Den faktiska Java-klassen ska finnas mellan dessa två mappar
- Lib - Den här mappen innehåller alla burkar som vi har använt när vi kör testskriptet från Eclipse. I vissa fall kanske mappen inte finns. Därför kan vi behöva skapa en mapp och hålla alla burkar, körbara filer etc. i den.
- org.testng.TestNG testng1.xml - Det här är som en syntax. Den sista delen är testng1.xml är resursfilen för TestNG, som kommer att anropas för att utföra önskade testskript
Komplett kommando kommer att vara
java -cp target / test-classes; target / Classes; lib / * org.testng.TestNG testng1.xml
Tryck därefter på Enter
Notera: Vi kan se papperskorgen medan vi arbetar med ett Java-projekt. Men om vi arbetar i ett Maven-projekt kommer vi att ha en målmapp och normala klasser, testklassmappen kommer att finnas under den.
Skapa BAT-fil och kör testskript
Istället för att öppna kommandotolken och köra ovanstående kommando för att köra testskriptet kan vi behålla kommandot i en textfil och samtidigt spara det ger det ett namn som,
'Run.bat' (se till att du håller '' runt run.bat)
Så här ser det ut när det har skapats.
Dubbelklicka nu på 'kör'
Kommandotolken öppnas och testskriptet körs och när körningen är klar stängs kommandotolken.
hur man fixar odefinierad referens i c ++
Integrera JENKINS med Maven, Java
Vi måste göra 4-5 konfigurationer på Jenkins för att integrera det med Maven, Java och utföra detsamma.
När vi väl loggat in på Jenkins,
Goto Manager Jenkins >> Global Tool Configuration
ställa in JDK-installationsvägen
Notera : Se till att Jenkins version stöder JDK / Java-version. Jenkins version 2.73 kräver åtminstone JDK / JAVA version 1.8, annars kommer det att skapa problem när testskripten körs.
Ställ in Maven installationsväg
Efter det, Goto Manager Jenkins >> Konfigurera system
Ställ in miljövariabel
Nästa, Skapa ett nytt objekt
Vi måste klicka på skapa en ny länk, ange namn välj vilken typ av projekt som för jobbet Freestyle . Du behöver inte oroa dig för andra saker från och med nu.
När jobbet har skapats kommer det att se ut så här.
Klicka nu på jobbet
Följ stegen nedan:
- Klicka på konfigurera länken på vänster sidopanel.
- Rulla ner på fliken Allmänt och klicka på knappen Avancerat.
- Markera kryssrutan för anpassad arbetsyta och ange projektmappens plats.
Efter det
- Rulla ner mer för att bygga utlösare
- Markera kryssrutan Bygg regelbundet
- Ställ in tid som nämns nedan
Rulla ned, ställ in namnet på Build. I vårt fall är det ett körbart Windows-batchkommando.
Det är på samma plats där vi har behållit run.bat-filen tidigare som är D: RestAssured restapi-mappen
Spara alla ändringar som gjorts hittills.
Vänta nu tills cron-jobbet körs. Vi kan se att byggandet är igång.
När byggnaden har genomförts framgångsrikt måste vi sedan klicka på build # 20 som anges i bilden ovan.
Klicka på Konsolutgång länk i den vänstra panelen.
Nu borde vi kunna se följande utdata.
Slutsats
REST ASSURED är ett mycket användbart JAVA-bibliotek för att automatisera REST API: s oavsett språk. Den har många inbyggda alternativ. Det har också många versioner med intressanta funktioner, alternativ ingår i den. Den stöder många format som förfrågningar som XML, JSON, etc.
I den här handledningen förklarade vi hur man automatiserar API-förfrågningar med RESTAssured när man kör testskript med Jenkins. Vi förklarade också varför Rest Assured är ett bättre val för att automatisera API-förfrågningar.
Vi hoppas att du gillade att läsa denna Rest API-handledningsserie!
Rekommenderad läsning
- REST API-testning med gurka med BDD-metod
- De 10 bästa API-testverktygen 2021 (SOAP och REST API-testverktyg)
- REST API-testning med Spring RestTemplate och TestNG
- Arbeta med HTTP-begäranden i JMeter
- POSTMAN-handledning: API-testning med POSTMAN
- Topp 20 viktigaste API-testintervjuer och frågor
- Topp 10 bästa API-hanteringsverktyg med funktionsjämförelse
- Topp 36 Jenkins intervjufrågor (För 2021)