Postman est l'un des outils les plus populaires pour développer et tester les API. Je l'utilise depuis 2017, et apprendre à utiliser Postman pour tester les API m'a vraiment aidé à accélérer mon processus de test.
Dans cet article, je vais vous guider, étape par étape, pour vous montrer comment valider les requêtes API avec Postman. À la fin, vous devriez être en mesure de créer vos propres tests automatisés.
Mais avant de plonger dans le tutoriel Postman proprement dit, laissez-moi vous expliquer quelques notions à propos des API.
Que sont les API ?
API est l'acronyme de « Interface de Programmation d'Application ». Ce n’est toujours pas très clair, n’est-ce pas ? 😅 Laissez-moi préciser :
Une API est une interface qui définit les moyens par lesquels des scripts ou des programmes peuvent communiquer avec une application ou un service. Elle fonctionne en partageant des données et des informations entre applications, systèmes et appareils.
L’API la plus courante actuellement est l’API REST, que j'utiliserai dans ce tutoriel sur les tests d’API avec Postman. REST est aussi l’acronyme de REprésentation State Transfer (Transfert de l’État de la Représentation). Les API REST reposent sur des principes comme la communication client-serveur, des interfaces uniformes pour communiquer entre systèmes, des opérations sans état, et plus encore.
La communication s’effectue par le biais de requêtes et de réponses HTTP.
L’anatomie des requêtes HTTP
Les requêtes HTTP comportent 4 composants principaux :
- L’URL
- Le point de terminaison (« endpoint »), qui représente la ressource spécifique avec laquelle nous voulons interagir.
- La méthode HTTP — les méthodes HTTP indiquent au serveur si nous essayons de récupérer des informations ou de demander des modifications à réaliser sur l'application. Aujourd’hui, nous allons couvrir les opérations CRUD de base :
- Créer : POST
- Lire : GET
- Modifier : PUT
- Supprimer : DELETE
- Le corps de la requête. Celui-ci est optionnel, selon la méthode utilisée. Nous utiliserons le format JSON (JavaScript Object Notation) dans ce tutoriel Postman.
Les codes de réponse HTTP
Lorsque nous effectuons une requête HTTP, le serveur renvoie un code de réponse, qui nous indique si la requête a réussi ou non. Les principales catégories de codes de réponse HTTP sont :
- 1xx : réponse d'information
- 2xx : succès
- 3xx : redirection
- 4xx : erreur côté client
- 5xx : erreur côté serveur
J’aime beaucoup cette représentation visuelle de Julia Evans :

Vous pouvez retrouver une liste complète des codes de réponse ici. Ou, si vous préférez une explication illustrée par des chats, c’est par ici 🐱👓
Bon, je pense que nous avons vu assez de notions pour se lancer dans le tutoriel : voyons maintenant comment utiliser Postman pour tester les API !
Comment utiliser Postman pour tester des API (étape par étape)
Vous pouvez utiliser Postman de deux façons : directement à partir du navigateur (vous devrez créer un compte pour cela), ou installé sur votre ordinateur local — le compte est facultatif dans ce cas.
Je préfère l’installer, simplement parce que je n’aime pas avoir trop d’onglets ouverts dans mon navigateur, c’est donc cette option que j’utiliserai par la suite.
Comme il s'agit d'un tutoriel pour débutants, je vais utiliser des cas de test simples pour montrer comment utiliser Postman pour tester une API. L’application de démonstration que j’utiliserai est Swagger Petstore, et le scénario à tester est le suivant :
- Ajoutez un nouvel animal à la boutique en utilisant le statut ‘en attente’
- Mettez à jour le statut de l’animal à ‘disponible’
- Vérifiez que les informations de l’animal ont été mises à jour
- Supprimez l’animal
- Confirmez que l’animal a bien été supprimé
Ok, c’est parti !

La première requête HTTP dans Postman
Postman permet de regrouper les requêtes API en collections. Il s’agit de groupes de requêtes HTTP connexes. Allez-y et créez une nouvelle collection pour toutes les requêtes que vous allez utiliser dans les tests :

OK, vous avez donc maintenant une collection vide.
Cliquez sur l’URL "Ajouter une requête" ou sur le bouton « + » dans la liste des onglets :

La page Swagger UI sert de documentation pour l’API.
La ressource (point de terminaison) dont vous avez besoin pour créer un nouvel animal est '/pet' et la méthode HTTP est POST.
À partir de l’onglet modèle, vous pouvez voir l’objet à envoyer comme corps de la requête, ainsi que les types de données de chaque valeur :

Nous allons utiliser le format JSON pour envoyer le corps de la requête, alors cochez le bouton radio "raw" et sélectionnez JSON dans le menu déroulant.
Le corps de la requête devrait ressembler à ceci :
{
"id": 0,
"category": {
"id": 0,
"name": "dog"
},
"name": "Spike",
"photoUrls": [
"string"
],
"tags": [
{
"id": 0,
"name": "bulldog"
}
],
"status": "pending"
}
Vous pouvez facilement ajouter le reste des détails dans le nouvel onglet de requête :

Pour créer ce nouvel animal sur le serveur, cliquez sur le bouton Envoyer.
Si tout se passe bien, vous recevrez une réponse de succès, et le corps de la réponse contiendra certaines informations sur l’animal, y compris son identifiant.
Nous en aurons besoin pour la suite :

L’étape suivante consiste à mettre à jour les informations de l’animal.
Pour cela, vous devez accéder à la même ressource, '/pet', mais envoyer une requête avec la méthode HTTP PUT.
Vous pouvez voir quelles informations transmettre dans le corps de la requête :

Ainsi, créez une nouvelle requête, en utilisant la même URL de requête, sélectionnez la méthode PUT, et envoyez le même corps de requête, sauf que vous devez modifier la valeur de status en « available », et utiliser l’identifiant (ID) de la réponse précédente :
{
"id": <entrez l’ID ici>,
"category": {
"id": 0,
"name": "dog"
},
"name": "Spike",
"photoUrls": [
"string"
],
"tags": [
{
"id": 0,
"name": "bulldog"
}
],
"status": "available"
}
La réponse devrait à nouveau être 200 OK. Ensuite, nous allons lire les informations de l’animal afin de valider que le statut a bien été mis à jour.
La méthode HTTP pour ceci est GET, et la requête accepte l’ID comme paramètre :

La réponse contient toutes les données de l’animal, incluant le statut, qui a maintenant la valeur « available » :

La requête de suppression se fera vers la même URL que pour le GET (en incluant le paramètre ID), mais la méthode HTTP sélectionnée sera DELETE :

Une fois de plus, la requête devrait être réalisée avec succès et la réponse HTTP 200 :

Si vous renvoyez la requête GET pour le même ID d’animal, vous obtiendrez une belle erreur 404 requêtes HTTP, car l’animal ne peut plus être trouvé sur le serveur :

Ajouter des tests dans Postman
Avec les étapes précédentes, vous avez suivi tout le scénario de test, mais chaque résultat devait être validé manuellement, en vérifiant les codes et contenus de réponse.
Voyons comment automatiser les tests d’API avec Postman, afin de ne plus devoir effectuer ces vérifications manuellement.
Commencez avec la première requête, le POST, puis cliquez sur l’onglet Tests de la requête.
Sélectionnez, sur la droite, l’extrait 'Status code: Code is 200'. Les extraits dans Postman sont des scripts prédéfinis que vous pouvez utiliser pour ne pas avoir à écrire le code vous-même. Chaque ligne de code saisie dans l’onglet Tests de la requête sera exécutée une fois la requête envoyée.
Vous pouvez modifier le nom du test pour quelque chose de plus descriptif (par exemple « La création de l’animal a réussi »).
Renvoyez la requête et cette fois vous verrez que l’onglet Résultats du test de la réponse affiche 1/1 test réussi, et le nom du test passé :

Vous pouvez également ajouter cet extrait aux requêtes PUT et DELETE.
Pour valider la valeur du statut dans la réponse de la requête GET, utilisez l’extrait ‘Response body: JSON value check’ :
pm.test("Your test name", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.value).to.eql(100);
});
Ce que fait ce bout de code, c’est sauvegarder la réponse dans une variable appelée jsonData, qu’il va ensuite analyser, lire la valeur d’un attribut et la comparer à une valeur attendue.
Dans notre cas, cela signifie que l’attribut « status » doit avoir la valeur « available ». Le test devrait donc ressembler à ceci :
pm.test("Le statut de l’animal est 'available'", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.status).to.eql("available");
});
Et pour la vérification finale, qui confirme que l’animal a bien été supprimé, en relançant la requête GET, nous pouvons dupliquer la première requête GET et ajouter un test qui vérifie que cette fois, le code de réponse HTTP est bien 404 :

Vous pouvez déplacer les requêtes dans la collection en faisant simplement un glisser-déposer.

Utiliser des variables dans Postman
Vous avez probablement remarqué que nous avons dû copier-coller manuellement l’ID de la requête POST vers toutes les requêtes suivantes. Et s’il existait un moyen plus facile de faire cela ?
Bonne nouvelle : il existe en effet un moyen plus simple ! Nous pouvons utiliser des variables Postman pour stocker des valeurs réutilisables ; ainsi, si ces valeurs doivent changer, nous pouvons le faire à un seul endroit, comme nous cherchons à le faire dans tous les tests automatisés.
Les variables Postman ont 3 portées différentes :
- Global : variables accessibles depuis n’importe quel environnement et n’importe quelle collection
- Environnement : variables enregistrées au niveau de l’environnement. Je n’ai pas utilisé d’environnements pour ce tutoriel, mais il est bon de savoir que Postman permet de créer différents environnements selon ceux sur lesquels nous travaillons. Par exemple, des environnements séparés pour Dev, UAT et Production
- Collection : ces variables sont stockées au niveau de la collection et peuvent être utilisées dans toutes les requêtes de cette collection.
Il existe plusieurs façons de configurer des variables de collection.
La façon la plus simple consiste simplement à les créer depuis la collection.
Pour cela, cliquez sur le nom de la collection, sélectionnez l’onglet « variables » et saisissez le nom et la valeur de la variable :

Pour utiliser cette variable, remplacez la valeur d’origine dans les requêtes par le nom de la variable entre deux accolades, comme ceci : {{petId}}
Il faudra l’utiliser dans le corps de la requête POST et PUT, pour le paramètre “id”, ainsi :
"id": {{petId}},
Et dans l’URL des requêtes GET et DELETE, comme ceci : https://petstore.swagger.io/v2/pet/{{petId}}
Vous pouvez voir la version finale de la collection ici.
Exécuter la collection Postman
Et maintenant, l’étape la plus intéressante ! Tout l’intérêt de ce tutoriel était de vous montrer comment exécuter des tests automatisés avec Postman. Tout ce que nous avons vu avant servait à préparer cette phase.
Pour exécuter les tests automatiquement, faites un clic droit sur le nom de la collection, ou survolez-le, puis cliquez sur le menu à trois points à côté du nom et sélectionnez « Exécuter la collection ».

Cela ouvrira le Collection Runner :

Dans cet écran, vous pouvez sélectionner les requêtes à envoyer, modifier leur ordre, exécuter la collection plusieurs fois (en augmentant le nombre d’itérations), ou encore ajouter des délais entre les requêtes.
Vous pouvez simplement laisser les valeurs par défaut pour le moment et cliquer sur le bouton « Exécuter ». Une fois l’exécution terminée, vous pourrez visualiser les résultats des tests pour tous les scénarios que nous voulions tester, d’un simple clic :

Et voilà ! Si vous avez suivi toutes les étapes de cet article, vous devriez avoir vos premiers tests automatisés d’API avec Postman ! 🚀
Conclusion
Postman est un outil très utile pour tester des API, et cet article n’en a montré qu’un avant-goût. Cependant, nous avons tout de même vu comment envoyer des requêtes HTTP, lire les réponses, créer des tests et vérifier automatiquement les résultats de ces tests.
Si cet article vous a plu, abonnez-vous à la newsletter QA Lead pour rester informé(e) de toutes les actualités et tendances du test logiciel.
Need expert help selecting the right Testing Software?
We’ve joined up with Crozdesk.com to give all our readers (yes, you!) access to Crozdesk’s software advisors. Just use the form below to share your needs, and they will contact you at no cost or commitment. You will then be matched and connected to a shortlist of vendors that best fit your company, and you can access exclusive software discounts!

