Fermer

décembre 14, 2021

Cadre Rest Assuré | AU NOUVEAU Blog


Qu'est-ce que l'API et les tests d'API ?

L'API est abrégée en tant qu'interface de programmation d'application. Il s'agit d'une interface informatique qui permet de transmettre et d'échanger des données entre deux systèmes logiciels distincts. Lors de l'utilisation d'applications telles que Facebook, Google, Twitter, Weather Forecast, nous disposons d'informations via des API. Les API sont utilisées pour donner accès aux données depuis l'extérieur du pare-feu.

Les tests d'API sont un type de technique de test de logiciels qui est utilisé pour tester directement les API, de sa fonctionnalité à ses performances, son évolutivité, sa fiabilité et sa sécurité. . Les tests d'API se concentrent sur la réception d'une demande et d'une réponse exactement appropriées dans un programme d'application.

REST vs. SOAP

SOAP : L'acronyme de « Simple Object Access Protocol », SOAP utilise des interfaces de services pour découvrir la logique métier. Ce protocole explique que la conception doit être strictement suivie et nécessite beaucoup plus de bande passante et de ressources que REST. Il définit sa propre sécurité et autorise uniquement le format de données XML. Généralement, SOAP est moins préférable que REST.

REST : L'acronyme de « Representational State Transfer », REST peut utiliser SOAP car c'est un concept et peut utiliser n'importe quel protocole comme HTTP, SOAP, etc. Il vise à présenter une logique métier et ne définit pas trop de normes comme SOAP. REST nécessite moins de bande passante et de ressources que SOAP et permet différents formats de données tels que le texte brut, HTML, XML, JSON, etc. C'est pourquoi REST est plus populaire que SOAP.

REST Assured

REST Assured est un type de bibliothèque de JAVA utilisé pour tester les API RESTful. Il est largement utilisé pour tester JSON ainsi que des applications Web basées sur XML. De plus, il aide toutes les méthodes, y compris GET, PUT, POST, PATCH et DELETE. Les prérequis nécessaires sont Java, Maven, TestNG et IDE (IntelliJ, Eclipse, etc.)

Il existe quatre types de méthodes HTTP : GET, PUT, POST et DELETE. Ces demandes peuvent être mappées aux opérations CRUD comme suit :

  • GET récupère la description de la ressource à un URI identifié. GET ne devrait avoir aucune réaction résiduelle sur le serveur
  • PUT met à jour une ressource à un URI identifié. PUT peut également être utilisé pour générer une nouvelle ressource à un URI spécifié si le serveur permet aux clients de spécifier de nouveaux URI
  • POST crée une nouvelle ressource. Le serveur alloue l'URI pour le nouvel objet et renvoie le même URI joint au message de réponse
  • DELETE est utilisé pour supprimer une ressource à un URI identifié

SYNTAX

La syntaxe de Rest Assured.io est donnée ci-dessous . Il suit le développement axé sur le comportement (BDD). BDD est une approche qui définit le comportement d'une caractéristique à travers des instances en texte brut.

param(“x”, “y”)
        header(“z”, “w”)
quand()
Method()
Then()
        statusCode(XXX)
        body(“x, ”y”, equalTo(“z”));

Code Description

Donné()

« Donné » est un mot-clé qui vous permet de définir un arrière-plan. Vous transmettez les en-têtes de requête, le corps, la requête, les paramètres de chemin et les cookies. Ceci est facultatif si ces éléments ne sont pas requis dans la demande.

Quand()

'Quand' est un mot-clé qui vous indique le scénario. Par exemple, lorsqu'un utilisateur reçoit une requête comme get ou post ou put quelque chose ou faire autre chose.

Method()

Remplacez ceci par l'une des opérations CRUD (get/post/put/delete)

Then()

Il inclut les conditions telles que assert et matcher 

Avantages

  1. REST est open source
  2. Il authentifie et justifie la réponse des requêtes telles que "get", "put", "patch", "supprimer"
  3. Il fournit une annotation de test Donné/Quand/Alors, ce qui rend immédiatement vos tests assez simples à comprendre
  4. Il prend en charge l'intégration CI/CD
  5. Il peut être utilisé avec n'importe quel rapport personnalisé/open source outil
  6. Il peut être facilement intégré aux frameworks JUnit et TestNG

Inconvénients 

  1. Il nécessite des connaissances préalables du langage de programmation Java
  2. Il ne prend pas explicitement en charge les API SOAP
  3. Il a une fonction de rapport intégrée
  4. REST Assured n'est pas purement thread-safe

Dépend de cy

En général, la dépendance est une archive — JAR, ZIP , etc. collectée dans le fichier pom.xml, à l'intérieur d'une balise


io.rest-assured
    rest-assured
    4.4.0
     essai

Création d'une requête Get

La requête HTTP GET est utilisée pour collecter une ressource à partir d'un serveur. L'exemple suivant utilise la méthode get() de la bibliothèque REST Guaranteed.

public class Demo{
@Test
public void Example()
{
RestAssured.baseURI = "Votre URI de base";

RequestSpecification httpRequest = RestAssured.given();
Réponse de réponse = httpRequest.request(Method. GET, "/endpoint");

String resBody = response.getBody().asString();
System.out.println("Le corps est => " + resBody );
}
}

Le code ci-dessus entraînera la même réponse que celle reçue lors de l'ouverture de la même URL sur un navigateur. C'est ainsi que la réponse sera affichée dans la fenêtre de la console IDE (Integrated Development Environment). L'API RESTful suit deux types de paramètres.

  1. Paramètre de requête
  2. Paramètre de chemin

Paramètre de requête : ces types de paramètres sont ajoutés à la fin du point de terminaison de l'API RESTful.

Paramètre de chemin : ce sont les chemins du point de terminaison de l'API.

REST Assured peut contrôler les deux types de paramètres. Examinons un exemple de script élaboré pour cela.

For Query Parameter

@Test
public void function() {
    String paramString= "testing";
    Chaîne attendueString= "test";

    given().
param(“texte”,paramString).
quand().
get ("http://kong.testing.com").
puis().
affirmerCela().
body("ab5",equalTo(expectedString));
}

Pour le paramètre de chemin

@Test
public void PathParameter() {
[19659004]    String year= "2010";
    int date= 2;
    given().
pathParam(“Année”,année).
quand().
get ("http://kong.com/api/v1/{year}/circuits.json").
puis().
affirmerCela().
body("data.date",hasSize(date));
}

Alternativement le param(), les paramètres de chemin sont déterminés à l'aide de la méthode pathParam().

Autres fonctionnalités de REST Assured[19659051]REST Assured fournit également certaines fonctionnalités supplémentaires qui sont les suivantes : 

  • Il peut désérialiser les POJO. Il vous permet de sérialiser les propriétés et les valeurs liées à une instance d'objet Java directement dans un document JSON ou XML, qui peuvent ensuite être envoyés à une API RESTful à l'aide de la méthode POST
  • Enregistrement des demandes et des réponses. Cela peut être très utile lorsque vous devez examiner les réponses de l'API pour créer les contrôles applicables, ou lorsque vous souhaitez confirmer que la demande que vous envoyez à une API est correcte

Conclusion

  • Rest Assured est un cadre très important pour écrire des tests contre une API REST/hypermédia
  • Avec son approche éclairante et les noms de méthodes démonstratifs, il permet de reconnaître facilement ce qu'un appel sûr est censé faire et de retourner. JSONPath et Matchers augmentent la puissance et l'articulation
  • Rest Assured est une collection de bibliothèques Java qui nous permet d'automatiser les tests de l'API Rest
  • Rest Assured est un concept basé sur Java
  • Il aide à récupérer les valeurs de demande et de réponse de structures JSON compliquées
  • La requête API peut être modifiée avec une diversité d'en-têtes, de requêtes, de paramètres de chemin et toute session ou cookies à définir
  • Il permet de définir des déclarations et des conditions d'assertion
  • Rest Assured est très accessible la condition où la réponse est de type JSON, ses méthodes peuvent ne pas fonctionner de manière cohérente si le type de contenu est HTML ou texte brut. PARTAGEZ-LE




Source link