将Postman标头值保存到集合中的请求中的变量中

jmc*_*ode 15 javascript automated-tests postman

下午好,堆叠器,

我试图在Postman中自动化我的测试套件,这样我就不必手动进入每个请求并将该标头值更改为我最初在第一个请求中放置的内容.

我的测试套件目前看起来像:

第一次请求:

var headerValue = postman.setGlobalVariable('Number', headerValue);
console.log("Number is: " + headerValue);
Run Code Online (Sandbox Code Playgroud)

第二个请求标题:

Number - {{headerValue}}
Run Code Online (Sandbox Code Playgroud)

我希望headerValue具有'Number'的值,因为我已将其设置为全局变量,但它将以未定义的形式返回.我不确定我做错了什么.

Sai*_*ddy 32

这就是你如何做到这一点

如果Refresh_token是标头值

postman.setGlobalVariable("refresh_token",postman.getResponseHeader("Refresh_token") );
Run Code Online (Sandbox Code Playgroud)

官方文档:https://www.getpostman.com/docs/postman/scripts/test_examples

  • 此答案使用现已弃用的代码。您应该使用 `pm.globals.set("Number", pm.response.headers.get("Number"));`。 (5认同)

Ros*_*nko 24

似乎不再推荐@Sai的回答不起作用,因为getResponseHeader现在已弃用。更新后的代码是:

pm.test("First request", function() {
    let headerValue = pm.response.headers.get("Number")
    pm.globals.set("Number", headerValue);
});
Run Code Online (Sandbox Code Playgroud)

在第二个请求 goHeaders部分中,添加一个Number作为键和{{Number}}值的新标头。


pme*_*pme 5

正如Rostyslav Druzhchenko的回答的补充。在 Postman 客户端中,您可以直接将其添加到“测试”选项卡中: 邮递员用户界面


Alw*_*nny 1

不行,试试这个方法。对于邮递员,如果你想设置环境或全局变量,只需使用 (key,value ) 模式这样 -

\n\n
postman.setEnvironmentVariable(key,value) or   \npostman.setGlobalVariable(key,value) \n
Run Code Online (Sandbox Code Playgroud)\n\n

最后使用 {{key}} 抓住它们

\n\n
var headerValue = \xe2\x80\x9dyour value goes here\xe2\x80\x9d;\npostman.setGlobalVariable('Number', headerValue);\n
Run Code Online (Sandbox Code Playgroud)\n\n

并在您的子后续请求标头中使用 {{Number}}

\n