Als ich nach einem Tool zum automatischen Testen der REST-API suchte, Artikel der Klassenmethode gefunden, um die REST-API mit Sicherheit zu testen, aber die Version war etwas alt, daher habe ich es mit der neuesten Version vom 23. Januar 2017 erneut versucht.
Die diesmal verwendete Bibliothek ist REST Assured, und Sie können REST-API-Tests in Java wie DSL schreiben. Sie können JSON / XML-Tests auch einfach schreiben, indem Sie eine Bibliothek hinzufügen.
Hier erfahren Sie, wie Sie damit einen Test für eine REST-API schreiben, die einen einfachen JSON zurückgibt.
Es ist ein versprochener Abhängigkeitszusatz.
Fügen Sie die folgende Abhängigkeit zu pom.xml
hinzu.
<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>rest-assured</artifactId>
<version>3.0.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.rest-assured</groupId>
<artifactId>json-path</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
Der erste ist der REST Assured-Body, der zweite ist eine zusätzliche Bibliothek zum Auswerten des Inhalts von JSON mit einem Pfadausdruck und der dritte ist JUnit. Es kann als JUnit-Testcode geschrieben werden, verwendet jedoch den Macther von hamcrest, um die Behauptung in der von REST Assured bereitgestellten DSL auf natürliche Weise auszudrücken.
Deklarieren Sie beim Schreiben des Testcodes den folgenden statischen Import, um ihn als DSL zu schreiben.
import static io.restassured.matcher.ResponseAwareMatcher.*;
import static io.restassured.RestAssured.*;
import static org.hamcrest.Matchers.*;
Ich werde den Testcode tatsächlich schreiben. REST Assured sendet tatsächlich eine HTTP-Anfrage an den Zielserver, aber hier verwenden wir JSONPlaceholder.
Schreiben wir den folgenden Code.
RestAssured.baseURI = "http://jsonplaceholder.typicode.com/";
given()
.get("/posts/2")
.then()
.body("userId", equalTo(1))
.body("id", equalTo(2))
.body("title", equalTo("qui est esse"))
;
Ich hoffe, Sie haben den Code gesehen und irgendwie verstanden, was Sie tun.
Beginnen Sie mit givent ()
, greifen Sie mit der GET-Methode mit get (url)
zu, bearbeiten Sie das Ergebnis nachthen ()
, übergeben Sie hier den JSON of Response mit der body ()
-Methode Analysieren Sie mit einem Ausdruck und führen Sie Assertion aus.
Der JSON, der zurückgegeben wird, wenn Sie die URL gemäß dem obigen Testcode treffen, lautet wie folgt
{
"userId": 1,
"id": 2,
"title": "qui est esse",
"body": "est rerum tempore vitae\nsequi sint nihil reprehenderit dolor beatae ea dolores neque\nfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendis\nqui aperiam non debitis possimus qui neque nisi nulla"
}
Um eine JSON-Antwort programmgesteuert an die Standardausgabe zu senden, rufen Sie "prettyPrint ()" für die Antwort auf, wie unten gezeigt.
given().get("/posts/2").prettyPrint();
Damit ist der JSON richtig formatiert und wird in die Standardausgabe ausgegeben, sodass er so wie er ist zum Debuggen verwendet werden kann.
Github
Der tatsächlich geschriebene Code wurde bereits auf den folgenden Github übertragen. https://github.com/shimashima35/RestAssuredSample
Eine kurze Beschreibung von REST Assured, einem Tool für REST-API-Tests. REST Assured erstellt Testcode in einer Methodenkette, sodass eine hohe Affinität zur IDE besteht. Ich habe die detaillierten Vorgänge hier nicht erklärt, aber ich denke, Sie können verschiedene Dinge tun, indem Sie einfach die von der IDE bereitgestellten Methoden ausprobieren.
Recommended Posts