how automate api requests using rest assured
In diesem Tutorial erfahren Sie, wie Sie API-Anforderungen mithilfe von REST Assured automatisieren, während Sie Testskripte über Jenkins ausführen:
Im zweiten Tutorial der REST API Tutorial Series haben wir verschiedene Arten von Antwortcodes, REST-Anforderungen, REST-Best Practices und API-Tests mit POSTMAN kennengelernt.
SICH AUSRUHEN Webdienste werden aufgrund ihrer einfachen Entwicklung, Implementierung, des Zugriffs und der anschließenden Ausführung von Tag zu Tag beliebter. Darüber hinaus sind diese leicht und haben keine strengen Standards zu befolgen.
Wenn jedoch eine größere Anzahl von Diensten vorhanden ist und in jedem neuen Build ausgeführt werden muss, wird dies zu einem Albtraum für den Tester und für die Projektkosten. Wiederum sind einige Dienste intern, die sich auf das Projekt selbst beziehen, und andere sind so konzipiert, dass sie von Dritten genutzt werden können.
Die Idee der Automatisierung ist also entstanden. Es stehen verschiedene Tools zur Automatisierung der REST-Services zur Verfügung, z.
- vRest
- HttpMaster
- Parasoft
- Seien Sie versichert
RestAssured ist ein beliebtes Automatisierungstool bei Testern. Lassen Sie uns sehen, warum dies eine bevorzugte Option ist.
Was du lernen wirst:
Warum RESTAssured?
- Es ist Open Source, daher kann jede Organisation es für ihre Projektanforderungen verwenden.
- REST Assured ist eine Java-Bibliothek, daher wird sie nicht wie andere Tools als GUI geliefert. Es ist ein Framework zum Testen von REST-Services in Java.
- Es bietet eine domänenspezifische Sprache (DSL) zum Erstellen eines Automatisierungsskripts, verwendet eine beliebige Muttersprache wie Java und testet die RESTful-Web-API.
- Es unterstützt das XML- und JSON-Format für die Anforderung, Antworten.
- Es fungiert als kopfloser Kunde.
- Mit dieser Bibliothek können wir die Anfrage anpassen, die wir an den Server senden möchten.
- Außerdem kann eine vielfältige Kombination komplexer Geschäftslogik getestet werden.
- Es ist in der Lage, Statuscode, Antworten, Antworttext und Header vom Server für die gesendete Anforderung abzurufen.
- Es ermöglicht den BDD-Stil zum Schreiben von Testskripten, d. H. Im Format GIVEN-WHEN-THEN, sodass jedes Mitglied des Geschäftsteams, insbesondere aus dem Nicht-IT-Hintergrund, es auch anzeigen und die Logik und Testabdeckung verstehen kann.
In diesem Tutorial werden wir die Anforderungen automatisieren, die wir zuvor im ersten REST-API-Tutorial über POSTMAN manuell erstellt haben, und wir werden auch ein kommerzielles Tool namens GITHUB diskutieren.
Automatisieren von Web-API-Anforderungen mit REST Assured
In diesem Tutorial werden wir eine End-to-End-Automatisierung durchführen, d. H. Eine Java-Klasse erstellen und von Jenkins aus ausführen.
Voraussetzungen:
- Die beabsichtigten Empfänger müssen über Kenntnisse in Eclipse IDE, Maven, TestNG und ReportNG verfügen.
- Empfänger sollten auch Jenkins kennen.
- Eine Internetverbindung ist erforderlich, wenn wir auf Dienste zugreifen, die über das Web bereitgestellt werden. Wenn wir auf lokal bereitgestellte Dienste zugreifen, stellen Sie in diesem Fall sicher, dass der Tester das Recht hat.
- Wenn wir in diesem Fall kommerzielle, gesicherte Sites automatisieren, stellen Sie sicher, dass das Autorisierungstoken, die API-Token, die API-Schlüssel usw. ordnungsgemäß funktionieren und dem Tester zur Verfügung gestellt werden, der das Skript derzeit automatisiert.
URL testen
- http://jsonplaceholder.typicode.com ist in Betrieb
- Benutzer haben gültige Anmeldeinformationen über GitHub
Umgebungseinstellungen
# 1) Installieren Sie die Eclipse-IDE
Zunächst müssen wir die Eclipse-IDE von der offiziellen Website von herunterladen Finsternis.
Installieren Sie dann die IDE. Stellen Sie den Pfad und die Umgebungsvariable JAVA_HOME korrekt ein. Halten Sie den JDK- und JRE-Pfad für die zukünftige Verwendung bereit. Sobald Eclipse installiert ist, erstellen / legen Sie einen Arbeitsbereich fest und öffnen Sie den Arbeitsbereich.
In meinem Fall ist es:
Was ist der Netzwerksicherheitsschlüssel auf dem Router?
#zwei) Erstellen Sie ein Maven-Projekt
Stellen Sie sicher, dass Sie das Maven-Home über Umgebungsvariablen konfiguriert haben.
#3) Fügen Sie alle relevanten, erforderlichen Abhängigkeits-Plugins zu REST-ASSURED, TESTNG, REPORTNG zu pom.xml hinzu.
Hier ist ein Beispiel 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ügen Sie die erforderlichen Gläser zum Erstellungspfad der Maven-Projekte hinzu.
Normalerweise handelt es sich hierbei um eine Bibliotheksdatei, die unter dem REST-gesicherten Jar TESTNG, REPORTNG steht. Obwohl wir die Abhängigkeit hinzugefügt haben, tritt das Plugin über die Datei pom.xml auf, aber manchmal tritt dennoch ein Fehler auf. Daher müssen wir diese Jars / Bibliotheken hinzufügen, um den Pfad des Maven-Projekts zu erstellen, um Fehler (falls vorhanden) zu vermeiden.
Wenn wir jedoch Java-Projekte anstelle von Maven-Projekten erstellen, müssen wir in diesem Fall diese Jars und Bibliotheken griffbereit halten und bei Bedarf verwenden.
# 5) Installieren Sie JENKINS (unter Windows)
Laden Sie die Jenkins von jenkins.io/download/ herunter.
Öffnen Sie als Nächstes das Setup und befolgen Sie die Schritte, bis es ordnungsgemäß installiert ist.
Nach der Installation müssen wir JENKINS starten. Dies können wir auch über eine Eingabeaufforderung tun.
C: Programme Jenkins> java -jar jenkins.war –httpPort = 9090.
Sobald die obige Meldung angezeigt wird, müssen wir noch einige Zeit warten, bis die folgende Meldung angezeigt wird.
Da wir die letzte Meldung im obigen Bildschirm sehen können, in der Jenkins vollständig ausgeführt wird, können wir Jenkins jetzt unter der folgenden URL starten.
http: // localhost: 9090 /
Das erste Mal kann es einige Zeit dauern, aber danach wird es schneller sein. Danach müssen wir einen Benutzer erstellen.
Sobald der Benutzer erstellt ist, müssen wir Jenkins neu starten und mit dem Kennwort auf die Benutzeroberfläche zugreifen.
Sobald Jenkin installiert ist, können wir die Plugins über Jenkins verwalten> Globale Toolkonfiguration installieren (auch während der Jenkin-Installation).
Automatisierungsskript erstellen
# 6) Wir können eine neue JAVA-KLASSE erstellen und in TESNG konvertieren oder Erstellen Sie direkt eine TESTNG-KLASSE und anschließend eine neue XML-Datei (testng.xml).
Der Einfachheit halber werden zwei Java-Klassen erstellt
# 1) Tutorial1.java - Diese Datei enthält die Verwendung aller Methoden wie GET, POST, PUT, PATCH, DELETE, LOGREQUEST, LOGRESPONSE und ASSERT unter Verwendung einer Dummy-Test-URL https: jsonplaceholder.typicode.com.
Obwohl sich die URL wie eine ursprüngliche URL verhält, indem solche Antworten zurückgegeben werden, jedoch tatsächlich über den Server, werden keine Änderungen vorgenommen. Es dient nur dazu, die Eigenschaften und Reaktionen der Webdienste zu demonstrieren, wenn sie eine Anfrage von einem Client erhalten.
# 2) Tutorial2.java - Diese Datei enthält das Echtzeitbeispiel von GitHub, in dem wir den Kommentar lesen, der einem Kern hinzugefügt wurde.
Hinweis : GitHub erfordert eine Authentifizierung, daher müssen wir ein API-Token oder eine Basisautorisierung generieren, sobald wir bei GitHub angemeldet sind - Einstellungen, oder wir können ein Autorisierungstoken von POSTMAN selbst generieren
TESNG.XML
Hier ist die XML-Datei, die beide ausführt Tutorial1.java und Tutorial2.java
Zu Demonstrationszwecken habe ich alle auszuführenden Methoden ausgeschlossen und die Ausführung nur einer GET-Methode von Tutorial1.java aktiviert. Wenn wir jedoch alle ausgeführten Methoden sehen möchten, müssen wir sie durch eine TestNG-XML-Datei ersetzen. In unserem Fall lautet der TestNG-Dateiname testng1.xml.
Nun, wenn wir das oben genannte ausführen testng1.xml-Datei über Eclipse dann werden wir folgendes bekommen Konsolenausgabe.
(TestNGContentHandler) (WARNUNG) Es wird dringend empfohlen, oben in Ihrer Datei '' hinzuzufügen, da sonst TestNG möglicherweise fehlschlägt oder nicht wie erwartet funktioniert.
(TestNG) Laufen:
D: RestAssured restapi testng1.xml
***. METHODE ERHALTEN ***.
Userid - (1) bis - (3) Titel - (wenn es problematisch ist, dass die Übung schmerzhaft ist oder) Körper - (und richtig, aber das Gesetz
Und alle Wahlen oder zum Vergnügen der Blinden sind
oder das daraus resultierende Leid und Vergnügen anzuprangern
und ist bereit und von der Mühe eines abscheulichen oder Unbehagens;
***. METHODE BEENDEN ***.
—————————————————–
REST API-Tutorials
Testlauf insgesamt: 1, Fehler: 0, Überspringen: 0
—————————————————-
SQL vs NOSQL Vor- und Nachteile
Hier ist das Testergebnis der Suite.
Hier ist der von TestNG generierte Standardbericht.
Hier ist der von ReportNG generierte Bericht.
Da wir ReportNG bereits konfiguriert haben, können wir eine klare Übersicht über die Gesamtzahl der bestandenen, fehlgeschlagenen Daten wie oben erwarten.
Ausführen von Testskripten mithilfe der Eingabeaufforderung
- Wir müssen die Eingabeaufforderung starten
- Legen Sie das Arbeitsverzeichnis als Arbeitsbereichsspeicherort fest
- Suchen Sie den Behälter / Zielort
- Bibliotheksstandort suchen / erstellen
- Zuerst brauchen wir einen Satz, das Verzeichnis, in dem das Projekt existiert. In meinem Fall ist es D: RestAssured restapi
- Java - Schlüsselwort
- vgl - Es ist der Klassenpfad, dh der Pfad, in dem die Java-Klasse im Projekt vorhanden ist
- Ziel - Es ist dasselbe wie der Ordner bin, wenn wir an einem Java-Projekt arbeiten. Da wir am Maven-Projekt arbeiten, haben wir diesen Ordner. Unter diesem Ordner können wir zwei weitere Ordner haben: Klassen, Testklassen. Die eigentliche Java-Klasse soll zwischen diesen beiden Ordnern vorhanden sein
- Lib - Dieser Ordner enthält alle Jars, die wir beim Ausführen des Testskripts von Eclipse verwendet haben. In einigen Fällen ist der Ordner möglicherweise nicht vorhanden. Daher müssen wir möglicherweise einen Ordner erstellen und alle Jars, ausführbaren Dateien usw. darin aufbewahren.
- org.testng.TestNG testng1.xml - Das ist wie eine Syntax. Der letzte Teil ist testng1.xml ist die Ressourcendatei von TestNG, die aufgerufen wird, um die gewünschten Testskripte auszuführen
Der vollständige Befehl wird sein
java -cp target / test-classes; target / Classes; lib / * org.testng.TestNG testng1.xml
Danach drücken Sie die Eingabetaste
Hinweis: Wir können den Ordner bin sehen, während wir an einem Java-Projekt arbeiten. Wenn wir jedoch in einem Maven-Projekt arbeiten, haben wir einen Zielordner und normale Klassen. Der Ordner für Testklassen ist darunter vorhanden.
BAT-Datei erstellen und Testskripte ausführen
Anstatt die Eingabeaufforderung zu öffnen und den obigen Befehl auszuführen, um das Testskript auszuführen, können wir den Befehl in einer Textdatei behalten und ihm beim Speichern einen Namen geben wie:
'Run.bat' (stellen Sie sicher, dass Sie das '' um run.bat behalten)
So sieht es aus, wenn es erstellt wurde.
Doppelklicken Sie nun auf 'Ausführen'.
Die Eingabeaufforderung wird geöffnet und das Testskript ausgeführt. Nach Abschluss der Ausführung wird die Eingabeaufforderung geschlossen.
JENKINS in Maven, Java integrieren
Wir müssen bei Jenkins 4-5 Konfigurationen vornehmen, um es in Maven, Java zu integrieren und dasselbe auszuführen.
Sobald wir uns bei Jenkins angemeldet haben,
Gehe zu Manager Jenkins >> Globale Toolkonfiguration
Legen Sie den JDK-Installationspfad fest
Hinweis : Stellen Sie sicher, dass Jenkins Version die JDK / Java-Version unterstützt. Jenkins Version 2.73 erfordert mindestens JDK / JAVA Version 1.8, da sonst Probleme beim Ausführen der Testskripte auftreten.
Legen Sie den Maven-Installationspfad fest
Danach gehen Sie zu Manager Jenkins >> Systeme konfigurieren
So öffnen Sie die JSON-Datei
Legen Sie den Pfad der Umgebungsvariablen fest
Nächster, Erstellen Sie ein neues Element
Wir müssen auf einen neuen Link erstellen klicken und den angeben Name Wählen Sie für den Job den Projekttyp als aus Freistil . Sie müssen sich ab sofort nicht mehr um andere Dinge kümmern.
Sobald der Job erstellt ist, sieht er folgendermaßen aus.
Klicken Sie nun auf den Job
Befolgen Sie die folgenden Schritte:
- Klicken Sie auf der linken Seite auf den Link Konfigurieren.
- Scrollen Sie auf der Registerkarte Allgemein nach unten und klicken Sie auf die Schaltfläche Erweitert.
- Aktivieren Sie das Kontrollkästchen Benutzerdefinierter Arbeitsbereich und geben Sie den Speicherort des Projektordners an.
Nachdem
- Scrollen Sie weiter nach unten, um Trigger zu erstellen
- Aktivieren Sie das Kontrollkästchen Regelmäßig erstellen
- Stellen Sie einige Zeit wie unten erwähnt ein
Scrollen Sie nach unten und legen Sie den Namen Build fest. In unserem Fall handelt es sich um einen ausführbaren Windows-Stapelbefehl.
Es befindet sich an derselben Stelle, an der wir zuvor die Datei run.bat gespeichert haben, im Ordner D: RestAssured restapi
Speichern Sie alle oben vorgenommenen Änderungen.
Warten Sie nun, bis der Cron-Job ausgeführt wird. Wir können sehen, dass der Build initiiert wird.
Sobald der Build erfolgreich ausgeführt wurde, müssen wir als nächstes auf den Build # 20 klicken, wie im obigen Bild angegeben.
Klicke auf das Konsolenausgabe Link im linken Bereich.
Jetzt sollten wir die folgende Ausgabe sehen können.
Fazit
REST ASSURED ist eine sehr nützliche JAVA-Bibliothek zur Automatisierung von REST-APIs unabhängig von der Sprache. Es hat viele eingebaute Optionen. Außerdem hat es viele Versionen mit interessanten Funktionen und Optionen. Es unterstützt viele Formate wie Requests wie XML, JSON usw.
In diesem Tutorial haben wir erklärt, wie API-Anforderungen mit RESTAssured automatisiert werden, während Testskripte mit Jenkins ausgeführt werden. Wir haben auch erklärt, warum Rest Assured eine bessere Wahl ist, um API-Anforderungen zu automatisieren.
Wir wünschen Ihnen viel Spaß beim Lesen dieser Rest API Tutorial-Reihe!
Literatur-Empfehlungen
- REST-API-Test mit Gurke unter Verwendung des BDD-Ansatzes
- 10 besten API-Testtools im Jahr 2021 (SOAP- und REST-API-Testtools)
- REST-API-Tests mit Spring RestTemplate und TestNG
- Arbeiten mit HTTP-Anforderungen in JMeter
- POSTMAN Tutorial: API-Tests mit POSTMAN
- Top 20 der wichtigsten Fragen und Antworten zu API-Tests
- Top 10 der besten API-Management-Tools mit Funktionsvergleich
- Top 36 Jenkins Interview Fragen (Für 2021)