Chapitre 1.5 : Tester l'API avec Postman
Temps d'étude : 50 minutes
1. Pourquoi tester l'API ? Vérification avant le lancement
Imaginez : avant de lancer une fusée, les ingénieurs procèdent à des mises sous tension des systèmes pour test. Oubliez la vérification — et la mission pourrait échouer !
Le test d'API — c'est votre série de tests de contrôle :
-
✅ Vérifier la fonctionnalité des "points d'amarrage"
-
🛡️ Détecter les vulnérabilités avant l'utilisation opérationnelle
-
📊 S'assurer que les données sont transmises sans distorsion
💡 Analogie spatiale : Postman — comme une console de test du Centre de Contrôle de Mission (CCM) pour simuler tous les scénarios : "Que se passe-t-il si je demande des données sur une planète inexistante ? Le serveur supportera-t-il 1000 requêtes/seconde ?"
2. Postman : "Centre de contrôle des missions" pour les API
Fonctionnalités :
-
📡 Envoi de toute requête HTTP (GET, POST, PUT, DELETE)
-
🔍 Analyse des réponses (codes de statut, en-têtes, corps JSON)
-
🧪 Écriture de tests automatisés (JavaScript)
-
🌐 Gestion des variables d'environnement (test vs production)
3. Premier lancement : Testons l'API des planètes
Étape 1 : Créer une requête
-
Ouvrez Postman → New → Request
-
Saisissez l'URL :
https://api.spacexdata.com/v4/rockets
-
Sélectionnez la méthode : GET
Étape 2 : Envoyer un "signal"
Étape 3 : Analyser la télémétrie :
- Statut : 200 OK
- Corps de la réponse (JSON) : liste des fusées avec leurs paramètres
[
{
"name": "Falcon 1",
"type": "rocket",
"active": false,
"stages": 2,
"id": "5e9d0d95eda69955f709d1eb"
},
{
"name": "Falcon 9",
"type": "rocket",
"active": true,
"id": "5e9d0d95eda69973a809d1ec"
}
]
4. Schéma : Composants de Postman
[Espace de travail]
├── Onglet "Params" (Paramètres de requête)
├── Onglet "Headers" (En-têtes)
├── Onglet "Body" (Corps de la requête pour POST/PUT)
├── Onglet "Tests" (Scripts de vérification)
└── Panneau de réponse (Status, Time, Size, Body)
5. Créer un scénario complexe : Lancement de mission
Test : Ajout d'une nouvelle planète au catalogue
-
Méthode : POST
-
URL :
https://jsonplaceholder.typicode.com/posts
(exemple) -
Dans les Headers :
- Dans le Body (raw → JSON) :
Vérification automatisée dans les Tests :
// Vérification du statut
pm.test("Post created successfully", () => {
pm.response.to.have.status(201);
});
// Vérification de la structure et des données de la réponse
pm.test("Response contains the new post data", () => {
const response = pm.response.json();
pm.expect(response).to.have.property("id"); // On vérifie que le serveur a attribué un ID
pm.expect(response.title).to.eql("New Exoplanet Found");
});
6. Variables d'environnement : Terre vs Mars
Comment tester sur différents serveurs (test/production) ?
- Créez des environnements :
Local
→http://localhost:3000
-
Production
→https://api.nasa.gov
-
Dans les requêtes, utilisez des variables :
⚠️ Important ! Ne testez jamais
DELETE
sur un serveur de production !
7. Collections : Bibliothèque de missions spatiales
Regroupez les requêtes :
Avantages :- 🚀 Lancement de tous les tests en un seul clic
- 📤 Export/import de configurations
- 👨🚀 Travail d'équipe collaboratif
8. Automatisation : Vérifications régulières des satellites
Configurez le monitoring d'API via Postman :
-
Schedule → Toutes les 2 heures
-
Tests :
-
Notifications dans Slack/par e-mail en cas d'échec
Quiz de révision
🚀 Bilan du chapitre : Postman — votre "tableau de bord" universel pour tester les API. Avec lui, vous : - Vérifierez le fonctionnement des "systèmes de bord" avant le lancement - Créerez une bibliothèque de scénarios de test - Automatiserez la surveillance des services spatiaux
📌 Exercice pratique :
- Installez Postman
- Créez une requête vers l'API SpaceX :
GET https://api.spacexdata.com/v4/launches/latest
- Écrivez un test vérifiant que :
- Le statut de la réponse est
200
- Le champ
name
contient le mot "Falcon"- Le temps de réponse est < 500 ms
Félicitations pour avoir terminé le Chapitre 1 !
Vous avez maîtrisé les bases de l'utilisation des API. Dans les prochains chapitres, nous construirons notre propre "vaisseau spatial" — une application web utilisant les API spatiales !
🌌 Ressources supplémentaires :