Exécution
Exécutez un dossier, quelques requêtes ou tout l’espace de travail avec leurs vérifications, aussi souvent que vous voulez ou une fois par ligne d’un fichier de données.
L’Exécution envoie des requêtes les unes après les autres et vous dit lesquelles ont réussi. Une requête réussit quand elle obtient une réponse et que toutes les vérifications de son onglet Tests et de ses scripts sont satisfaites. Utilisez-la pour essayer toute une API après une modification, pour lancer les mêmes requêtes avec de nombreuses entrées, ou pour produire un rapport.

Lancer une exécution
Il y a plusieurs façons d’y accéder :
- Faites un clic droit sur un dossier dans la barre latérale et choisissez Exécuter le dossier, ou sur une requête et choisissez Exécuter la requête. L’exécution démarre aussitôt et la page Exécution s’ouvre.
- Sélectionnez plusieurs dossiers ou requêtes dans la barre latérale, faites un clic droit dessus et choisissez Exécuter N éléments.
- Choisissez Exécuter l’espace de travail dans la palette de commandes.
- Ouvrez la page Exécution, configurez l’exécution et choisissez Exécuter. L’Exécution se trouve dans la barre latérale sous Tests, ou choisissez Affichage › Exécution (⌥⌘R).
Sur la page Exécution, la carte Exécuter contient les réglages :
| Réglage | Ce qu’il fait |
|---|---|
| Quoi | Tout l’espace de travail, un dossier parmi Dossiers, ou une seule requête parmi Une requête |
| Environnement | L’environnement par rapport auquel les requêtes sont résolues, comme dans le reste de la fenêtre |
| Données | Choisir un CSV ou un JSON… pour un fichier de données : une itération par ligne |
| Itérations | Combien de fois exécuter l’ensemble, de 1 à 1 000. Avec un fichier de données, il indique Une par ligne de données |
| Délai | Une pause entre les requêtes, de 0 à 60 000 ms par pas de 100 |
| Nouvelles tentatives | Des tentatives supplémentaires pour une requête en échec, de 0 à 5 |
| En parallèle | Combien d’itérations s’exécutent côte à côte, de 1 à 32. Affiché quand il y a plus d’une itération |
| Arrêter au premier échec | Met fin à l’exécution à la première requête en échec |
Choisissez Exécuter (⌘R) pour démarrer, et Arrêter (⌘.) pour mettre fin à une exécution plus tôt. Tant qu’un environnement protégé est actif, le bouton affiche Exécuter dans Production… (avec le nom de cet environnement), et l’exécution demande confirmation avant d’envoyer quoi que ce soit. Voir environnements protégés.
Ce qui s’exécute, et dans quel ordre
Les requêtes s’exécutent dans leur ordre de la barre latérale : les requêtes d’un dossier de haut en bas, les dossiers qu’il contient à leur place. Chaque requête est envoyée exactement comme si vous l’envoyiez vous-même : mêmes variables, même authentification, mêmes scripts et mêmes vérifications. Les requêtes suivantes peuvent utiliser les réponses des précédentes dans la même exécution, grâce aux valeurs de réponse et aux variables que des scripts ou des captures définissent. Par exemple, une exécution de l’espace de travail Alpenglow envoie d’abord Auth › Sign in, qui capture le jeton que les requêtes d’Orders envoient.
Tous les types de requête peuvent s’exécuter :
- Les requêtes HTTP, GraphQL et gRPC et les appels MCP sont envoyés et vérifiés comme les autres.
- Les requêtes WebSocket, Socket.IO et MQTT se connectent, envoient leurs messages, événements ou publications
enregistrés qui sont activés pour les exécutions (et MQTT s’abonne à ses filtres activés), écoutent pendant
10 secondes, puis ferment la connexion. Le journal des messages sert de réponse : les vérifications sur le Corps
fonctionnent donc dessus. Pour écouter plus ou moins longtemps, définissez
stream-limit(en secondes) dans[settings]du fichier de la requête. - Un flux de server-sent events est conservé pendant 10 secondes, puis terminé.
Un script de pré-requête peut ignorer une requête avec pm.execution.skipRequest() ; le résultat indique Ignorée par
un script de pré-requête. Un script peut aussi sauter avec pm.execution.setNextRequest("Request name"), et mettre fin
à l’exécution avec pm.execution.setNextRequest(null). Une exécution qui ne cesse de revenir en arrière est arrêtée
après 10 000 envois dans une même itération.
Itérations et fichiers de données
Itérations exécute l’ensemble ce nombre de fois. Les valeurs {{$…}} comme {{$uuid}} sont nouvelles à chaque
fois, et pm.info.iteration indique de quelle itération il s’agit (à partir de 0).
Un fichier de données pilote l’exécution par les données : une itération par ligne, chaque colonne étant une variable
que les requêtes utilisent comme n’importe quelle autre, par exemple {{sku}}. Les scripts lisent la ligne avec
pm.iterationData.get("sku").
- CSV : une ligne d’en-tête avec les noms des variables, puis une ligne par itération. Les guillemets, les guillemets doublés et les sauts de ligne entre guillemets fonctionnent.
- JSON : un tableau d’objets, un objet par itération.
Par exemple, skus.csv pour une requête vers {{baseURL}}/products/{{sku}} avec une vérification que $.sku est égal
à {{sku}} :
sku,quantity
TNT-MH-2P,1
PCK-TIT-30,2ou la même chose en JSON :
[
{ "sku": "TNT-MH-2P", "quantity": 1 },
{ "sku": "PCK-TIT-30", "quantity": 2 }
]Le champ Données affiche le nom du fichier et son nombre de lignes. La croix à côté retire le fichier.
Itérations en parallèle
Avec plus d’une itération, En parallèle exécute plusieurs itérations côte à côte. Les requêtes d’une même itération restent dans l’ordre, et chaque itération garde les variables que ses propres scripts définissent : le jeton d’une itération ne fuit donc jamais dans une autre. Laissez-le sur 1 (l’une après l’autre) quand les itérations dépendent les unes des autres ou que le serveur limite la vitesse à laquelle vous pouvez l’appeler.
Nouvelles tentatives, délais et arrêt
- Nouvelles tentatives renvoie une requête en échec, jusqu’à ce nombre de fois. Une requête échoue quand elle n’obtient aucune réponse ou qu’une vérification échoue. Le résultat indique combien de tentatives il a fallu, comme 3 tentatives, et garde la dernière.
- Délai attend entre les requêtes, pour les serveurs qui limitent le débit, comme l’API de démo.
- Arrêter au premier échec met fin à l’exécution quand une requête échoue, après ses nouvelles tentatives. Le résumé indique alors Arrêtée sur un échec.
Résultats
Pendant l’exécution, la liste se remplit et montre la requête en cours d’envoi. Au-dessus se trouvent les compteurs : Requêtes, Réussi, Échec, Vérifications en échec et, à la fin, Durée, avec Toutes réussies ou N en échec.
Chaque ligne affiche le type ou la méthode de la requête, son nom et son adresse, l’état et la durée. Avec plusieurs
itérations, #2 indique à quelle itération appartient une ligne. Sous une requête en échec figurent les vérifications
qui ont échoué, chacune avec son message, ou la raison de l’absence de réponse. Cliquez sur une ligne pour ouvrir la
requête.
La page conserve la dernière exécution tant que la fenêtre est ouverte. Chaque échange d’une exécution se trouve aussi dans l’Historique, marqué comme provenant de l’Exécution.
Rapports
Après une exécution, Enregistrer le rapport dans la carte Résultats l’enregistre dans un fichier :
| Format | Pour |
|---|---|
| JUnit XML… | Les systèmes d’intégration continue et les tableaux de bord de tests |
| JSON… | Vos propres outils |
| HTML… | Une page à lire ou à partager |
| HAR (tous les échanges)… | Chaque requête et chaque réponse de l’exécution, pour les outils de développement d’un navigateur ou d’autres outils HTTP |
Les rapports JUnit, JSON et HTML masquent les secrets dans les adresses, les valeurs de vérification et les messages, ainsi que dans les tests de script et les journaux qu’ils contiennent.
Exécuter depuis la ligne de commande
echolot run exécute le même espace de travail avec les mêmes réglages, pour l’intégration continue et le terminal :
itérations, fichiers de données, délais, nouvelles tentatives, itérations en parallèle et les mêmes formats de rapport.
Voir echolot run et exécuter en CI.
Scripts et tests
Vérifiez chaque réponse sans code dans l’onglet Tests, ou avec JavaScript dans des scripts de pré-requête et de test.
GraphQL
Écrivez des requêtes GraphQL avec complétion depuis le schéma, construisez-les en cochant des champs, et lisez les erreurs, les abonnements et les résultats incrémentaux.
