Reading Time: 5 mins

Test d’API avec REST assuré

Test d’API avec REST assuré

Tout tester via l’ interface utilisateur est complexe, coûteux et prend du temps. Avec un besoin toujours croissant de prendre en charge les applications sur différents appareils et systèmes interconnectés ; une architecture minimale à trois niveaux est devenue de facto le développement d’applications dans lequel la logique métier de base réside dans la « couche de service ». Par conséquent, les tests au niveau du service deviennent importants.

Je suis ici pour partager mon expérience dans l’utilisation de Rest-Assured pour les tests d’API afin d’écrire des tests automatisés puissants, lisibles et maintenables pour les API RESTful.

Qu’est-ce que REST Assured ?

REST Assured est une API Java Domain Specific Language pour simplifier les tests des services Web RESTful. L’API REST Assured peut être utilisée pour appeler des services Web REST et faire correspondre le contenu de la réponse pour les tester. REST Assured peut être utilisé pour tester des services Web XML et JSON. REST Assured peut être intégré aux frameworks JUnit et TestNG pour écrire des cas de test pour notre application.

REST Assured prend en charge les requêtes POST, GET, PUT, DELETE, OPTIONS, PATCH et HEAD et peut être utilisé pour valider et vérifier la réponse de ces requêtes.

Points forts

  • Prend en charge le validateur JSON et le chemin JSON et le chemin XML pour analyser et vérifier la réponse
  • Prend en charge le téléchargement de fichiers en plusieurs parties et divers mécanismes d’authentification
  • Validation facile des données de réponse technique
  • Prend en charge les tests basés sur les données
  • Prise en charge de la journalisation des détails de la demande et de la réponse

Avantages

  • Supprime le besoin d’écrire beaucoup de code nécessaire pour configurer une connexion HTTP, envoyer une demande, recevoir une réponse et analyser et valider
  • Prend en charge la notation de test de style BDD Given/When/Then, ce qui rend les tests plus lisibles
  • En tant que bibliothèque Java, s’intègre facilement dans une configuration d’intégration continue / livraison continue, en particulier lorsqu’elle est combinée avec un framework de test Java tel que JUnit ou TestNG

Organigramme Rest-Assured

AQ du logiciel

Exemple de demande de publication XML avec Rest-Assured

Voici un exemple de programme qui publie une requête avec une charge utile XML.

La charge utile XML enregistrée dans un fichier est lue et sérialisée en tant que charge utile. La fonction Log().all() est utilisée pour consigner toutes les spécifications et réponses de la demande. AssertThat().statusCode() est utilisé pour affirmer le code d’état de la réponse reçue.

importer io statique.restassured.RestAssured.given ;

import io.restassured.http.ContentType ;

import io.restassured.response.Response ;

 

classe publique RestAssured {

réponse publique apiResponse ;

 

public boolean postXmlData(String ApiURL, File xmlFile) lance IOException {

booléen getResponse = faux ;

essayer {

Chemin xml_Path = Chemins. obtenir (fichierxml);

octet [] xmlData = Fichiers. readAllBytes (xml_Path);

String myRequest = new String(xmlData, “ISO-8859-1” ;

apiResponse = donné ().log().all().

contentType(ContentType. XML ).

accepter(ContentType. XML ).

corps(maRequête).

lorsque().

poster(ApiURL);

apiResponse.then().log().all().

assertThat().statusCode(200);

getResponse = vrai ;

} catch (AssertionError e) {

e.printStackTrace();

}

retourne getResponse ;

}

}

Exemple d’analyse de réponse XML

Considérons que la réponse reçue est au format suivant :

Z-123

un marcheur

Alain

Marcheur

awalker@testmail.com

L’exemple de programme suivant analyse la réponse à l’aide de xmlPath(), définit la racine sur ‘response.empdetails’ et peut obtenir n’importe quelle valeur de nœud

public String getValueFromXmlResponse(String rootNode,String getNodeValue) {

chaîne nodeValue = null ;

essayer {

nodeValue =apiResponse.xmlPath().setRoot(rootNode).getString(getNodeValue);

} catch (AssertionError e) {

e.printStackTrace();

}

renvoie nodeValue ;

}

REST Assured offre une large gamme d’autres fonctionnalités utiles avec une courte courbe d’apprentissage. Avec des méthodes d’encapsulation à objectif unique appropriées, il est possible de créer facilement de puissants tests automatisés pour les API RESTful avec Rest-Assured. D’après notre expérience dans l’utilisation de différents outils pour les tests d’API , nous considérons que Rest-Assured convient parfaitement aux projets d’automatisation lorsque la pile d’outils préférée est Java – OpenSource

Keerthi Veerappan

An INFJ personality wielding brevity in speech and writing. Marketer @ Zucisystems.