how automate api requests using rest assured
In deze zelfstudie zullen we leren om API-verzoeken te automatiseren met behulp van REST Assured tijdens het uitvoeren van testscripts via Jenkins:
In de 2e tutorial van de REST API Tutorial Series hebben we verschillende soorten responscodes, REST-verzoeken, REST best practices en API-testen geleerd met behulp van POSTMAN.
RUST UIT webservices worden met de dag populair vanwege hun gemakkelijke ontwikkeling, implementatie, toegang en uitvoering. Bovendien zijn deze lichtgewichten en voldoen ze niet aan strikte normen.
Als er echter een groter aantal services is en deze bij elke nieuwe build moeten worden uitgevoerd, wordt het een nachtmerrie voor de tester en voor de projectkosten. Nogmaals, sommige services zijn intern die gerelateerd zijn aan het project zelf en sommige zijn gebouwd om door derden te worden gebruikt.
Dus het idee van automatisering is opgekomen. Er zijn verschillende tools beschikbaar om de REST-services te automatiseren, zoals:
- vRest
- HttpMaster
- Parasoft
- Wees gerustgesteld
RestAssured is een populaire automatiseringstool onder testers. Laten we eens kijken waarom dit een voorkeursoptie is.
Wat je leert:
Waarom RESTAssured?
- Het is open-source, dus elke organisatie kan het gebruiken voor hun projectbehoeften.
- REST Assured is een Java-bibliotheek, dus het komt niet als een GUI zoals andere tools. Het is een raamwerk om REST-services in Java te testen.
- Het biedt een Domain-Specific Language (DSL) om een automatiseringsscript te maken, gebruikt elke moedertaal zoals Java en test de RESTful Web API.
- Het ondersteunt XML- en JSON-indeling voor het verzoek, de antwoorden.
- Het fungeert als een cliënt zonder hoofd.
- We kunnen het verzoek aanpassen dat we met deze bibliotheek naar de server gaan sturen.
- Het kan ook een gevarieerde combinatie van complexe bedrijfslogica testen.
- Het is in staat om statuscode, reacties, antwoordtekst en headers van de server op te halen voor het verzonden verzoek.
- Het maakt de BDD-stijl van het schrijven van testscripts mogelijk, d.w.z. in de indeling GIVEN-WHEN-THEN, zodat elk zakelijk teamlid, vooral met een niet-IT-achtergrond, het ook kan bekijken en de logica en testdekking kan begrijpen.
In deze tutorial automatiseren we de verzoeken die we eerder handmatig hebben aangemaakt in de eerste REST API-tutorial via POSTMAN en we zullen ook een commerciële tool bespreken met de naam GITHUB.
Automatisering van web-API-verzoeken met behulp van REST Assured
In deze zelfstudie zullen we end-to-end-automatisering doen, d.w.z. een Java-klasse maken en deze uitvoeren vanuit Jenkins.
Voorwaarden:
- Beoogde ontvangers moeten praktische kennis hebben van Eclipse IDE, Maven, TestNG, ReportNG.
- Ontvangers moeten ook op de hoogte zijn van Jenkins.
- Een internetverbinding is vereist als we toegang hebben tot services die via internet worden geïmplementeerd. Als we toegang hebben tot lokaal geïmplementeerde services, zorg er dan voor dat de tester het recht heeft.
- Als we commerciële, beveiligde sites automatiseren, zorg er dan voor dat de autorisatietoken, API-tokens, API-sleutels, enz. Correct werken en worden verstrekt aan de tester, die momenteel het script automatiseert.
URL testen
- http://jsonplaceholder.typicode.com is up and running
- Gebruiker heeft geldige inloggegevens GitHub
Milieu-instellingen
# 1) Installeer Eclipse IDE
Allereerst moeten we de Eclipse IDE downloaden van de officiële website van Verduistering.
Installeer vervolgens de IDE. Stel het pad, JAVA_HOME omgevingsvariabele correct in. Houd het JDK-, JRE-pad bij de hand voor toekomstig gebruik. Nadat Eclipse is geïnstalleerd, maakt / stelt u een werkruimte in en opent u de werkruimte.
In mijn geval is het:
#twee) Maak een Maven-project
Zorg ervoor dat u de Maven-home hebt geconfigureerd via omgevingsvariabelen.
# 3) Voeg alle relevante, noodzakelijke afhankelijkheid, plug-ins met betrekking tot REST-ASSURED, TESTNG, REPORTNG toe aan pom.xml.
Hier is een voorbeeld pom.xml.
# 4) Voeg de vereiste potten toe aan het buildpad van Maven projects.
Normaal gesproken zijn dit bibliotheekbestanden die vallen onder een REST-assured jar, TESTNG, REPORTNG. Hoewel we de afhankelijkheid hebben toegevoegd, plug-in over pom.xml-bestand, maar toch komt er soms een fout, daarom moeten we deze jars / bibliotheken toevoegen om het pad van het maven-project te bouwen om eventuele fouten te voorkomen.
Wanneer we echter Java-projecten maken in plaats van Maven-projecten, moeten we in dat geval deze potten en bibliotheken bij de hand houden en deze gebruiken wanneer en wanneer dat nodig is.
# 5) Installeer JENKINS (op Windows)
Download de Jenkins van jenkins.io/download/.
Open vervolgens de setup, volg de stappen totdat deze correct is geïnstalleerd.
Na installatie moeten we JENKINS starten, we kunnen hetzelfde doen vanaf een opdrachtprompt.
C: Program Files Jenkins> java -jar jenkins.war –httpPort = 9090.
Zodra het bovenstaande bericht wordt weergegeven, moeten we nog even wachten om het volgende bericht te zien.
Zoals we het laatste bericht in het bovenstaande scherm kunnen zien, waar Jenkins volledig actief is, kunnen we Jenkins nu starten met de volgende URL.
http: // localhost: 9090 /
De eerste keer kan het even duren, maar daarna gaat het sneller. Daarna moeten we een gebruiker aanmaken.
Nadat de gebruiker is gemaakt, moeten we Jenkins opnieuw starten en de gebruikersinterface openen met het wachtwoord.
Zodra Jenkin is geïnstalleerd, kunnen we de plug-ins installeren via Jenkins beheren> Algemene toolconfiguratie (zelfs tijdens de installatie van Jenkin).
Automatiseringsscript maken
# 6) We kunnen een nieuwe JAVA CLASS maken en deze converteren naar TESNG of maak direct een TESTNG CLASS aan, gevolgd door een nieuw XML-bestand (testng.xml).
Voor de eenvoud zijn er twee Java-klassen gemaakt
# 1) Tutorial1.java - Dit bestand bevat het gebruik van alle methoden zoals GET, POST, PUT, PATCH, DELETE, LOGREQUEST, LOGRESPONSE, ASSERT met behulp van een dummy-test-URL https: jsonplaceholder.typicode.com.
Hoewel de URL zich gedraagt als een originele URL door dergelijke reacties terug te geven, wordt er in feite geen wijziging aangebracht via de server. Het is alleen om de eigenschappen en reactie van de webservices te demonstreren wanneer ze een verzoek van een klant ontvangen.
# 2) Tutorial2.java - Dit bestand bevat het real-time voorbeeld van GitHub waar we de opmerking zullen lezen die aan een kern is toegevoegd.
Notitie : GitHub vereist authenticatie, daarom moeten we API-token of basisautorisatie genereren zodra we zijn ingelogd op GitHub - instellingen, anders kunnen we autorisatietoken genereren van POSTMAN zelf
binaire zoekboom c ++ voorbeeld
TESNG.XML
Hier is het XML-bestand dat beide zal uitvoeren Tutorial1.java en Tutorial2.java
Voor demonstratiedoeleinden heb ik alle uit te voeren methoden uitgesloten en heb ik slechts één GET-methode van Tutorial1.java ingeschakeld die kan worden uitgevoerd. Als we echter alle uitgevoerde methoden willen zien, moeten we deze vervangen door een TestNG XML-bestand. In ons geval is de TestNG-bestandsnaam testng1.xml.
Als we nu het bovenstaande uitvoeren testng1.xml-bestand over Eclipse dan krijgen we het volgende console-uitgang.
[TestNGContentHandler] [WARN] Het wordt sterk aanbevolen om '' bovenaan uw bestand toe te voegen, anders kan TestNG mislukken of niet werken zoals verwacht.
[TestNG] Actief:
D: RestAssured restapi testng1.xml
KRIJG METHODE
Userid - [1] to - [3] Title - [als het lastig is dat de oefening pijnlijk of] lichamelijk is - [en juist, maar de wet
En alle uitverkiezingen of tot het plezier van blinden zijn
of het aan de kaak stellen van enig resulterend verdriet en plezier
en is bereid om en van het zwoegen van een verfoeilijke, of ongemak; en de]
KRIJG METHODE EINDE
REST API-zelfstudies
Totaal uitgevoerde tests: 1, mislukkingen: 0, overslaan: 0
Hier is het testresultaat van de suite.
Hier is het standaardrapport gegenereerd door TestNG.
Hier is het rapport gegenereerd door ReportNG.
Omdat we ReportNG al hebben geconfigureerd, kunnen we een duidelijk beeld verwachten van de totale verstreken, mislukte telling zoals hierboven.
Testscripts uitvoeren met de opdrachtprompt
- We moeten de opdrachtprompt starten
- Stel de werkmap in als de locatie van de werkruimte
- Zoek de bak / doellocatie
- Zoek / maak bibliotheeklocatie
- Ten eerste hebben we een set nodig, de directory waar het project zich bevindt. In mijn geval is het D: RestAssured restapi
- Java - trefwoord
- cp - Het is het klassenpad, het pad waarin de Java-klasse in het project voorkomt
- Doelwit - Het is hetzelfde als de bin-map wanneer we aan een Java-project werken. Omdat we aan het Maven-project werken, zullen we daarom deze map hebben. Onder deze map kunnen we nog twee mappen hebben: klassen, testklassen. De feitelijke Java-klasse zal tussen deze twee mappen bestaan
- Lib - Deze map bevat alle potjes die we hebben gebruikt tijdens het uitvoeren van het testscript vanuit Eclipse. In sommige gevallen is de map mogelijk niet aanwezig. Daarom moeten we mogelijk een map maken en alle potten, uitvoerbare bestanden enz. Erin bewaren.
- org.testng.TestNG testng1.xml - Dit is als een syntaxis. Het laatste deel is testng1.xml is het bronbestand van TestNG, dat wordt aangeroepen om de gewenste testscripts uit te voeren
Het volledige commando zal zijn
java -cp doel / testklassen; doel / klassen; lib / * org.testng.TestNG testng1.xml
Druk daarna op Enter
Opmerking: We kunnen de bin-map zien terwijl we aan een Java-project werken. Als we echter in een Maven-project werken, hebben we een doelmap en normale klassen, de map testklassen zal eronder aanwezig zijn.
BAT-bestand maken en testscripts uitvoeren
In plaats van de opdrachtprompt te openen en de bovenstaande opdracht uit te voeren om het testscript uit te voeren, kunnen we de opdracht in een tekstbestand houden en tijdens het opslaan een naam geven zoals,
'Run.bat' [zorg ervoor dat u de '' rond run.bat behoudt]
Hier is hoe het eruit ziet als het eenmaal is gemaakt.
Dubbelklik nu op 'uitvoeren'
De opdrachtprompt wordt geopend en het testscript wordt uitgevoerd en zodra de uitvoering is voltooid, wordt de opdrachtprompt gesloten.
JENKINS integreren met Maven, Java
We moeten 4-5 configuraties maken bij Jenkins om het te integreren met Maven, Java en hetzelfde uit te voeren.
Zodra we inloggen op Jenkins,
Ga naar Manager Jenkins >> Algemene toolconfiguratie
set JDK-installatiepad
Notitie : Zorg ervoor dat de versie van Jenkin de JDK / Java-versie ondersteunt. Voor Jenkins-versie 2.73 is minimaal JDK / JAVA-versie 1.8 vereist, anders veroorzaakt het problemen bij het uitvoeren van de testscripts.
Stel het Maven-installatiepad in
Ga daarna naar Manager Jenkins >> Systemen configureren
Stel omgevingsvariabele pad in
De volgende, Maak een nieuw item
We moeten klikken op een nieuwe link maken, specificeer het naam selecteer voor de job het type project als Vrije stijl U hoeft zich vanaf nu geen zorgen te maken over andere dingen.
Zodra de taak is gemaakt, ziet deze er zo uit.
Klik nu op de job
Volg onderstaande stappen:
- Klik op de configuratielink in het linkerzijpaneel.
- Scroll naar beneden op het tabblad Algemeen en klik op de knop Geavanceerd.
- Selecteer het selectievakje voor de aangepaste werkruimte en geef de locatie van de projectmap op.
Daarna
- Scroll verder naar beneden om triggers te bouwen
- Schakel het selectievakje Periodiek bouwen in
- Stel wat tijd in zoals hieronder vermeld
Scroll naar beneden, stel de naam van Build in. In ons geval is het een uitvoerbare Windows-batchopdracht.
Het bevindt zich op dezelfde locatie waar we het run.bat-bestand eerder hebben bewaard, dat is de map D: RestAssured restapi
Sla alle bovenstaande wijzigingen op die tot dusver zijn aangebracht.
Wacht nu tot de cron-taak wordt uitgevoerd. We kunnen zien dat de build is gestart.
Zodra de build met succes is uitgevoerd, moeten we vervolgens op build # 20 klikken zoals gespecificeerd in de bovenstaande afbeelding.
Klik op de Console-uitgang link in het linkerdeelvenster.
Nu zouden we de volgende uitvoer moeten kunnen zien.
Gevolgtrekking
REST ASSURED is een zeer nuttige JAVA-bibliotheek om REST API's te automatiseren, ongeacht de taal. Het heeft veel ingebouwde opties. Het heeft ook veel versies met interessante functies, inclusief opties. Het ondersteunt vele formaten zoals verzoeken zoals XML, JSON, etc.
In deze zelfstudie hebben we uitgelegd hoe u API-verzoeken kunt automatiseren met RESTAssured tijdens het uitvoeren van testscripts met Jenkins. We hebben ook uitgelegd waarom Rest Assured een betere keuze is om API-verzoeken te automatiseren.
We hopen dat je deze Rest API Tutorial-serie met plezier hebt gelezen!
Aanbevolen literatuur
- REST API-testen met komkommer met behulp van BDD-benadering
- 10 beste API-testtools in 2021 (SOAP- en REST API-testtools)
- REST API-testen met Spring RestTemplate en TestNG
- Werken met HTTP-verzoeken in JMeter
- POSTMAN-zelfstudie: API-testen met POSTMAN
- Top 20 belangrijkste API-testvragen en antwoorden voor interviews
- Top 10 beste API-beheertools met functievergelijking
- Top 36 Jenkins-interviewvragen [voor 2021]