Comment transférer des données entre les étapes de test dans Apidog ?

Oliver Kingsley

Oliver Kingsley

6 August 2025

Comment transférer des données entre les étapes de test dans Apidog ?

Lors de la conception de flux de travail de test automatisés dans Apidog, vous utiliserez différents types d'étapes de test, telles que les requêtes **API, les requêtes de base de données, les boucles For, les boucles ForEach, les scripts**, et plus encore.

types d'étapes de test

Souvent, les données produites lors d'une étape doivent être utilisées lors d'une étape ultérieure. Cela crée un flux logique où les **données pilotent le processus** et les **étapes sont liées entre elles**.

Par exemple, vous pourriez :

Cela soulève une question importante :

Comment référencer correctement les données des étapes précédentes (en amont) dans les étapes qui suivent (en aval) ?

Deux mécanismes de transmission de données dans Apidog

Dans les tests automatisés d'Apidog, il existe deux méthodes principales pour transmettre des données entre différentes étapes de test :

1. Récupérer les données de l'étape précédente via les "Valeurs Dynamiques"

Vous pouvez directement référencer la sortie d'une étape précédente (en amont) dans une étape ultérieure (en aval) en utilisant la fonction "Valeur Dynamique". Cela vous permet de récupérer des données à la volée sans les stocker.

Récupérer les données de l'étape précédente via les "Valeurs Dynamiques" dans les tests automatisés Apidog

2. Stocker les variables et les réutiliser

Vous pouvez extraire des données importantes d'une étape en amont et les **stocker en tant que variable**. Ces variables peuvent ensuite être réutilisées dans n'importe quelle étape suivante.

La maîtrise de ces deux méthodes de transmission de données est essentielle pour construire des flux de travail automatisés efficaces et axés sur les données dans Apidog.

Cet article explique comment gérer les données dans différents types d'étapes de test sous deux angles : **comment extraire les données** et **comment les utiliser**. En comprenant les deux, vous pourrez construire des flux de travail de test plus flexibles et mieux connectés.

Extraction et utilisation des données de réponse de point de terminaison

Comprendre les données de réponse de point de terminaison

Dans les tests automatisés, les requêtes API renvoient généralement des **réponses JSON** structurées, qui servent souvent d'**entrée pour les étapes de test ultérieures**.

Contrairement à d'autres types d'étapes, les réponses de point de terminaison ont tendance à être plus complexes — incluant fréquemment des **objets et des tableaux imbriqués**.

Comment extraire des données d'une réponse de point de terminaison

Il existe deux façons principales d'extraire et de transmettre les données de réponse de point de terminaison entre les étapes de test :

Première méthode : Référence de valeur dynamique

Utilisez les "Valeurs Dynamiques" pour référencer directement les données des étapes précédentes :

Deuxième méthode : Extraire les données en tant que variables

Vous pouvez également utiliser la fonction "Extraire les variables" dans les post-processeurs de point de terminaison pour extraire des champs spécifiques de la réponse en tant que variables.

Par exemple, pour extraire l'id des produits dans une réponse :

Dans les étapes ultérieures, il suffit de le référencer en utilisant {{products_id}}.

Comment utiliser les données extraites d'une réponse de point de terminaison

Une fois que vous avez extrait des données d'une réponse API — soit en utilisant les "Valeurs Dynamiques" soit les "Variables Extraites" — vous pouvez utiliser ces données dans les étapes en aval de plusieurs manières :

1. Utiliser les données dans les requêtes de point de terminaison

Utiliser les données extraites dans les requêtes API

2. Utiliser les données dans les opérations de base de données

Vous pouvez utiliser la réponse API comme entrée dans une requête de base de données. Les deux méthodes fonctionnent :

SELECT * FROM products WHERE id = '{{$.1.response.body.products[0].id}}'

Utilisez des valeurs dynamiques pour référencer directement les données de réponse API dans la requête SQL :

SELECT * FROM products WHERE id = '{{products_id}}'

3. Utiliser les données dans une boucle For

Pour répéter des étapes en fonction de la longueur d'un tableau issu d'une réponse API :

{{$.1.response.body.products.length}}

Cela définit le nombre d'itérations de la boucle.

Utiliser les données dans la boucle For

4. Utiliser les données dans les boucles ForEach

Si vous souhaitez parcourir chaque élément d'un tableau renvoyé par un point de terminaison :

Utiliser les données dans les boucles ForEach via la méthode de valeur dynamique

5. Utiliser les données dans les scripts

Pour utiliser les données des étapes précédentes à l'intérieur d'un **script**, utilisez la méthode pm.variables.get(). Voici comment :

const products = pm.variables.get("$.1.response.body.products")
Utiliser les données extraites dans les scripts via la méthode de valeur dynamique

Obtenir la valeur d'une variable temporaire :

const products = pm.variables.get("products") 

Obtenir la valeur d'une variable d'environnement :

const products = pm.environment.get("products") 

Obtenir la valeur d'une variable globale :

const products = pm.globals.get("products")
💡
Dans les scripts, vous ne pouvez pas utiliser directement la syntaxe d'interpolation comme {{products}}. Au lieu de cela, vous devez récupérer les valeurs des variables en utilisant les méthodes appropriées mentionnées ci-dessus.

Extraction et utilisation des résultats de requêtes de base de données

Comprendre les données de base de données

Lorsqu'une étape de requête de base de données est exécutée, elle renvoie des données structurées sous la forme d'un tableau d'objets. Même si un seul enregistrement est renvoyé, il sera toujours enveloppé dans un tableau. Par exemple :

résultats des requêtes de base de données dans Apidog

Contrairement aux réponses de point de terminaison, les **données des étapes de base de données ne peuvent pas être directement accédées à l'aide de variables dynamiques**. Vous devez d'abord extraire les valeurs dans des variables.

Comment extraire des données de la base de données

Après l'exécution de la requête SQL dans une étape de base de données, Apidog analysera automatiquement la réponse en données structurées, comme ceci :

[
  {
    "id": "1000",
    "title": "Titre 1",
    "description": "Description pour le Titre 1"
  }
]

Vous pouvez ensuite utiliser **JSONPath** pour extraire des champs spécifiques et les enregistrer en tant que variables.

Par exemple :

utiliser JSONPath pour extraire des champs spécifiques et les enregistrer en tant que variables

Comment utiliser les données extraites d'une base de données

1. Utiliser les données dans les requêtes de point de terminaison

Si votre requête de base de données renvoie un ID et que vous l'avez enregistré en tant que variable (products_id), vous pouvez l'utiliser directement dans une requête de point de terminaison en aval :

utiliser les données extraites de la base de données dans les requêtes de point de terminaison

2. Utiliser les données dans les boucles ForEach

Si votre requête renvoie une liste d'enregistrements et que vous souhaitez traiter chacun d'eux individuellement, vous pouvez utiliser le tableau entier comme source pour une boucle ForEach :

La prémisse est que vous enregistrez le tableau entier lors de l'extraction des variables dans les opérations de base de données, par exemple :

3. Utiliser les données dans les scripts

Pour utiliser les variables de base de données extraites dans un script, utilisez la même méthode qu'avec les autres variables.

Obtenir la valeur d'une variable temporaire :

const products = pm.variables.get("products")

Obtenir la valeur d'une variable d'environnement :

const products = pm.environment.get("products")

Obtenir la valeur d'une variable globale :

const products = pm.globals.get("products")

Extraction et utilisation des données des boucles For

Comment fonctionnent les boucles For ?

Une **boucle For** est utilisée pour répéter un ensemble spécifique d'actions plusieurs fois. Elle s'exécute en fonction d'un nombre défini d'itérations.

Vous pouvez soit définir un nombre fixe de répétitions de la boucle, soit utiliser une valeur dynamique comme la longueur d'un tableau .length renvoyée par une étape précédente. Par exemple : {{$.1.response.body.products.length}} :

Note : Contrairement aux autres étapes qui produisent des données, une **boucle For ne renvoie pas directement de données**. Elle fournit uniquement une valeur d'index (à partir de 0) pour indiquer le nombre de fois que la boucle a été exécutée.

Comment extraire des données des boucles For

Pendant le processus d'exécution, vous pouvez accéder à l'index de la boucle actuelle en utilisant la syntaxe de variable dynamique : {{$.9.index}}

Comment utiliser les données extraites des boucles For

1. Utiliser les données dans les scripts

Si vous souhaitez utiliser des informations liées à la boucle dans votre script de test, vous pouvez utiliser pm.variables.get() pour obtenir l'index actuel :

// Obtenir l'index de la boucle actuelle
const index = pm.variables.get("$.7.index");
Utiliser les données extraites des boucles for dans les scripts

2. Utiliser les données avec d'autres sources de données

Un cas d'utilisation courant d'une boucle For est de traiter des données provenant d'étapes antérieures — comme parcourir un tableau et gérer chaque élément :

// Obtenir le tableau d'une étape précédente
const products = pm.variables.get("$.1.response.body.products");

// Obtenir l'index de la boucle actuelle
const index = pm.variables.get("$.7.index");

// Accéder à l'élément actuel du tableau en utilisant l'index
console.log(products[index]);

Cela vous permet d'effectuer des opérations par lot sur chaque élément du tableau à chaque itération de la boucle.

Extraction et utilisation des données de la boucle ForEach

Comment fonctionne la boucle ForEach ?

La boucle ForEach est spécifiquement conçue pour les données de tableau. Elle itère automatiquement sur chaque élément du tableau et effectue le même ensemble d'opérations.

La principale différence entre une boucle ForEach et une boucle For est que la boucle ForEach extrait automatiquement les données complètes de l'élément de tableau actuel à chaque itération, les rendant directement accessibles dans ses étapes enfants.

Accéder aux données dans une boucle ForEach

Au sein d'une boucle ForEach, le système crée automatiquement deux variables spéciales :

Note : Le chiffre 4 fait référence à l'ID de l'étape de la boucle ForEach. Dans votre flux de travail réel, remplacez-le par l'ID d'étape correct de votre processus.

Cas d'utilisation courants des données de la boucle ForEach

1. Utiliser les données dans les requêtes de point de terminaison

Les boucles ForEach sont parfaites pour gérer les opérations de données par lots. Par exemple, si vous avez un tableau d'éléments, vous pouvez automatiquement envoyer une requête de point de terminaison pour chaque élément du tableau. Pendant chaque boucle, le même modèle de requête est réutilisé, mais rempli avec des données différentes, telles que {{$.4.element.id}}.

2. Utiliser les données dans les opérations de base de données

Vous pouvez utiliser les données de l'élément de boucle actuel pour exécuter des requêtes de base de données ou insérer plusieurs lignes.

Exemple : Interroger la base de données en utilisant le champ de l'élément actuel

SELECT * FROM products WHERE id = '{{$.4.element.id}}' 

L'expression {{$.4.element.id}} est accessible via la fonction de valeur dynamique.

Insertion de plusieurs champs de l'élément actuel dans une table :

INSERT INTO products (id, title) VALUES ('{{$.4.element.id}}', '{{$.4.element.title}}') 

3. Utiliser les données dans les scripts

Si vous avez besoin de traiter davantage les données de la boucle dans un script personnalisé, vous pouvez utiliser la méthode pm.variables.get() pour récupérer les valeurs :

// Obtenir l'élément actuel
const item = pm.variables.get("$.4.element");

// Obtenir l'index actuel
const index = pm.variables.get("$.4.index");

Extraction et utilisation des données des scripts

Comment fonctionnent les données de script

Contrairement aux autres étapes d'un flux de travail, les scripts ne génèrent pas automatiquement de sortie qui peut être utilisée directement dans les étapes suivantes. Si vous souhaitez transmettre des données d'un script aux étapes ultérieures, vous devez les stocker manuellement dans une variable.

Comment extraire des données d'un script

Vous pouvez enregistrer des valeurs dans différents types de variables comme ceci :

// Obtenir les données de réponse JSON
// 1. À partir de la réponse de point de terminaison actuelle
// const currentData = pm.response.json();

// 2. Ou les obtenir d'une étape précédente en utilisant une valeur dynamique
const preData = pm.variables.get("$.1.response.body");

// Enregistrer dans les variables d'environnement
pm.environment.set('products', preData.products);
pm.environment.set('products_id', preData.products[0].id);

// Enregistrer dans les variables globales
pm.globals.set('products', preData.products);

// Enregistrer dans les variables temporaires (valides uniquement pendant cette exécution)
pm.variables.set('products', preData.products);

Une fois les variables extraites et définies, vous pouvez les référencer dans les étapes ultérieures en utilisant la syntaxe {{nomVariable}}.

Comment utiliser les données extraites des scripts

1. Utiliser les données dans les requêtes de point de terminaison

Les variables définies dans un script peuvent être directement utilisées comme paramètres dans les requêtes de point de terminaison en aval. Par exemple, si vous enregistrez products_id dans le script, vous pouvez le référencer dans une requête ultérieure comme ceci : {{products_id}}.

Utiliser les données extraites dans les requêtes API

2. Utiliser les données dans les opérations de base de données

Les variables de script peuvent également être utilisées pour construire des instructions SQL dynamiques. Par exemple :

SELECT * FROM products WHERE id = '{{products_id}}'

3. Utiliser les données dans la boucle For

Vous pouvez utiliser un script pour générer le nombre d'itérations de la boucle ou d'autres valeurs intermédiaires, les stocker en tant que "variables temporaires" et les transmettre à l'étape de la **boucle For** :

pm.variables.set("loopCount", 5); 

Ensuite, dans les paramètres de la boucle, utilisez {{loopCount}} comme nombre d'itérations.

4. Utiliser les données dans les boucles ForEach

Vous pouvez stocker un tableau entier dans une variable et l'utiliser comme source de données pour une **boucle ForEach**.

Exemple :

// Récupérer éventuellement le tableau d'une étape précédente en utilisant des valeurs dynamiques
// const preData = pm.variables.get("$.1.response.body.products")

const preData = [{id: 1}, {id: 2}, {id: 3}];

// Enregistrer dans une variable d'environnement
pm.environment.set('products', preData);

Ensuite, dans la **boucle ForEach**, définissez la source de données sur {{products}}.

Conclusion

Pour construire un flux de travail de test automatisé efficace, il est essentiel de comprendre comment extraire et utiliser les données des différents types d'étapes :

En combinant le **référencement de valeurs dynamiques** avec l'**extraction de variables**, vous pouvez concevoir un processus de test flexible et puissant, axé sur les données.

Meilleures pratiques pour la transmission de données :

Choisir la bonne méthode en fonction de la complexité des données et de la fréquence d'utilisation rendra votre flux de travail plus maintenable et efficace.

Pratiquez le Design-first d'API dans Apidog

Découvrez une manière plus simple de créer et utiliser des API