karate framework tutorial
Dieses Tutorial ist eine Einführung in API-Tests mit Karate Framework. Erfahren Sie mehr über die Struktur des Karate-Testskripts und die Schritte zum Erstellen des ersten Testskripts:
API ist eine Abkürzung für Application Programming Interface. In einfachen Worten können wir es als Software-Vermittler definieren, der die Kommunikation zwischen Anwendungen ermöglicht.
Wir benötigen API-Tests, weil:
- Die Ergebnisse werden schneller veröffentlicht, sodass Sie nicht mehr darauf warten müssen, ob die API ordnungsgemäß funktioniert.
- Mit der schnelleren Reaktion wird auch die Bereitstellung dieser APIs schneller, wodurch eine schnelle Durchlaufzeit ermöglicht wird.
- Durch frühzeitige Fehlererkennung, noch bevor die Benutzeroberfläche der App erstellt wird, können wir Risiken mindern und Fehler beheben.
- Lieferung in großem Maßstab in kürzerer Zeit möglich.
Um an API-Tests arbeiten zu können, stehen auf dem Markt verschiedene Tools wie Postman, Mocha und Chai zur Verfügung. Diese haben gute Ergebnisse und eine effektive Verwendung zum Testen von APIs gezeigt, sind jedoch stark vom Code beeinflusst. Um diese verwenden zu können, muss man technisch fundiert sein und mit Programmiersprachen vertraut sein.
Das Karate Framework löst dieses Problem seiner vorherigen Softwaretools auf wunderbare Weise.
Was du lernen wirst:
Was ist Karate Framework?
Karate? Reden wir über Karate. Ist es der aus Japan? Was denken Sie? Könnte sein, dass der große Bruce Lee dies in seiner Freizeit entwickelt hatte.
Obwohl wir uns vorerst mit den interessanten Wurzeln des Karate befassen möchten, lassen Sie uns über das sprechen Karate-Werkzeug das wurde von entwickelt Peter Thomas , eines der großartigen Tools zur Rettung von API-Testern.
Das Karate-Framework folgt dem Cucumber-Stil beim Schreiben des Programms, das dem BDD-Ansatz folgt. Die Syntax ist für Nicht-Programmierer leicht zu verstehen. Dieses Framework ist das einzige API-Testtool, das API-Automatisierung und Leistungstests in einem einzigen eigenständigen Tool kombiniert.
Es bietet den Benutzern die Möglichkeit, die Testfälle parallel auszuführen und die JSON- und XML-Prüfungen durchzuführen.
Mit diesen Informationen können bestimmte wichtige Punkte abgeleitet werden, um das Karate-Tool im Detail besser zu verstehen:
- Karate ist ein BDD-Testframework anstelle eines TDD.
- Es ist so konzipiert, dass es für Nicht-Programmierer einfach ist. Diese Funktion ist ein Game-Changer, da sie vielen Menschen unabhängig von ihrem technischen Hintergrund oder ihrer Kapazität mehr Nutzung und Zugriff ermöglicht.
- Es verwendet die Cucumber-Feature-Datei und die Gherkins-Sprache, um den Test zu schreiben, der sehr einfach zu verstehen ist.
All diese Funktionen machen es zu einem der derzeit günstigsten Automatisierungstools.
Geschichte des Karate Framework
Erstellt von ' Peter Thomas’ 2017 soll diese Software Testfunktionen für alle verfügbar machen. Es wurde in Java geschrieben und die meisten Leute erwarteten, dass seine Dateien auch in derselben Sprache sein würden. Glücklicherweise ist dies jedoch nicht der Fall.
Vielmehr werden Gurken-Dateien verwendet, was auf die Beziehung zum Cucumber-Framework zurückzuführen ist. Die Automatisierungssoftware ist eine Erweiterung von Cucumber und erbt daher die Verwendung der Gherkins-Datei in ihrem Betrieb. Der große Unterschied zwischen den beiden ist, dass Karate beim Testen kein Java verwendet, Cucumber jedoch.
Dies ist genau der Grund, warum es sich an Nicht-Programmierer richtet, da die Gherkins-Syntax sehr gut lesbar und umfassend ist. Dies ist der Grund, warum Karate am besten geeignet und empfohlen ist, um in die Welt der automatisierten API-Tests einzusteigen.
Im Folgenden sind einige Funktionen des Karate Testing Framework aufgeführt:
- Verwendet leicht verständliche Gurkensprache.
- Es erfordert keine technischen Programmierkenntnisse wie Java.
- Es basiert auf den beliebten Gurkenstandards.
- Einfach ein Framework zu erstellen.
- Paralleles Testen ist die Kernfunktionalität, die vom Karate selbst bereitgestellt wird, daher müssen wir uns nicht darauf verlassen Maven, Gradle , usw.
- Benutzeroberfläche zum Debuggen des Tests.
- Aufrufen einer Feature-Datei aus einer anderen Datei.
- Bietet Unterstützung für das intern erstellte Testen von Datentreibern, sodass keine Abhängigkeit von externen Frameworks erforderlich ist.
- Integrierte native Ruheberichte. Außerdem kann es für bessere Benutzeroberflächenberichte und mehr Klarheit in die Gurke integriert werden.
- Bietet interne Unterstützung für das Umschalten der Konfiguration in verschiedenen Testumgebungen (QS, Stage, Prod, Pre-Prod).
- Nahtlose Unterstützung für die CI / CD-Integration, die nützlich sein kann.
- Kann verschiedene HTTP-Aufrufe verarbeiten:
- Web Socket-Unterstützung
- SOAP-Anfrage
- HTTP
- Browser-Cookie-Behandlung
- HTTPS
- HTML-Formulardaten
- XML-Anfrage
Vergleich von Karate und Rest-Assured
Seien Sie versichert : Es ist eine Java-basierte Bibliothek zum Testen der REST-Services. Es verwendet die Java-Sprache zum Schreiben der Codezeilen. Es hilft beim Testen zahlreicher Anforderungskategorien, was außerdem zur Überprüfung verschiedener Geschäftslogikkombinationen führt.
Karate Framework : Ein auf Gurken / Gurken basierendes Tool, das zum Testen von SOAP- und REST-Services verwendet wird.
In der folgenden Tabelle sind einige weitere wichtige Unterschiede zwischen Rest-Assured und Karate Framework aufgeführt:
S.No. | Basis | Karate Framework | Seien Sie versichert |
---|---|---|---|
7 | Berichterstattung | Es bietet interne Berichte und muss daher nicht von externen Plugins abhängig sein. Wir können es sogar in das Cucumber Reporting Plugin für eine bessere Benutzeroberfläche integrieren. | Muss von externen Plugins wie Junit, TestNG abhängig sein |
ein | Sprache | Es verwendet eine Kombination aus Gurke und Essiggurken | Es nutzt Java Language |
zwei | Codegröße | Normalerweise ist die Codezeile kleiner, da sie einer gurkenartigen Struktur folgt | Die Codezeile ist mehr, da sie die Verwendung der Java-Sprache beinhaltet |
3 | Technische Kenntnisse erforderlich | Nicht-Programmierer können den Gherkins-Code einfach schreiben | Zum Schreiben von Java-Code sind technische Kenntnisse erforderlich |
4 | Datengesteuertes Testen | Sie müssen TestNG oder ein gleichwertiges Produkt verwenden, um dasselbe zu unterstützen | Inhouse-Tags können zur Unterstützung von Datentests verwendet werden |
5 | Bietet es Unterstützung für SOAP-Anrufe? | Ja, es bietet | Es bezieht sich nur auf eine REST-Anforderung |
6 | Paralleles Testen | Ja, paralleles Testen wird auch mit der parallelen Berichterstellung problemlos unterstützt | Nicht zu einem großen Teil. Obwohl die Leute dies versucht haben, ist die Ausfallrate höher als die Erfolgsrate |
8 | CSV-Unterstützung für externe Daten | Ja, ab Karate 0.9.0 | Nein, Sie müssen Java-Code oder eine Bibliothek verwenden |
9 | Automatisierung der Web-Benutzeroberfläche | Ja, ab Karate 0.9.5 ist eine Web-UI-Automatisierung möglich | Nein, es wird nicht unterstützt |
10 | Beispiel GET | Given param val1 = ‘name1’ | given(). |
Wie aus den obigen Unterschieden hervorgeht, kann man mit Sicherheit sagen, dass Karate eines der einfachsten Dinge ist, die jeder tun kann.
Erforderliche Tools für die Arbeit mit Karate Framework
Nachdem wir nun unsere Grundkenntnisse über Karate Framework auf den Punkt gebracht haben, wollen wir uns die Prozesse und Tools ansehen, die für die Einrichtung der Karate-Umgebung erforderlich sind.
# 1) Sonnenfinsternis
Eclipse ist eine integrierte Entwicklungsumgebung, die im Bereich der Computerprogrammierung verwendet wird. Es wird hauptsächlich für die Java-Programmierung verwendet. Wie bereits erwähnt, ist Karate in Java geschrieben. Daher ist es sinnvoller, warum Eclipse die IDE für die API-Testsoftware ist. Ein weiterer Grund ist, dass es sich um ein Open-Source-Tool handelt. Dies ist ein ziemlich wichtiger Grund, sich für dieses Tool zu entscheiden.
Hinweis: Wir könnten sogar IntelliJ, Visual Studio und andere auf dem Markt erhältliche Editoren verwenden.
# 2) Maven
Dies ist ein Tool zur Build-Automatisierung, das hauptsächlich zum Erstellen von Java-Projekten verwendet wird. Dies ist eine Möglichkeit, eine Karate-Umgebung einzurichten und den Code zu schreiben. Klicken Sie auf, um Ihre Eclipse mit Maven-Anforderungen einzurichten Hier für die Maven-Installation.
Verwenden Sie während Ihrer Arbeit in Maven Maven-Abhängigkeiten, mit denen Sie Karate Framework unterstützen können.
Die folgenden Abhängigkeiten werden mit Maven in pom.xml verwendet.
com.intuit.karate karate-apache 0.9.5 test com.intuit.karate karate-junit4 0.9.5 test
Hinweis: Die neuesten Versionen sind möglicherweise im Maven-Repository verfügbar.
Selen Webdriver mit Gurkenbeispiel in Eclipse
# 3) Gradle
Gradle ist eine Alternative zu Maven und kann in gleicher Kapazität verwendet werden. Sie haben ihre Ähnlichkeiten und Unterschiede, können aber gleichermaßen zum Einrichten einer Umgebung für unsere Karate-Codes verwendet werden.
Es ist einfacher zu verwenden, flexibel und wird empfohlen, wenn unsere Anwendung einige Modularisierungs- und Verwaltungsanforderungen mit einer Reihe von Plug-Ins hat. Der Gradle-Setup-Code würde ungefähr so aussehen:
testCompile 'com.intuit.karate:karate-junit4:0.6.0' testCompile 'com.intuit.karate:karate-apache:0.6.0'
Hinweis: Sie könnten entweder verwenden MAVEN oder GRADLE.
# 4) Einrichtung der Java-Umgebung in Ihrem System
Sie müssen die JDK- und JRE-Umgebung einrichten, um mit den Karate Framework-Skripten beginnen zu können.
Struktur des Karate-Testskripts
Ein Karate-Testskript ist für den Besitz der Erweiterung „.feature“ bekannt. Diese Eigenschaft wird von Cucumber geerbt. Die Organisation von Dateien in Java-Konventionen ist ebenfalls zulässig. Sie können Ihre Dateien gemäß den Java-Paketkonventionen organisieren.
Die Maven-Richtlinien weisen jedoch an, dass die Speicherung von Nicht-Java-Dateien separat erfolgen muss. Sie sind in einem gemacht src / test / resources Struktur. Und die Java-Dateien bleiben unter src / main / java .
Laut den Entwicklern des Karate Frameworks sind sie jedoch der festen Überzeugung, dass wir sowohl Java- als auch Nicht-Java-Dateien nebeneinander aufbewahren. Laut ihnen ist es viel einfacher, nach den Dateien * .java und * .feature Ausschau zu halten, wenn sie zusammengehalten werden, als der Standardstruktur von Maven zu folgen.
Dies kann einfach erreicht werden, indem Sie Ihre pom.xml wie folgt anpassen (für Maven):
src/test/java **/*.java ...
Es folgt der Überblick über die allgemeine Struktur des Karate Frameworks:
Da dieses Karate-Framework die Runner-Datei verwendet, die auch in Cucumber zum Ausführen der Feature-Dateien benötigt wird, folgt der größte Teil des Schreibens den Cucumber-Standards.
Im Gegensatz zu Cucumber erfordern die Schritte im Karate jedoch keine klare Definition, was wiederum die Flexibilität und die Bedienungsfreundlichkeit erhöht. Wir müssen nicht den zusätzlichen Kleber hinzufügen, den wir normalerweise hinzufügen müssen, wenn wir dem Gurken-Framework folgen.
Die 'Runner' -Klasse wird meistens benannt TestRunner.java.
Dann hat die Datei TestRunner.java die Form:
import com.intuit.karate.junit4.Karate; import org.junit.runner.RunWith; @RunWith(Karate.class) public class TestRunner { }
Und über das reden .Merkmal Datei enthält alle Testszenarien, die getestet werden müssen, um sicherzustellen, dass die API gemäß den erwarteten Anforderungen funktioniert.
Eine allgemeine * .feature-Datei sieht ungefähr so aus:
Feature: fetching User Details Scenario: testing the get call for User Details Given url 'https://reqres.in/api/users/2' When method GET Then status 200
Erstellen des ersten grundlegenden Karate-Testskripts
Dieser Abschnitt hilft Ihnen beim Einstieg in die Erstellung Ihres ersten Testskripts, das Ihnen beim Konvertieren von APIs in Form eines Karate-Frameworks hilfreich sein wird.
Bevor wir die grundlegenden Karate-Testskripte schreiben, installieren Sie bitte die folgenden Voraussetzungen auf Ihrem Computer:
- Eclipse IDE
- Maven. Stellen Sie den entsprechenden Maven-Pfad ein.
- JDK & JRE. Stellen Sie den entsprechenden Pfad ein.
Schauen wir uns den schrittweisen Ansatz an:
# 1) Erstelle eine neue MAVEN Projekt im Eclipse-Editor
- Öffnen Sie Eclipse
- Klicken Sie auf Datei. Wählen Sie Neues Projekt.
- Wählen Sie Maven Project
- Wählen Sie den Arbeitsbereich.
- Wählen Sie den Archetyp (normalerweise wählen wir „ Maven-Archetyp-Schnellstart 1.1 ”Für einfache Maven-Projekte).
- Geben Sie die Gruppen-ID und die Artefakt-ID an (in unserem Beispiel haben wir die folgenden Werte verwendet).
- Gruppen-ID : Karate
- Artefakt-ID: KarateTestScriptsSample
- Klicken Sie auf Fertig stellen, um die Einrichtung abzuschließen.
#zwei) Einmal erstellt, können Sie jetzt die folgende Struktur im Projekt-Explorer-Fenster sehen.
#3) Schließen Sie alle Ihre Abhängigkeiten ein.
Unser allererster Schritt, nach dem Setup werden wir sein Schließen Sie alle Abhängigkeiten ein das wird für die Ausführung benötigt. Wir behalten das gesamte Tag unter der Datei POM.xml (vorausgesetzt, Sie kennen die Verwendung von POM.xml bereits).
- Öffnen Sie POM.xml, kopieren Sie den folgenden Code unter das Abhängigkeitstag und speichern Sie die Datei.
com.intuit.karate karate-apache 0.9.5 test com.intuit.karate karate-junit4 0.9.5 test
Klicken Hier für Quelle.
# 4) Lassen Sie uns das Szenario überdenken, was wir in diesem Karate Basic-Testskript testen werden.
Szenario:
Wir werden damit eine API testen URL.
Pfad: API / Benutzer / 2
Methode: ERHALTEN
Und wir müssen validieren , ob die Anfrage a zurückgibt Erfolgscode (200) oder nicht.
In einfachen Worten, wir werden nur eine Beispiel-API testen, um festzustellen, ob sie erfolgreich ausgeführt wird oder nicht.
Hinweis: Wir nehmen eine Beispiel-API, die zum Testen verfügbar ist. Sie können einen beliebigen Pfad auswählen oder auf Ihre API verweisen.
Klicken Hier für Quelle.
# 5) Jetzt wäre unser nächster Schritt, eine zu erstellen .Merkmal Datei.
Wie im Einführungsabschnitt erläutert, wird die .feature Datei ist die Eigenschaft, die von Cucumber geerbt wurde. In dieser Datei werden die Testszenarien beschrieben, die zur Durchführung des API-Tests ausgeführt werden müssen.
- Gehe zum Ordner src / test / java in Ihrem Projekt.
- Klicken Sie mit der rechten Maustaste darauf und erstellen Sie eine neue Datei - userDetails.feature. Klicken Sie dann auf die Schaltfläche Fertig stellen.
Jetzt sehen Sie die folgende Datei unter dem Ordner src / test / java
Das Grünes Symbol ähnelt dem .feature fi le in Cucumber, die wir gerade erstellt haben.
- Nachdem die Datei erstellt wurde, schreiben wir nun unsere Testszenarien, die im folgenden Abschnitt erläutert werden.
# 6) Da haben wir das Szenario und das Leerzeichen. Feature Jetzt können wir mit unserem ersten Skript beginnen. Beginnen wir mit der Codierung
Schreiben Sie die folgende Codezeile unter die Datei userDetails.feature, die wir in Schritt 5 erstellt haben:
Feature: fetching User Details Scenario: testing the get call for User Details Given url 'https://reqres.in/api/users/2' When method GET Then status 200
Versuchen wir, die Komponenten zu verstehen, die in der obigen Datei geschrieben sind:
wie man eine Hash-Tabelle in Java implementiert
- Merkmal: Das Schlüsselwort erklärt den Namen der Funktion, die wir testen.
- Hintergrund: Dies ist ein optionaler Abschnitt, der als vorausgesetzter Abschnitt behandelt wird. Dies kann verwendet werden, um zu definieren, was alles zum Testen der API erforderlich ist. Es beinhaltet HEADER, URL & PARAM Optionen.
- Szenario: Jede Feature-Datei, die Sie sehen, hat mindestens ein Feature (obwohl es geben kann mehrere Szenarien). Es ist die Beschreibung des Testfalls.
- Gegeben: Dies ist der Schritt, der ausgeführt werden muss, bevor ein anderer Testschritt ausgeführt wird. Es ist eine obligatorische Aktion, die durchgeführt werden muss.
- Wann: Es gibt die Bedingung an, die erfüllt sein muss, um den nächsten Testschritt auszuführen.
- Dann: Es sagt uns, was passieren soll, wenn der in der Wann ist befriedigt.
Hinweis: Alle oben genannten Schlüsselwörter stammen aus der Sprache der Gurken. Dies ist die Standardmethode zum Schreiben der Testskripte mit Cucumber.
Weitere in der Feature-Datei verwendete Wörter sind:
- 200: Es ist der Status- / Antwortcode, den wir erwarten (Klicken Hier für die Liste der Statuscodes)
- ERHALTEN: Es ist die API-Methode wie POST, PUT usw.
Wir hoffen, diese Erklärung war für Sie leicht zu verstehen. Jetzt können Sie sich auf das beziehen, was genau in der obigen Datei geschrieben steht.
Jetzt müssen wir eine TestRunner.java-Datei erstellen
Wie im obigen Abschnitt erläutert, benötigt Cucumber eine Runner-Datei, die zum Ausführen von erforderlich wäre .Merkmal Datei, die die Testszenarien enthält.
- Gehe zum Ordner src / test / java in Ihrem Projekt
- Klicken Sie mit der rechten Maustaste darauf und erstellen Sie eine neue Java-Datei: TestRunner.java
- Sobald die Datei erstellt wurde, Platzieren Sie die folgenden Codezeilen darunter:
import org.junit.runner.RunWith; import com.intuit.karate.junit4.Karate; @RunWith(Karate.class) public class TestRunner { }
- Test Runner ist die Datei, die jetzt ausgeführt wird, um das gewünschte Szenario auszuführen, das unter Schritt 5 geschrieben wurde.
# 7) Jetzt sind wir mit beiden Dateien fertig TestRunner.Java und userDeatils.feature. Die einzige Aufgabe, die uns noch bleibt, ist zu Lauf das Skript.
- Gehen Sie zur Datei TestRunner.java und klicken Sie mit der rechten Maustaste auf die Datei, wie im folgenden Bild gezeigt.
- Wählen Sie Ausführen als -> Junit-Test
- Sobald Sie ausgewählt haben, werden Sie feststellen, dass der Testfall jetzt gestartet wurde.
- Warten Sie, bis das Testskript ausgeführt wurde. Sobald Sie fertig sind, werden Sie etwas wie im folgenden Bild in Ihrem Fenster sehen.
- Schließlich können wir sagen, dass wir unser erstes Basic erfolgreich erstellt haben Testskript Verwendung der Karate Framework.
# 8) Zuletzt bietet das Karate-Framework auch eine HTML-Berichtspräsentation für die durchgeführte Ausführung.
- Gehen Sie zu Zielordner -> todsichere Berichte -> Hier sehen Sie Ihren HTML-Bericht, den Sie öffnen können.
** Wir empfehlen Ihnen auch, dasselbe mit dem Chrome-Browser zu öffnen, um ein besseres Erscheinungsbild zu erzielen.
- Der folgende HTML-Bericht wird Ihnen dargestellt Szenarien & Test das wurde für das erwähnte Szenario ausgeführt:
Fazit
In diesem Tutorial haben wir API-Tests, verschiedene auf dem Markt verfügbare Testtools und die Frage erörtert, wie das Karate Framework im Vergleich zu seinen Gegenstücken eine bessere Option darstellt.
Wir haben Schritt für Schritt unser erstes grundlegendes Testskript erstellt. Wir haben mit der Erstellung eines Basic begonnen Maven-Projekt in Eclipse IDE Erstellen einer .feature-Datei, die das gesamte Testszenario enthält, und einer Runner-Datei zum Ausführen des in der .feature-Datei genannten Testfalls.
Am Ende der mehreren Schritte konnten wir den Ausführungsbericht der Testergebnisse sehen.
Wir hoffen, dass dieses Tutorial für Anfänger hilfreich war, um zu lernen, wie sie ihr erstes Testskript mit dem Karate Framework erstellen und API-Tests durchführen. Dieser detaillierte Schritt-für-Schritt-Ansatz ist eine wunderbare Möglichkeit, verschiedene Tests auf der API auszuführen.
Literatur-Empfehlungen
- So richten Sie das Node.js-Testframework ein: Node.js-Lernprogramm
- Parasoft SOAtest Tutorial: Skriptloses API-Testtool
- Mockito Tutorial: Mockito Framework zum Verspotten im Unit Testing
- API-Test-Tutorial: Eine vollständige Anleitung für Anfänger
- TestNG Tutorial: Einführung in TestNG Framework
- Jest Tutorial - Testen von JavaScript-Einheiten mit Jest Framework
- Tutorial für zerstörende Tests und zerstörungsfreie Tests
- Wie verwende ich Postman zum Testen verschiedener API-Formate?