web-dev-qa-db-fra.com

Comment ajouter une pause entre 2 requêtes dans POSTMAN

J'ai un ensemble de demandes dans POSTMAN. Je voulais ajouter une pause entre 2 demandes mais je ne pouvais pas le faire en lisant leurs documents. Une idée?

UPDATEJe voulais seulement mettre une pause après une requête au lieu de après chaque requête de la collection.

10
RoundOutTooSoon

Si quelqu'un est toujours à la recherche de cela - Vous pouvez ajouter un délai après/avant l'un des nombreux tests d'une collection, vous pouvez utiliser:

setTimeout(function(){}, [number]);

où 'nombre' représente les millisecondes. S'il est ajouté dans 'Tests', il sera exécuté après l'envoi de la demande. S'il est ajouté lors des 'tests de pré-requête', il sera exécuté avant l'envoi de la requête.

9
Ivo Chipev

Je connais deux façons possibles de le faire

Méthode I

Exécutez votre demande en tant que collection. ( https://www.getpostman.com/docs/collections ) Utilisez Newman (le coureur de collection de Postman à partir de la ligne de commande) pour exécuter votre collection avec l'indicateur --delay. La valeur d'entrée de délai est en millisecondes.

Méthode II

C'est un joli bidouillage que j'ai trouvé ici https://github.com/postmanlabs/postman-app-support/issues/1038 . Vous pouvez ajouter une fonction de délai à votre script de test dans Postman.

6
Netham

Je préfère utiliser un service en ligne Endpoint delay de Postman Echo (les documents sont ici ). Créez simplement une demande qui utilise ce service et appelez-la entre les deux autres demandes auxquelles vous souhaitez ajouter un délai.

Si vous souhaitez vérifier l'état de quelque chose avant de continuer, vous pouvez utiliser postman.setNextRequest() dans la Tests d'une demande de boucle jusqu'à ce que quelque chose soit terminé. Faites simplement ce qui suit:

1) Créer une collection structurée comme suit:

  • Retarder pendant 10 secondes
  • Vérification de l'état
  • Continuer le traitement

2) Dans les tests de demande Status Check:

if(responseBody.has("Success")) //or any other success condition
{
    postman.setNextRequest('Continue Processing');
    tests["Success found"] = true;
}
else
{
    postman.setNextRequest('Delay For 10 Seconds');
    tests["No success found"] = true;
}
1
Nathan M

Si vous avez l'application Postman autonome (prise en charge de ES7) et que vous avez l'intention de tester uniquement sur Postman, et non sur newman (qui ne prend pas en charge ES7), vous pouvez avoir quelque chose comme ceci dans le script de pré-requête de la demande vous vouloir retarder:

function foo() {
    return (new Promise((resolve, reject) => {
        setTimeout(() => {
            resolve("done!");   // passing argument is optional, can just use resolve()
        }, 10000)   // specify the delay time in ms here..
    }))
}

async function waitForMe() {
    await foo().then((val) => {
        console.log(val);  // not required, you can just do an await without then
    })
}

waitForMe();
1
xyz

Vous pouvez utiliser la méthode JavaScript setTimeout. Cela garantira que votre méthode sera exécutée après un délai donné.

 enter image description here

  setTimeout(checkStatusCode, 500);

    function checkStatusCode() {

        pm.sendRequest('https://postman-echo.com/get', function (err, res) {

            tests['status code should be 200']= res.code ===200;

        });
    }
0
Amit