Tests de l’API Rest avec JMeter

Actuellement, REST (Representational State Transfer) est devenu le modèle le plus largement utilisé pour la mise en œuvre des services web. Il est léger, n’est pas fortement typé et, contrairement à SOAP, il n’est pas lié au format XML. C’est donc devenu une actualité brûlante pour l’AQ également. Dans nos articles précédents, nous avons mentionné les tests manuels de l’API REST et l’automatisation de l’API REST à l’aide de Java. Dans ce billet, nous allons vous montrer comment effectuer des tests fonctionnels ou de charge des API REST à l’aide de JMeter.
Dans ce tutoriel, j’utilise une API REST fictive disponible sur jsonplaceholder.typicode.com. J’utiliserai la méthode HTTP Post de l’API pour demander la fonction « post comments » de cette API fictive.
ADRESA URL API - http://jsonplaceholder.typicode.com/posts
Telo požiadavky API
{
title: 'foo',
body: 'bar',
userId: 1
}
Pri úspešnej požiadavke API vráti nasledujúcu odpoveď (ako je vidieť v časti View Result Tree).
{
title: 'foo',
body: 'bar',
userId: 1
id: 101, //or any random id
}
Étapes de la création d’un script pour l’API Rest dans JMeter
- Tout d’abord, nous devons ajouter l’échantillonneur de requête HTTP au groupe de threads (Test Plan -> Thread Group -> Sampler->HTTP Request).

- Ensuite, dans la section serveur web, nous devons spécifier le nom ou l’adresse IP du serveur API et son port (si nécessaire).
La section Requête HTTP devra être complétée comme suit :
- Nom du serveur ou IP – nom du serveur (par exemple, jsonplaceholder.typicode.com)
- Implémentation – sélectionnez HttpClient4 ou Java
- [http]Protocole – Selon le type de protocole, sélectionnez HTTP ou HTTPS (par exemple, l’API fictive est construite sur http, nous utiliserons donc http ici).
- Méthode – En fonction du type de méthode sur laquelle l’API a été construite, sélectionnez Get, Put, Post, Delete, etc (dans notre exemple, nous travaillerons avec la méthode Post).
- Path – Chemin d’accès à l’application après API_URL (par ex. pour API_URL http://jsonplaceholder.typicode.com/posts’ sera Path « posts ».
- Parameters/Post Body (Parameters/Post Request Body) – ajoutez le corps de la requête API ici (le corps de la requête API dans la section « Post Body » (voir la capture d’écran ci-dessous pour plus de détails, ou nous pouvons également entrer les paramètres de la requête un par un dans la section Parameters).

- L’utilisateur doit également ajouter le gestionnaire d’en-têtes HTTP en tant qu’enfant de l’échantillonneur de requêtes HTTP (pour l’exemple actuel, ce n’est pas nécessaire, cela ne fonctionnera même pas) avec l’en-tête content-type
- Cliquez sur le bouton Ajouter dans le gestionnaire d’en-têtes HTTP et ajoutez « Content-Type » dans Nom et « application/json » dans Valeur.

- [Voliteľné]En outre, nous pouvons ajouter diverses assertions au plan de test pour marquer un cas de test comme réussi ou non en fonction de la réponse obtenue. Par exemple. L’API fictive ci-dessus renvoie « title:foo » dans sa réponse. Ainsi, pour tester l’API, nous pouvons ajouter « Response Assertion » à la « HTTP Request » (HTTP Request->ADD->Assertion->Response Assertion) et ajouter le motif « title : ‘foo' » à la section Pattern to Test de la Response Assertion. Voir la capture d’écran pour référence.

- Enfin, nous pouvons ajouter différents récepteurs, par exemple « Afficher l’arbre des résultats ». Après avoir exécuté le script JMeter (Ctrl+r), nous verrons la réponse pour l’API dans la section « View Result Tree » des données de réponse.

De cette manière, nous pouvons effectuer des tests fonctionnels de l’API Rest et augmenter le « nombre de threads » et le « nombre de cycles » dans le groupe de threads pour les tests de charge.