[JAVA] REST-API-Test mit REST Assured

Einführung

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.

Was ist REST versichert?

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.

Wie benutzt man

Hier erfahren Sie, wie Sie damit einen Test für eine REST-API schreiben, die einen einfachen JSON zurückgibt.

Abhängigkeit hinzufügen

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.

statisches Postskript importieren

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.*;

Testcodeerstellung

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

Am Ende

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

REST-API-Test mit REST Assured
REST-API-Test mit REST Assured Part 2
Feder mit Kotorin --4 REST API Design
Automatischer API-Test mit Selen + REST-Assured
Erstellen Sie eine REST-API mit Apache2 + Passenger + Sinatra.
Testen mit com.google.testing.compile
Kompatibel mit Android 10 (API 29)
Hallo Welt (REST API) mit Apache Camel + Spring Boot 2
[Spring Boot] Benutzerinformationen mit Rest API abrufen (Anfänger)
Implementieren Sie eine einfache Rest-API mit Spring Security mit Spring Boot 2.0
Passen Sie die Antwort auf REST-API-Fehler mit Spring Boot an (Teil 2).
Passen Sie die Antwort auf REST-API-Fehler mit Spring Boot an (Teil 1).
Erstellen Sie eine XML-RPC-API mit Wicket
Testen Sie die Web-API mit junit
Implementieren Sie die REST-API mit Spring Boot und JPA (Application Layer).
Verwenden Sie die Bulk-API mit RestHighLevelClient
Optimieren Sie Java-Tests mit Spock
Einführung in die EHRbase 2-REST-API
Was ich mit der Redmine REST API süchtig gemacht habe
API mit Spring + Vue.js verknüpfen
Implementieren Sie die REST-API mit Spring Boot und JPA (Domain Layer Edition).
Implementieren Sie eine einfache Rest-API mit Spring Security & JWT mit Spring Boot 2.0
Implementieren Sie einen einfachen Web-REST-API-Server mit Spring Boot + MySQL
[Anfänger] Versuchen Sie, die REST-API für die Todo-App mit Spring Boot zu schreiben
Mikro-Benchmark mit JFR-API
Implementieren Sie die REST-API mit Spring Boot
FileUpload mit Rest auf Apache Wicket
CORS-Unterstützung mit Angular + Rest (Java)