web-dev-qa-db-fra.com

Enregistrement d'une valeur d'en-tête Postman dans une variable tout au long des demandes d'une collection

Bonjour Stackers,

J'essaie d'automatiser ma suite de tests dans Postman afin de ne pas avoir à entrer manuellement dans chaque demande et à changer cette valeur d'en-tête en ce que j'ai initialement mis dans la première demande.

Ma suite de tests ressemble actuellement à:

Première demande:

var headerValue = postman.setGlobalVariable('Number', headerValue);
console.log("Number is: " + headerValue);

Deuxième en-tête de demande:

Number - {{headerValue}}

Je m'attendrais à ce que headerValue ait la valeur de 'Number' puisque je l'ai défini comme une variable globale mais il revient comme non défini. Je ne suis pas sûr de ce que je fais mal.

14
jmcode

Voici comment procéder

Si Refresh_token est la valeur d'en-tête

postman.setGlobalVariable("refresh_token",postman.getResponseHeader("Refresh_token") );

Documentation officielle: https://www.getpostman.com/docs/postman/scripts/test_examples

32
Sai Ram Reddy

Il semble que la réponse de @ Sai ne fonctionne plus, puisque getResponseHeader est désormais obsolète. Le code mis à jour est:

pm.test("First request", function() {
    let headerValue = pm.request.headers.get("Number")
    pm.globals.set("Number", headerValue);
});

Dans la deuxième requête, accédez à la section Headers, ajoutez un nouvel en-tête avec Number comme clé et {{Number}} comme valeur.

0

Non, essayez de cette façon. Pour Postman, si vous voulez définir un environnement ou une variable globale, utilisez simplement le motif (clé, valeur) de cette façon-

postman.setEnvironmentVariable(key,value) or   
postman.setGlobalVariable(key,value) 

et enfin les récupérer en utilisant {{key}}

var headerValue = ”your value goes here”;
postman.setGlobalVariable('Number', headerValue);

et utilisez {{Number}} sur votre sous-en-tête de demande subséquent

0
Always Sunny