La plupart des tests d’API s’exécutent de façon linéaire : connexion, paiement, reçu, assertions. Ce modèle échoue dès qu’une étape conditionne les suivantes. Si la connexion renvoie 401, lancer le paiement ne sert à rien et produit souvent une erreur secondaire qui masque la cause réelle. Un scénario robuste doit lire la réponse de connexion, décider de continuer ou non, puis signaler précisément l’étape en échec.
Essayez Apidog dès aujourd’hui
Cette logique repose sur le contrôle de flux. Dans ce guide, vous allez créer une branche if/else dans Apidog : exécuter une connexion, vérifier son code de statut, puis créer un paiement uniquement si la connexion a réussi. Si vous débutez avec les scénarios Apidog, consultez ce guide pour écrire un scénario de test. Pour les bases du modèle if/else, voir le guide MDN sur les instructions conditionnelles.
Contrôle de flux : quand utiliser une branche
Dans Apidog, les tests automatisés se construisent dans le module Tests, sous forme de scénarios de test (Test Scenarios). Un scénario contient des étapes de test (Test Steps) :
- une requête HTTP ;
- ou un élément de contrôle de flux, comme une branche, une boucle ou un délai.
Le Branchement Conditionnel (Conditional Branching) est l’équivalent d’un if/else : il évalue une condition, exécute les étapes du bloc If si elle est vraie, ou celles du bloc Sinon si elle est fausse.
Consultez la documentation Apidog sur le contrôle de flux et le branchement conditionnel pour le détail des options disponibles.
Une branche ne remplace pas une boucle.
- Une branche prend une décision une fois.
- Une boucle répète un bloc d’étapes.
Pour itérer sur une liste d’identifiants, utilisez une boucle
ForEach, décrite dans le tutoriel sur les boucles ForEach.
Objectif : ne payer que si la connexion réussit
Le flux cible est le suivant :
Connexion
├── statut = 200 → Créer le paiement
└── statut ≠ 200 → Signaler l’échec et arrêter
Ainsi, une authentification invalide ne déclenche jamais une requête de paiement.
Étape 1 — Créer un scénario de test
- Ouvrez le module Tests dans Apidog.
- Cliquez sur
+à côté de la barre de recherche. - Créez un nouveau Test Scenario.
- Choisissez son répertoire et sa priorité.
- Validez la création.
Vous disposez maintenant d’un scénario vide.
Étape 2 — Ajouter la requête de connexion
Ajoutez une première Test Step. Vous pouvez importer une requête existante, un cas d’endpoint, une commande cURL ou créer une requête personnalisée.
Pour cet exemple, ajoutez une requête POST vers votre endpoint d’authentification :
POST https://api.your-store.com/v1/login
Content-Type: application/json
{
"email": "dana@example.com",
"password": "correct-horse-battery-staple"
}
Exécutez cette étape seule pour vérifier la réponse. Une connexion réussie peut renvoyer :
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"userId": "usr_10482"
}
Le statut HTTP attendu est 200.
Étape 3 — Passer en mode orchestration
Cliquez sur une étape pour ouvrir le mode orchestration :
- le panneau de gauche affiche le flux du scénario ;
- le panneau de droite affiche la configuration de l’étape sélectionnée.
Vous pouvez réordonner les étapes en faisant glisser l’icône ≡.
Étape 4 — Ajouter une branche conditionnelle
- Cliquez sur
Ajouter une étape(Add Step). - Sélectionnez
Branchement Conditionnel(Conditional Branching). - Configurez le bloc If pour vérifier le résultat de la connexion.
Apidog propose notamment les opérateurs suivants :
Est égal àN'est pas égal àExisteN'existe pasInférieur àInférieur ou égal àSupérieur àSupérieur ou égal àCorrespond à une expression régulièreContientNe contient pasEst videN'est pas videDans la listePas dans la liste
Dans ce scénario, la condition est simplement :
statut de la réponse de connexion Est égal à 200
Étape 5 — Réutiliser la réponse de connexion
Vous avez deux approches pour fournir une valeur à la condition.
Option A : récupérer les données de l’étape précédente
Dans le champ de valeur de la condition :
- Cliquez sur l’icône de baguette magique.
- Sélectionnez
Récupérer les données de l'étape précédente. - Choisissez l’étape de connexion.
- Sélectionnez son code de statut.
Apidog crée en interne une référence de pré-étape telle que :
{{$.<step id>.response.body.<field path>}}
Par exemple, pour récupérer le jeton de l’étape 1 :
{{$.1.response.body.token}}
Points importants :
- cette fonctionnalité est disponible dans le module Tests, pas dans le module APIs ;
- elle se résout uniquement lors de l’exécution du scénario complet ;
- si vous exécutez une étape seule, la référence peut sembler vide.
Option B : extraire une variable nommée
Utilisez cette méthode si vous devez réemployer la valeur dans plusieurs modules, branches ou requêtes.
Dans la requête de connexion :
- Ouvrez les post-processeurs.
- Ajoutez l’action
Extraire la variable(Extract Variable). - Utilisez une expression JSONPath, par exemple :
$.token
- Donnez un nom à la variable, par exemple
token.
Vous pourrez ensuite l’utiliser dans les étapes suivantes :
{{token}}
Pour aller plus loin, consultez le guide expliquant comment passer des données entre les étapes de test.
Étape 6 — Ajouter le chemin Sinon
Survolez le bloc If, puis cliquez sur + Sinon.
Configurez ensuite chaque branche.
Dans le bloc If : créer le paiement
Ajoutez votre requête de paiement. Elle ne s’exécutera que si la connexion renvoie 200.
Si l’API attend un jeton Bearer, ajoutez-le à l’en-tête :
Authorization: Bearer {{token}}
Vous pouvez aussi utiliser une référence de pré-étape vers le corps de la réponse de connexion. Ce format correspond au modèle utilisé par la documentation de l’API Stripe pour les appels authentifiés.
Dans le bloc Sinon : rendre l’échec explicite
Ajoutez une étape qui signale clairement l’échec, par exemple :
- une requête vers un endpoint de journalisation ;
- une notification vers votre système d’alerting ;
- une requête personnalisée contenant une assertion qui échoue toujours.
L’objectif est que le rapport de scénario indique que l’échec vient de la connexion, et non du paiement.
Étape 7 — Enregistrer et tester les deux chemins
Cliquez sur Enregistrer tout (Save All).
Exécutez ensuite le scénario complet avec deux jeux d’identifiants :
- Identifiants valides : le bloc If exécute la requête de paiement.
- Identifiants invalides : le bloc Sinon s’exécute et le paiement est ignoré.
Variantes utiles
Brancher sur un champ du corps de réponse
Vous n’êtes pas limité au code HTTP.
Supposons qu’une connexion renvoie 200, mais qu’un compte verrouillé soit indiqué dans le corps :
{
"status": "locked"
}
Vous pouvez utiliser :
{{$.1.response.body.status}}
Puis configurer la condition :
status Est égal à "active"
Les opérateurs permettent aussi de tester :
- un solde avec
Supérieur à; - un rôle autorisé avec
Dans la liste; - un message d’erreur avec
Contient.
Combiner branches et boucles
Vous pouvez ajouter une branche à l’intérieur d’une boucle ForEach.
Exemple : parcourir une liste de produits et ignorer ceux qui sont en rupture de stock.
Les références de boucle suivent ce format :
{{$.<loop step id>.index}}
{{$.<loop step id>.element.<field path>}}
L’index commence à 0. Pour un exemple complet, consultez le tutoriel sur les boucles ForEach.
Arrêter une boucle avec Break If
Dans une boucle, l’élément Break If condition arrête l’itération dès qu’une condition est satisfaite. Vous pouvez le déplacer dans le flux et l’ajouter plusieurs fois dans une même boucle.
Gérer une erreur de boucle avec On Error
L’élément On Error est placé au début d’une boucle. Il permet de choisir le comportement lorsqu’une requête échoue :
-
Ignorer: passe à la requête suivante ; -
Continuer: ignore le reste du cycle en cours ; -
Arrêter l'exécution: quitte la boucle et poursuit après elle ; -
Terminer l'exécution: arrête tout le scénario.
Ajouter un délai avec Wait
Utilisez Wait lorsqu’un service asynchrone a besoin d’un délai avant qu’une écriture soit visible.
Exemple courant :
POST /orders
→ Wait 1000 ms
→ GET /orders/{id}
Utiliser des valeurs dans un script
La syntaxe {{variable}} ne fonctionne pas directement dans les scripts de pré-traitement ou de post-traitement.
Utilisez plutôt :
pm.variables.get("$.2.response.body.token")
Adaptez l’identifiant de l’étape et le chemin du champ.
Pour les scénarios de chaînage plus complets, consultez les guides sur le chaînage de requêtes et l’orchestration des tests d’API avec passage de données.
Un scénario ne peut pas se référencer lui-même. Cette restriction évite les boucles infinies lors de l’imbrication de scénarios.
Exécuter le scénario en CI avec Apidog CLI
Une fois votre scénario enregistré, vous pouvez l’exécuter sans interface graphique avec Apidog CLI.
Installez le CLI, puis connectez-vous :
npm install -g apidog-cli
apidog login --with-token <YOUR_ACCESS_TOKEN>
Exécutez ensuite le scénario par son identifiant :
apidog run --access-token $APIDOG_ACCESS_TOKEN -t <scenario_id> -e <env_id> -r cli
Paramètres :
-
-t: identifiant du scénario de test ; -
-e: identifiant de l’environnement ; -
-r: rapporteur.
Vous pouvez générer plusieurs rapports :
apidog run \
--access-token $APIDOG_ACCESS_TOKEN \
-t <scenario_id> \
-e <env_id> \
-r html,cli
Utilisez :
-
clipour la sortie console ; -
htmlpour un rapport HTML ; -
junitpour les artefacts compatibles avec les outils CI.
La branche est évaluée exactement comme dans l’interface : le CLI lit la réponse de connexion, choisit le chemin If ou Sinon, puis retourne un code de sortie exploitable par votre pipeline.
Ressources complémentaires :
FAQ
Quelle est la différence entre une branche conditionnelle et une boucle ?
Une branche conditionnelle décide une fois quel bloc exécuter. Une boucle répète un bloc.
Utilisez une branche pour un choix tel que :
Si la connexion réussit → créer le paiement
Sinon → arrêter et signaler l’échec
Utilisez For ou ForEach pour traiter plusieurs valeurs ou éléments.
Pourquoi Récupérer les données de l'étape précédente est-il vide ?
Deux causes fréquentes :
- cette fonction est disponible uniquement dans le module Tests ;
- elle est résolue lorsque vous exécutez le scénario complet, pas une étape isolée.
Lancez le scénario entier pour alimenter la référence.
Puis-je tester un champ du corps de réponse plutôt que le statut HTTP ?
Oui. Utilisez une référence telle que :
{{$.1.response.body.status}}
Ou extrayez la valeur dans une variable nommée. Vous pouvez ensuite appliquer un opérateur comme Est égal à, Contient ou Dans la liste.
Voir aussi : passer des données entre les étapes de test.
Comment utiliser une variable dans un script ?
Utilisez pm.variables.get() plutôt que la syntaxe {{variable}} :
pm.variables.get("$.2.response.body.token")
Le branchement conditionnel nécessite-t-il un plan particulier ou une installation auto-hébergée ?
La documentation Apidog ne mentionne pas de restriction de plan ni de différence entre cloud et auto-hébergement pour le contrôle de flux, le branchement conditionnel, les boucles ou le passage de données. Si vous pouvez créer un scénario, vous pouvez y ajouter des branches.
En résumé
Un scénario linéaire indique qu’une erreur s’est produite. Un scénario avec branchement conditionnel indique où elle s’est produite et évite les appels qui ne peuvent plus réussir.
La mise en œuvre est simple :
- ajoutez la requête de connexion ;
- ajoutez un
Branchement Conditionnel; - récupérez le code de statut ou une valeur de réponse ;
- envoyez le chemin valide vers le paiement ;
- envoyez le chemin invalide vers une étape d’échec explicite ;
- exécutez le même scénario avec
apidog rundans votre CI.
Essayez Apidog gratuitement et transformez vos suites de tests linéaires en scénarios capables de prendre des décisions.



Top comments (0)