[JAVA] Test de l'API REST avec REST Assured

introduction

Lorsque je cherchais un outil de test automatique de l'API REST, article de la méthode de classe pour tester l'API REST avec assuré, mais la version était un peu vieille, donc je l'ai réessayée avec la dernière version au 23 janvier 2017.

Qu'est-ce que REST Assured?

La bibliothèque utilisée cette fois est REST Assured, et vous pouvez écrire des tests d'API REST en Java comme DSL. Vous pouvez également écrire facilement des tests JSON / XML en ajoutant une bibliothèque.

Comment utiliser

Voici comment l'utiliser pour écrire un test pour une API REST qui renvoie un JSON simple.

Ajouter une dépendance

C'est un ajout de dépendance promis. Ajoutez la dépendance suivante à pom.xml.

        <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>

Le premier est le corps REST Assured, le second est une bibliothèque supplémentaire pour évaluer le contenu de JSON avec une expression de chemin, et le troisième est JUnit. Il peut être écrit en tant que code de test JUnit, mais il utilise le Macther de hamcrest pour exprimer l'assertion de manière naturelle dans le DSL fourni par REST Assured.

PostScript d'importation statique

Lors de l'écriture du code de test, déclarez l'importation statique suivante pour l'écrire en tant que DSL.

import static io.restassured.matcher.ResponseAwareMatcher.*;
import static io.restassured.RestAssured.*;
import static org.hamcrest.Matchers.*;

Création de code de test

J'écrirai en fait le code de test. REST Assured envoie en fait une requête HTTP au serveur cible, mais ici nous utilisons JSONPlaceholder.

Écrivons le code suivant.

        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"))
        ;

J'espère que vous avez vu le code et que vous avez compris ce que vous faites. Commencez par givent (), accédez avec la méthode GET avec get (url), opérez sur le résultat aprèsthen (), passez ici le JSON de Response avec la méthode body () Analysez avec une expression et exécutez Assertion.

Le JSON qui est retourné lorsque vous frappez l'URL selon le code de test ci-dessus est le suivant

{
  "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"
}

Pour envoyer une réponse JSON à la sortie standard par programme, appelez prettyPrint () pour la réponse comme indiqué ci-dessous.

        given().get("/posts/2").prettyPrint();

Avec juste cela, le JSON est correctement formaté et sorti vers la sortie standard, il peut donc être utilisé pour le débogage tel quel.

Github

Le code réellement écrit a déjà été poussé vers le Github suivant. https://github.com/shimashima35/RestAssuredSample

À la fin

Une brève description de REST Assured, un outil de test d'API REST. REST Assured construit le code de test dans une chaîne de méthodes, il a donc une forte affinité avec l'EDI. Je n'ai pas expliqué les opérations détaillées ici, mais je pense que vous pouvez faire diverses choses simplement en essayant les méthodes fournies par l'EDI.

Recommended Posts

Test de l'API REST avec REST Assured
Test de l'API REST à l'aide de REST Assured Part 2
Spring avec Kotorin - 4 Conception d'API REST
Test API automatique avec Selenium + REST-Assured
Créez une API REST avec Apache2 + Passenger + Sinatra.
Test avec com.google.testing.compile
Compatible avec Android 10 (API 29)
Hello World (API REST) avec Apache Camel + Spring Boot 2
[Spring Boot] Obtenez des informations utilisateur avec l'API Rest (débutant)
Implémentez une API Rest simple avec Spring Security avec Spring Boot 2.0
Personnalisez la réponse aux erreurs de l'API REST avec Spring Boot (Partie 2)
Personnalisez la réponse aux erreurs de l'API REST avec Spring Boot (Partie 1)
Créer une API XML-RPC avec Wicket
Tester l'API Web avec junit
Implémenter l'API REST avec Spring Boot et JPA (Application Layer)
Utiliser l'API Bulk avec RestHighLevelClient
Rationalisez les tests Java avec Spock
Introduction à l'API EHRbase 2-REST
Ce à quoi j'étais accro avec l'API REST Redmine
Lier l'API avec Spring + Vue.js
Implémenter l'API REST avec Spring Boot et JPA (Domain Layer Edition)
Implémentez une API Rest simple avec Spring Security & JWT avec Spring Boot 2.0
Implémentez un serveur API Web REST simple avec Spring Boot + MySQL
[Débutant] Essayez d'écrire l'API REST pour l'application Todo avec Spring Boot
Micro benchmark réalisé avec l'API JFR
Implémenter l'API REST avec Spring Boot
FileUpload avec Rest sur Apache Wicket
Prise en charge de CORS avec Angular + Rest (Java)