Le module Tests d’API de Thunders vous permet d’appeler n’importe quel endpoint HTTP depuis une étape de test, d’inspecter la réponse, et de transformer des portions de cette réponse en contrôles automatisés ou en variables réutilisables.
Cette page décrit les deux capacités clés qui s’ajoutent aux étapes API : les assertions sur les réponses et l’extraction de variables.
En bref — Exécutez une étape API → ouvrez l’inspecteur de réponse en cliquant sur l’étape API → cliquez sur Asserter ou Extraire sur n’importe quelle valeur → chaque clic ajoute une étape à la fin du cas de test → Exécutez.
À quoi sert la fonctionnalité
Lorsqu’une étape API s’exécute, Thunders capture la réponse HTTP complète :
Code de statut (ex.
200,404)Durée et durée de chargement (en millisecondes)
Corps de la réponse (analysé en JSON lorsque possible)
En-têtes
Depuis l’inspecteur de réponse, vous pouvez :
Ajouter des étapes d’assertion pour vérifier automatiquement qu’une valeur correspond au résultat attendu, à chaque exécution.
Ajouter des étapes d’extraction pour sauvegarder n’importe quelle valeur dans une variable nommée, réutilisable par les étapes suivantes.
Les assertions et les extractions sont de vraies étapes de test — elles apparaissent dans la liste des étapes, affichent leur statut réussite/échec, et peuvent être réordonnées ou modifiées comme n’importe quelle autre étape.
Enregistrer une réponse API complète dans une variable
Chaque étape API enregistre automatiquement sa réponse complète dans une variable. Vous pouvez personnaliser le nom depuis le formulaire de l’étape API.
Appuyez sur
A(ou cliquez sur Ajouter une étape → API) pour ouvrir la modale d’étape.Renseignez la méthode (GET, POST, PUT, PATCH, DELETE), l’URL, les en-têtes, le corps et l’authentification.
Dans le champ Nom de la variable de réponse, choisissez un nom. Les valeurs par défaut suivent le modèle
API_RESPONSE_1,API_RESPONSE_2, etc.Exécutez l’étape — l’objet réponse complet est maintenant disponible sous ce nom.
Astuce : utilisez des noms descriptifs comme LOGIN_RESPONSE, USER_PROFILE_RESPONSE ou LIST_ORDERS_RESPONSE afin que les références ultérieures restent lisibles.
Règles de nommage : lettres majuscules, chiffres et underscores uniquement. Doit commencer par une lettre. Regex : ^[A-Z][A-Z0-9_]*$.
Réutiliser les données de réponse dans les étapes suivantes
Une fois qu’une réponse est enregistrée, toute étape suivante peut la référencer avec la syntaxe [NOM_DE_VARIABLE]. Vous pouvez aussi accéder aux champs imbriqués avec la notation pointée.
Référence | Résout en |
[LOGIN_RESPONSE].body.token | Le champ |
[LOGIN_RESPONSE].statusCode | Le code de statut HTTP |
[LOGIN_RESPONSE].duration | La durée de la requête (millisecondes) |
[USER_ID] | Une variable explicitement extraite dans une étape précédente |
Vous pouvez utiliser ces références :
Dans l’URL d’une étape API suivante —
https://api.example.com/users/[USER_ID]Dans un en-tête —
Authorization: Bearer [LOGIN_RESPONSE].body.tokenDans la valeur attendue d’une assertion
Commencez à taper / (ou [) dans n’importe quel champ supporté pour ouvrir l’auto-complétion de l’Éditeur de variables en ligne et choisir parmi les variables disponibles.
Asserter sur les métadonnées de réponse (statut, durée)
Les métadonnées de réponse apparaissent sous forme de cartes de métriques en haut de l’inspecteur.
Pour asserter sur une métrique :
Cliquez sur Asserter (ou ouvrez le menu
⋯sur les écrans étroits) sur la carteStatut.La modale d’assertion s’ouvre avec le chemin du champ pré-rempli, ex.
[API_RESPONSE_1].statusCode.Choisissez un opérateur.
Saisissez la valeur attendue (ex.
200).Cliquez sur Ajouter une assertion — une étape Assertion est ajoutée à la fin du cas de test.
Assertions courantes sur les métadonnées :
Objectif | Champ | Opérateur | Valeur attendue |
Statut de succès | statusCode | est égal à | 200 |
Accepter n’importe quel 2xx | statusCode | est inférieur à | 300 |
Respecter un budget de latence | duration | est inférieur à | 1000 |
Vérifier une redirection | statusCode | est égal à | 302 |
Asserter sur les valeurs JSON de réponse
Le corps de la réponse s’affiche sous forme d’arbre JSON interactif. Dépliez n’importe quel objet ou tableau pour atteindre un champ précis.
Pour asserter sur une valeur JSON :
Dépliez l’arbre JSON jusqu’au champ qui vous intéresse.
Cliquez sur Asserter à côté de la valeur.
Le chemin du champ est calculé automatiquement, ex.
[API_RESPONSE_1].body.title.Sélectionnez un opérateur.
Saisissez la valeur attendue et cliquez sur Ajouter.
Opérateurs disponibles :
Opérateur | À utiliser pour |
est égal à / n’est pas égal à | Correspondance exacte (chaînes, nombres, booléens) |
est supérieur à / est supérieur ou égal à | Comparaisons numériques |
est inférieur à / est inférieur ou égal à | Comparaisons numériques |
contient | Vérification de sous-chaîne ou d’élément de tableau |
commence par / finit par | Préfixe / suffixe sur des chaînes (identifiants, URL) |
has_key / not_has_key | Vérifier qu’un objet JSON contient (ou non) une clé donnée |
Astuce : utilisez has_key / not_has_key lorsque seule la présence d’une clé compte, pas sa valeur — idéal pour les feature flags ou les champs optionnels.
Cibler les clés ou les valeurs
Lorsque vous cliquez sur Asserter ou Extraire sur un champ appartenant à un objet JSON, la modale affiche une bascule Cible avec deux options : Clé et Valeur. Elle vous permet de décider si l’assertion ou l’extraction porte sur le nom du champ ou sur son contenu. Le chemin est renseigné automatiquement pour vous — vous n’avez jamais besoin de l’écrire.
Valeur (par défaut) — agit sur le contenu du champ.
Clé — agit sur le nom du champ lui-même.
La bascule Cible n’apparaît que pour les valeurs qui sont enfants directs d’un objet JSON. Elle est masquée pour les éléments de tableau, les cartes de métriques (statut, durée) et les champs de réponse de premier niveau — il n’y a pas de clé à cibler dans ces cas.
Quand cibler la clé :
Vérifier qu’un objet de réponse expose toujours un nom de champ précis (test de contrat).
Extraire une clé générée dynamiquement (par exemple un identifiant utilisé comme clé de map) pour la réutiliser dans les étapes suivantes.
Exemple — à partir d’un corps de réponse produit :
{ "title": "Toold", "price": 9.99, "meta": { "barcode": "5784719087687", "qrCode": "https://cdn.dummyjson.com/public/qr-code.png" } }Cliquer sur Asserter pour
meta.barcodeavec Cible → Valeur vérifie que le code-barres vaut"5784719087687".Cliquer sur Asserter pour
meta.barcodeavec Cible → Clé vérifie que la réponse inclut toujours un champ littéralement nommé"barcode"— un simple test de contrat qui résiste aux changements de valeur.
Astuce : si vous voulez simplement vérifier qu’une clé existe, has_key sur l’objet parent est généralement plus simple. Utilisez Cible → Clé lorsque vous avez besoin du nom de la clé comme valeur (par exemple pour l’enregistrer dans une variable).
Extraire des clés et des valeurs dans des variables
L’extraction de variable stocke une portion de la réponse sous un nom de variable afin que les étapes suivantes puissent l’utiliser.
Pour extraire une valeur :
Dans l’inspecteur de réponse, localisez la valeur à réutiliser (carte de métrique ou nœud de l’arbre JSON).
Cliquez sur Extraire.
La modale d’extraction s’ouvre avec le chemin du champ pré-rempli.
Saisissez un nom de variable — le champ passe automatiquement en majuscules et retire les caractères invalides.
Cliquez sur Ajouter — une étape Extraction mécanique est ajoutée à la fin du cas de test.
Conventions de nommage recommandées :
AUTH_TOKEN,REFRESH_TOKEN— identifiantsUSER_ID,ORDER_ID,CART_ID— identifiants de ressourcesCREATED_AT,EXPIRES_AT— horodatagesTOTAL_COUNT,PAGE_COUNT— métadonnées numériques
Clés vs valeurs : utilisez has_key dans une assertion pour tester la présence d’une clé. Utilisez une extraction avec le nom de la clé comme nom de variable pour sauvegarder la valeur de cette clé en vue d’un usage ultérieur.
Utiliser l’inspecteur de réponse
L’inspecteur de réponse est la surface de découverte. Il comporte trois zones :
Cartes de métriques — statut, durée, durée de chargement.
Bouton Copier la réponse — copie le corps complet dans le presse-papiers.
Arbre JSON — vue dépliable du corps avec des actions par valeur.
Chaque clic sur Asserter ou Extraire ajoute immédiatement une nouvelle étape à la fin du cas de test. Ajoutez-les une par une — chaque étape apparaît dans la liste dès sa création et peut être réordonnée ou modifiée comme n’importe quelle autre étape.
Pourquoi c’est important : vous restez dans l’inspecteur de réponse tout le temps. Cliquez sur Asserter ou Extraire sur n’importe quelle valeur de l’arbre JSON et l’étape apparaît directement dans le cas de test — sans modale d’étape ni confirmation supplémentaire.
Exemples de bout en bout
Exemple 1 — Récupérer les données produit via l’API et les vérifier sur la boutique
Objectif : récupérer un produit réel du catalogue et vérifier que l’interface de la boutique affiche les mêmes valeurs.
Étape 1 — API :
GET /products/42. Variable de réponse :PRODUCT_RESPONSEÉtape 2 — Extraire (ajoutée depuis l’inspecteur) :
[PRODUCT_RESPONSE].body.title→PRODUCT_TITLEÉtape 3 — Extraire (ajoutée depuis l’inspecteur) :
[PRODUCT_RESPONSE].body.price→PRODUCT_PRICEÉtape 4 — Navigateur : aller sur
/shop/products/42Étape 5 — Assertion visuelle : la page affiche
[PRODUCT_TITLE]Étape 6 — Assertion visuelle : la page affiche
[PRODUCT_PRICE]
Exemple 2 — Créer un élément via l’API, puis continuer le parcours dans le navigateur
Objectif : créer un ticket de support via l’API pour que le test d’UI puisse l’ouvrir et agir dessus.
Étape 1 — API :
POST /ticketsavec le corps{"title": "Impossible de téléverser l’avatar"}. Variable de réponse :NEW_TICKETÉtape 2 — Extraire :
[NEW_TICKET].body.id→TICKET_IDÉtape 3 — Navigateur : aller sur
/support/tickets/[TICKET_ID]Étape 4 — Assertion visuelle :
Ticket #[TICKET_ID]est visible sur la pageÉtape 5 — Navigateur : cliquer sur Marquer comme résolu
Étape 6 — Assertion visuelle : le badge de statut Résolu est visible
Exemple 3 — Capturer des valeurs côté serveur pour que les étapes suivantes utilisent des données réelles
Objectif : lire le plan et les crédits actuels du compte, puis vérifier que les mêmes valeurs apparaissent sur la page de facturation.
Étape 1 — API :
GET /account/usage. Variable de réponse :USAGE_RESPONSEÉtape 2 — Asserter
[USAGE_RESPONSE].bodyhas_keyplanÉtape 3 — Extraire
[USAGE_RESPONSE].body.plan→CURRENT_PLANÉtape 4 — Extraire
[USAGE_RESPONSE].body.creditsRemaining→CREDITS_REMAININGÉtape 5 — Navigateur : aller sur
/settings/billingÉtape 6 — Assertion visuelle : la page de facturation affiche
[CURRENT_PLAN]Étape 7 — Assertion visuelle : la page de facturation affiche
[CREDITS_REMAINING]
Conseils et dépannage
Si vous voyez
Credential or Variable not found 'VARIABLE_NAME'à l’exécution, vérifiez l’orthographe et assurez-vous que l’étape qui produit la variable s’est exécutée avant celle qui la consomme.Les secrets (mots de passe, tokens) sont masqués par défaut dans les champs d’authentification — cliquez sur l’icône œil pour les révéler.
Environnements : chaque environnement conserve ses propres URL / en-têtes / corps pour une étape API, mais les variables extraites pendant une exécution sont partagées entre les étapes de cette exécution.
Besoin de tester un flux qui s’étend sur plusieurs exécutions ? Les variables d’étape extraites ne vivent que le temps d’une exécution de cas de test. Pour des valeurs qui doivent persister d’une exécution à l’autre, utilisez plutôt des variables de projet ou des variables d’environnement.
Autres lectures liées qui peuvent vous être utiles :
—> Variables














