Cas pratiques Postman

30 cas pratiques Postman disponibles. Niveaux : fondamental (10), avancé (10), expert (10).

Fait partie de : Cas pratiques de tests et qualité logicielle

FondamentalPostman

Corriger un test Postman avec mauvaise assertion sur header

Contexte Une requête GET /users doit retourner le header Content-Type: application/json. Le Problème Le script actuel : pm.test("Content-Type correct", function () { pm.expect(pm.response.headers.get("Content-Type")).to.eql("text/html"); }); La valeur attendue est incorrecte. Contraintes Corriger l’assertion pour vérifier que le Content-Type correspond au type JSON. Livrable attendu Un test Postman validant correctement le header Content-Type.

postmanheadersapi testing+1
FondamentalPostman

Corriger un test Postman avec mauvaise comparaison de valeur

Contexte Une requête GET /status retourne : { "status": "active" }. Le Problème Le script actuel : const jsonData = pm.response.json(); pm.test("Status is active", function () { pm.expect(jsonData.status).to.eql("ACTIVE"); }); La valeur attendue ne correspond pas exactement à celle retournée. Contraintes Corriger l’assertion pour refléter la valeur réelle renvoyée par l’API. Livrable attendu Un test Postman fonctionnel validant correctement la valeur du champ status.

postmanvalue assertionjson+1
FondamentalPostman

Corriger un test Postman avec mauvaise comparaison numérique

Contexte Une requête GET /count retourne : { "total": 5 }. Le Problème Le script actuel : const data = pm.response.json(); pm.test("Total equals 5", function () { pm.expect(data.total).to.eql("5"); }); La comparaison utilise une chaîne au lieu d’un nombre. Contraintes Corriger l’assertion pour comparer correctement des valeurs numériques. Livrable attendu Un test Postman fonctionnel validant la valeur numérique du champ total.

postmannumeric assertionjson+1
FondamentalPostman

Corriger un test Postman avec mauvaise récupération du JSON

Contexte Une requête POST /login retourne un objet JSON contenant un token. Le Problème Le script actuel : pm.test("Token exists", function () { pm.expect(pm.response.token).to.exist; }); La récupération de la réponse JSON est incorrecte. Contraintes Corriger le script pour parser correctement la réponse avant d’accéder à la propriété token. Livrable attendu Un test Postman valide vérifiant la présence du token.

postmanjson parsingapi testing+1
FondamentalPostman

Corriger un test Postman avec mauvaise vérification du status code

Contexte Une requête GET /users retourne une liste d’utilisateurs. Un test Postman vérifie le code de statut HTTP. Le Problème Le script actuel : pm.test("Status code is 200", function () { pm.response.to.have.status(201); }); La requête retourne 200 mais le test attend 201. Contraintes Corriger uniquement l’assertion pour qu’elle reflète le comportement réel de l’API. Livrable attendu Un test Postman validant correctement le status code 200.

postmanstatus codeapi testing+1
FondamentalPostman

Écrire un test Postman vérifiant la longueur d’un tableau

Contexte Une requête GET /orders retourne un tableau JSON d’objets commande. Le Problème Il faut vérifier que le tableau contient au moins un élément. Contraintes Récupérer la réponse JSON et vérifier que sa longueur est supérieure à zéro. Livrable attendu Un test Postman validant que la liste de commandes n’est pas vide.

postmanarray validationjson+1
FondamentalPostman

Écrire un test Postman vérifiant la présence d’un champ JSON

Contexte Une requête GET /profile retourne un objet JSON contenant les champs id, name et email. Le Problème Aucun test n’existe pour vérifier que le champ email est présent dans la réponse. Contraintes Écrire un script Postman utilisant pm.response.json() pour vérifier que la propriété email existe. Livrable attendu Un test Postman simple validant la structure minimale de la réponse JSON.

postmanjson validationapi testing+1
FondamentalPostman

Écrire un test Postman vérifiant le temps de réponse

Contexte Une requête GET /health doit répondre en moins de 500 ms. Le Problème Il faut ajouter un test de performance simple dans Postman. Contraintes Utiliser pm.response.responseTime pour vérifier que le temps de réponse est inférieur à 500 millisecondes. Livrable attendu Un test Postman validant que le temps de réponse respecte le seuil défini.

postmanperformanceresponse time+1
FondamentalPostman

Écrire un test Postman vérifiant le type d’un champ

Contexte Une requête GET /product retourne un objet contenant un champ price. Le Problème Il faut vérifier que price est un nombre. Contraintes Utiliser pm.response.json() et une assertion adaptée pour vérifier le type de la propriété price. Livrable attendu Un test Postman simple validant le type de donnée du champ price.

postmantype checkingjson validation+1
FondamentalPostman

Écrire un test Postman vérifiant un code d’erreur 404

Contexte Une requête GET /unknown retourne une erreur 404. Le Problème Il faut écrire un test vérifiant que le code de statut retourné est bien 404. Contraintes Utiliser pm.response.to.have.status() pour vérifier le code attendu. Livrable attendu Un test Postman validant le comportement d’erreur 404.

postmanerror handlingstatus code+1
AvancéPostman

Corriger un test Postman avec enchaînement de requêtes dépendantes

Contexte Une requête POST /orders crée une commande qui doit ensuite être récupérée via GET /orders/{id}. Le Problème Le test actuel ne stocke pas correctement l’id retourné pour la requête suivante. Contraintes Extraire l’id depuis la première réponse et le stocker dans une variable d’environnement pour l’utiliser dans la requête GET suivante. Livrable attendu Un flux Postman fonctionnel reliant correctement les deux requêtes.

postmanchained requestsenvironment variable+1
AvancéPostman

Corriger un test Postman avec extraction et réutilisation incorrecte d’un token

Contexte Une requête POST /login retourne un token JWT qui doit être stocké en variable d’environnement pour être réutilisé dans les requêtes suivantes. Le Problème Le script actuel : const jsonData = pm.response.json(); pm.environment.set("authToken", jsonData); La variable stocke tout l’objet JSON au lieu du token. Contraintes Corriger le script pour extraire uniquement la propriété token et l’enregistrer correctement. Vérifier que la variable est bien définie. Livrable attendu Un test Postman fonctionnel permettant de réutiliser le token dans les requêtes suivantes.

postmanenvironment variablejwt+1
AvancéPostman

Corriger un test Postman avec mauvaise validation de header d’authentification

Contexte Une requête sécurisée doit inclure un header Authorization de type Bearer. Le Problème Le script actuel ne vérifie pas correctement la présence et le format du header dans la requête. Contraintes Ajouter une assertion vérifiant que le header Authorization commence par "Bearer " et contient un token non vide. Livrable attendu Un test Postman validant correctement la configuration d’authentification.

postmanauthenticationheaders+1
AvancéPostman

Corriger un test Postman avec mauvaise validation de tableau non vide

Contexte Une requête GET /products retourne un tableau d’objets produit. Le Problème Le script actuel : const data = pm.response.json(); pm.test("Products exist", function () { pm.expect(data).to.not.be.empty; }); La vérification ne garantit pas que la réponse est un tableau valide. Contraintes Adapter le test pour vérifier explicitement que la réponse est un tableau et que sa longueur est supérieure à zéro. Livrable attendu Un test Postman robuste validant correctement la liste de produits.

postmanarray validationbugfix+1
AvancéPostman

Corriger un test Postman avec vérification incorrecte d’erreur métier

Contexte Une requête POST /users retourne un code 400 avec un message JSON en cas d’email déjà utilisé. Le Problème Le script actuel vérifie uniquement le code HTTP sans valider le message d’erreur renvoyé. Contraintes Ajouter une assertion vérifiant que le champ message contient exactement "Email already exists". Livrable attendu Un test Postman complet validant à la fois le code d’erreur et le message métier.

postmanerror validationjson assertion+1
AvancéPostman

Mettre en place un test conditionnel selon le contenu de la réponse

Contexte Une requête GET /feature-flags retourne un tableau de fonctionnalités activées ou désactivées. Le Problème Il faut vérifier dynamiquement que si une feature "beta" est active, alors une propriété extra est présente. Contraintes Écrire un script Postman parcourant les éléments et exécutant des assertions conditionnelles selon la valeur du champ enabled. Livrable attendu Un test Postman capable de gérer une logique conditionnelle basée sur la réponse JSON.

postmanconditional logicjson validation+1
AvancéPostman

Mettre en place un test de cohérence entre deux champs de réponse

Contexte Une requête GET /invoice retourne un objet contenant total, subtotal et tax. Le Problème Il faut vérifier que total = subtotal + tax. Contraintes Écrire un script Postman calculant la somme des deux champs et comparant avec total. Gérer correctement les valeurs numériques. Livrable attendu Un test Postman validant la cohérence métier des données retournées.

postmanbusiness validationnumeric assertion+1
AvancéPostman

Mettre en place un test de performance avec seuil dynamique

Contexte Une API GET /report doit répondre en moins de 800 ms en environnement staging. Le Problème Le test actuel vérifie un seuil fixe non adapté à différents environnements. Contraintes Utiliser une variable d’environnement définissant le seuil maximal et comparer dynamiquement pm.response.responseTime avec cette valeur. Livrable attendu Un test Postman flexible validant le temps de réponse selon l’environnement.

postmanperformanceenvironment variable+1
AvancéPostman

Valider la structure complète d’une réponse JSON complexe

Contexte Une requête GET /orders retourne une liste d’objets contenant id, total, status et un sous-objet customer. Le Problème Il faut garantir que chaque élément du tableau respecte la structure attendue. Contraintes Écrire un script Postman parcourant le tableau et vérifiant la présence et le type des propriétés principales et du sous-objet customer. Livrable attendu Un test Postman validant la structure complète et cohérente de chaque élément retourné.

postmanjson schemaarray validation+1
AvancéPostman

Valider un schéma JSON à l’aide de tv4 ou Ajv

Contexte Une requête GET /profile retourne un objet utilisateur avec plusieurs propriétés obligatoires. Le Problème Il faut s’assurer que la réponse respecte un schéma JSON défini (types, champs requis). Contraintes Définir un schéma JSON minimal dans le script Postman et utiliser une bibliothèque de validation intégrée pour valider la réponse. Livrable attendu Un test Postman validant la conformité complète de la réponse au schéma attendu.

postmanjson schemavalidation+1
ExpertPostman

Automatiser un contrôle contractuel strict avec versioning d’API

Contexte Une API versionnée expose /v1/products et /v2/products avec différences mineures de structure. Le Problème Il faut garantir que la version v1 reste rétrocompatible malgré les évolutions en v2. Contraintes Créer des tests contractuels distincts pour chaque version. Comparer les champs communs et vérifier que les champs supprimés ne sont pas présents en v1. Livrable attendu Une suite Postman assurant la conformité contractuelle et la rétrocompatibilité entre versions.

postmanapi versioningcontract testing+2
ExpertPostman

Créer un enchaînement multi-étapes avec rollback conditionnel

Contexte Un workflow métier crée une commande, effectue un paiement puis confirme la livraison. Le Problème Si le paiement échoue, la commande doit être annulée automatiquement via DELETE /orders/{id}. Contraintes Implémenter une logique conditionnelle dans les scripts Postman : stocker l’id de commande, vérifier la réponse du paiement et déclencher une requête de rollback si nécessaire. Livrable attendu Une collection Postman orchestrant un workflow transactionnel complet avec gestion d’erreur.

postmanworkflowconditional logic+2
ExpertPostman

Implémenter un test de résilience avec simulation d’erreurs backend

Contexte Une API GET /analytics peut retourner des erreurs intermittentes 500. Le Problème Les tests doivent vérifier que l’API respecte un format d’erreur standard et inclut un identifiant de corrélation. Contraintes Ajouter des assertions validant la présence des champs errorCode, message et correlationId. Vérifier que correlationId suit un format UUID. Livrable attendu Un test Postman validant la conformité des réponses d’erreur critiques.

postmanerror validationuuid+2
ExpertPostman

Implémenter un workflow complet avec authentification dynamique et rafraîchissement de token

Contexte Une API sécurisée nécessite un token JWT obtenu via POST /login. Ce token expire après un court délai et doit être rafraîchi via POST /refresh. Le Problème Les tests actuels échouent lorsque le token expire en cours d’exécution de la collection. Contraintes Mettre en place un script Pre-request qui vérifie la présence et la validité temporelle du token. Si expiré, appeler automatiquement l’endpoint de rafraîchissement et stocker le nouveau token dans les variables d’environnement. Livrable attendu Une collection Postman autonome gérant dynamiquement l’authentification et le rafraîchissement de token.

postmanjwttoken refresh+2
ExpertPostman

Implémenter une gestion sécurisée des secrets en environnement multi-stage

Contexte La collection doit fonctionner en local, staging et production avec des clés API différentes. Le Problème Des secrets sensibles sont actuellement codés en dur dans les scripts. Contraintes Configurer correctement les variables d’environnement sécurisées et adapter les scripts pour ne jamais exposer les clés. Ajouter une vérification garantissant que la clé API est définie avant exécution. Livrable attendu Une collection Postman sécurisée et compatible multi-environnements.

postmanenvironment managementsecurity+2
ExpertPostman

Mettre en place un test de pagination avancé avec vérification complète

Contexte GET /transactions retourne des résultats paginés avec paramètres page et limit. Le Problème Il faut vérifier que la pagination est cohérente sur plusieurs pages sans duplication ni perte de données. Contraintes Appeler plusieurs pages successivement, stocker les identifiants retournés et vérifier l’absence de doublons. Valider également la cohérence du totalCount. Livrable attendu Un test Postman validant complètement la logique de pagination.

postmanpaginationdata integrity+2
ExpertPostman

Mettre en place une gestion avancée des données dynamiques pour tests parallèles

Contexte Une collection est exécutée via Newman en parallèle en CI. Les tests créent des ressources POST /users. Le Problème Des conflits apparaissent car les mêmes données sont utilisées simultanément. Contraintes Générer dynamiquement des identifiants uniques via variables aléatoires et timestamp. Assurer le nettoyage via DELETE à la fin du workflow. Livrable attendu Une collection Postman robuste supportant l’exécution parallèle sans collision de données.

postmannewmanparallel execution+2
ExpertPostman

Mettre en place une validation avancée de performance avec métriques cumulées

Contexte Une API critique doit maintenir un temps de réponse moyen inférieur à 400 ms sur 10 requêtes consécutives. Le Problème Un test simple ne permet pas d’évaluer la moyenne sur plusieurs exécutions. Contraintes Utiliser des variables globales pour accumuler les temps de réponse sur plusieurs itérations et calculer la moyenne. Ajouter une assertion finale validant le seuil. Livrable attendu Un test Postman évaluant dynamiquement les performances moyennes sur une série d’appels.

postmanperformance testingmetrics+2
ExpertPostman

Valider la cohérence entre deux endpoints dépendants

Contexte GET /users retourne une liste d’utilisateurs. GET /users/{id}/details retourne les informations détaillées. Le Problème Il faut vérifier que les données principales (id, email) sont cohérentes entre les deux endpoints. Contraintes Extraire un utilisateur depuis la première réponse, appeler dynamiquement le second endpoint et comparer les champs clés. Livrable attendu Un test Postman validant la cohérence inter-endpoints.

postmanendpoint validationdata consistency+2
ExpertPostman

Valider un schéma JSON complexe avec dépendances conditionnelles

Contexte Une API GET /contracts retourne des objets dont la structure varie selon le type de contrat (standard ou premium). Le Problème Certains champs sont obligatoires uniquement si type = "premium". Contraintes Définir un schéma JSON incluant des règles conditionnelles et utiliser une validation avancée (Ajv intégré). Ajouter des assertions garantissant la conformité complète selon le type retourné. Livrable attendu Un test Postman validant dynamiquement la structure selon les règles métier conditionnelles.

postmanjson schemaconditional validation+2

Questions originales conçues par CodeDuel. CodeDuel n'est affilié à aucun éditeur ni organisme de certification cité ; les noms de certifications et les marques appartiennent à leurs titulaires et servent uniquement à indiquer le domaine couvert. Signaler un contenu

    Cas pratiques Postman : 30 mises en situation | CodeDuel