web-dev-qa-db-fra.com

Exécution d'une demande dans Postman Plusieurs fois avec différentes données ne fonctionnent qu'une fois

Je suis nouveau au postman et je suis confronté à un problème récurrent que je ne peux pas comprendre. J'essaie d'exécuter la même demande à plusieurs reprises à l'aide d'une gamme de données établies sur le script de pré-demande, toutefois, lorsque je vais au coureur, la demande ne fonctionne qu'une seule fois, plutôt que 3 fois.

Script de pré-demande:

var uuids = pm.environment.get(“uuids”);

if(!uuids) {
uuids= [“1eb253c6-8784”, “d3fb3ab3-4c57”, “d3fb3ab3-4c78”];
}

var currentuuid = uuids.shift();
pm.environment.set(“uuid”, currentuuid);
pm.environment.set(“uuids”, uuids);

TESTS:

var uuids = pm.environment.get(“uuids”);

if (uuids && uuids.length>0) {
postman.setNextRequest(myurl/?userid={{uuid}});
} else {
postman.setNextRequest();
}

J'ai examiné la question concernant la documentation et je ne trouve pas ce qui ne va pas avec mon code.

Merci!

7
BDM

Le script de pré-demande n'est pas un bon moyen de tester API avec des données différentes. Mieux vaut utiliser le coureur de facteur pour la même chose.

Premièrement, préparez une demande avec facteur avec des données variables. Pour par E.g

enter image description here

Ensuite, cliquez sur l'onglet Runner

enter image description here

Préparer le fichier CSV avec des données

uuids
1eb253c6-8784
d3fb3ab3-4c57
d3fb3ab3-4c78

Et fournir en tant que fichier de données et exécutez l'échantillon.

Cela vous permettra d'exécuter la même API, plusieurs fois avec différents types de données et peuvent vérifier les cas de test.

enter image description here

14
Divyang Desai

Vous êtes si proche! La question est que vous n'êtes pas non définissant votre variable d'environnement pour uuids, il s'agit donc d'une liste vide au début de chaque exécution. Ajoutez simplement pm.environment.unset("uuids") à votre relevé de sortie et il devrait fonctionner tous les trois fois. Tout spécifiez la demande suivante doit arrêter l'exécution en le définissant sur null.

Donc, vos nouveaux "tests" deviendront:

var uuids = pm.environment.get(“uuids”);

if (uuids && uuids.length>0) {
    postman.setNextRequest(myurl/?userid={{uuid}});
} else {
    postman.setNextRequest(null);
    pm.environment.unset("uuids")
}
0
Lee James