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 Vérifier 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.
Enregistrer une valeur comme variable de projet ou d’environnement, qui reste disponible après l’exécution.
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 fenêtre 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 Enregistrer la réponse sous, 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 compatible pour ouvrir l’auto-complétion de l’Éditeur de variables et choisir parmi les variables disponibles.
Vérifier 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 vérifier une métrique :
Cliquez sur Vérifier (ou ouvrez le menu
⋯sur les écrans étroits) sur la carte Code de statut.La fenêtre 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 |
Vérifier 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 vérifier une valeur JSON :
Dépliez l’arbre JSON jusqu’au champ qui vous intéresse.
Cliquez sur Vérifier à 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 une assertion.
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 / se termine par | Préfixe / suffixe sur des chaînes (identifiants, URL) |
possède la clé / ne possède pas la clé | Vérifier qu’un objet JSON contient (ou non) une clé donnée |
Astuce : utilisez possède la clé / ne possède pas la clé 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 Vérifier ou Extraire sur un champ appartenant à un objet JSON, la fenêtre 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": "Essence Mascara Lash Princess",
"price": 9.99,
"meta": {
"barcode": "5784719087687",
"qrCode": "https://cdn.dummyjson.com/public/qr-code.png"
}
}Cliquer sur Vérifier pour
meta.barcodeavec Cible → Valeur vérifie que le code-barres vaut"5784719087687".Cliquer sur Vérifier 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, possède la clé 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 fenêtre d’extraction s’ouvre avec le chemin du champ prérempli.
Dans Enregistrer sous, saisissez un nom de variable — le champ passe automatiquement en majuscules et retire les caractères invalides.
Cliquez sur Extraire — une étape EXTRACT est ajoutée à la fin du cas de test.
Enregistrer une valeur comme variable de projet ou d’environnement
Une variable extraite ne vit que le temps d’une exécution. Pour garder une valeur pour les exécutions suivantes et pour d’autres cas de test, par exemple un jeton, enregistrez-la comme variable de projet ou d’environnement. Cette action n’ajoute aucune étape au cas de test.
Pour enregistrer une valeur de la réponse :
Dans l’inspecteur de réponse, survolez une valeur de l’arbre JSON. Vérifier, Extraire et Enregistrer apparaissent à côté. Sur une carte de métrique, Vérifier, Extraire et Enregistrer s’affichent en boutons, ou, sur une carte étroite, dans son bouton d’actions.
Cliquez sur Enregistrer.
La fenêtre Créer une variable s’ouvre. La Clé est suggérée à partir du chemin du champ, par exemple
body.userIddonneUSER_ID, et la Valeur contient la valeur du champ, ici1. La fenêtre affiche aussi les interrupteurs Marquer comme modifiable et Stocker comme identifiant sécurisé.Sous Portée, choisissez Niveau projet, ou Environnement et un environnement. La fenêtre s’ouvre sur l’environnement de l’exécution.
Modifiez la clé si besoin, puis cliquez sur Créer.
Pour enregistrer le corps complet de la réponse :
Sous l’étape API, survolez la puce de réponse dans « Réponse API complète stockée dans
[API_RESPONSE_1]».Cliquez sur Enregistrer comme variable.
La même fenêtre Créer une variable s’ouvre. La Valeur contient le corps de la réponse, et la Clé est suggérée à partir de la requête, par exemple
GET_ORDERS_RESPONSEpourGET /orders.Choisissez la portée, puis cliquez sur Créer.
La clé suggérée ne reprend jamais un nom déjà utilisé dans la portée choisie. Une clé compte 30 caractères au maximum. Une valeur compte 2048 caractères au maximum : pour un corps de réponse plus grand, la fenêtre affiche « La valeur est trop longue. Limitez-la à 2048 caractères ou moins. » et Créer reste indisponible. Dans ce cas, enregistrez plutôt un seul champ depuis l’inspecteur de réponse.
Enregistrer et Enregistrer comme variable ne s’affichent pas sur un rapport d’exécution en lecture seule.
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 Vérifier 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 Vérifier ou Extraire sur n’importe quelle valeur de l’arbre JSON et l’étape apparaît directement dans le cas de test — sans fenêtre 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 — Vérifier
[USAGE_RESPONSE].bodypossède la cléplanÉ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, jetons) 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





![La fenêtre d’assertion pour statusCode, avec le chemin [API_RESPONSE_1].statusCode, l’opérateur est égal à et la valeur 200.](https://thunders-6fbf8a501c83.intercom-attachments-1.com/i/o/f19m93lh/2776681975/3a5ff758016d5b660856fbd6e004/ApiResponse_AssertMetric_1_fr.png?expires=1793820600&signature=6d940f238de7485e967bccfecfbeae55b2eec9717fd8acfd7c6a4d3ef23860ed&req=dicgEM92nIhYXPMW1HO4zSxO2GvtGY7dRdSEq6rcBiVjZfrSA2aN%2BD3vFsfT%0AnBM9B4p1bZn4Dac75jc%3D%0A)
![La nouvelle étape d’assertion à la fin du cas de test : [API_RESPONSE_1].statusCode est égal à 200.](https://thunders-6fbf8a501c83.intercom-attachments-1.com/i/o/f19m93lh/2776682025/c6b3687ce080a7852a49f5a74f32/ApiResponse_AssertMetric_2_fr.png?expires=1793820600&signature=467b8e6d1e43bb9bbac81d1642ae493eed4f130b1ce4145e835997633f91c60b&req=dicgEM92n4FdXPMW1HO4zW1ZEn9o0cMtKBJwu4yKNjNlx19jG1%2FrL9O6PRMG%0AdqO%2F6XKfZFJUYsQXrZM%3D%0A)

![La nouvelle étape d’assertion : [API_RESPONSE_1].body.title est égal à Essence Mascara Lash Princess.](https://thunders-6fbf8a501c83.intercom-attachments-1.com/i/o/f19m93lh/2776682116/208284d1948e536ab1b90439bb82/ApiResponse_AssertJson_2_fr.png?expires=1793820600&signature=ef668eb7ff717c5accf809b821e2ded4c4da3f21ab43c0c354603cfdfc990dad&req=dicgEM92n4BeX%2FMW1HO4zTLnTLYY328iFV5Ve2xyS6iQR5rnC5a23z6A6ZmK%0AYTMQTha87uGIK2PHvAo%3D%0A)




![La nouvelle étape EXTRACT : [API_RESPONSE_1].body.meta.@keys[2] enregistrée dans [BARCODE].](https://thunders-6fbf8a501c83.intercom-attachments-1.com/i/o/f19m93lh/2776682495/66e33842a2c48a98ae08489caad5/ApiResponse_Extract_2_fr.png?expires=1793820600&signature=f01a7ebcad6c3d1a307e2a18b75fe759e902c8ae4b1e44eff1e0411c3738a01e&req=dicgEM92n4VWXPMW1HO4zVoLML9gEzK4E0oBbpn%2BGUa9%2Bc91FwAzodPEJ0hA%0ATup%2BdxeFFTGzddrDIzs%3D%0A)

