Javascript 在集合中的整个请求中将邮递员标头值保存到变量中

Javascript 在集合中的整个请求中将邮递员标头值保存到变量中,javascript,automated-tests,postman,Javascript,Automated Tests,Postman,我试图在Postman中自动化我的测试套件,这样我就不必手动进入每个请求并将该头值更改为我最初在第一个请求中输入的值 我的测试套件当前看起来像: 第一项请求: var headerValue = postman.setGlobalVariable('Number', headerValue); console.log("Number is: " + headerValue); 第二个请求头: Number - {{headerValue}} 我希望headerValue的

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

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

第一项请求:

var headerValue = postman.setGlobalVariable('Number', headerValue);
console.log("Number is: " + headerValue);
第二个请求头:

Number - {{headerValue}}

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

不,试试这个方法。对于postman,如果您想设置环境或全局变量,只需以这种方式使用(key,value)模式-

postman.setEnvironmentVariable(key,value) or   
postman.setGlobalVariable(key,value) 
最后用{{key}抓取它们

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

并在子后续请求头上使用{Number}

这就是如何做到这一点

如果Refresh_标记是标头值

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

官方文档:

似乎不再推荐@Sai的答案,因为
getResponseHeader
现在已不推荐使用。更新后的代码为:

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

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

在将头保存到变量之前记录头的简单方法:

let authToken = postman.getResponseHeader("Authorization")
console.log("auth header -> ", authToken)
postman.setEnvironmentVariable("auth", authToken)
正如罗斯提斯拉夫·德鲁日琴科回答的补充。在Postman客户端中,您可以直接将其添加到测试选项卡中:

当前未定义获取“数字”在控制台中以这种方式进行,是否有postman.getHeader方法或类似的方法?我试图在我的头请求中获取头的值,而不是在测试中硬编码它suite@jmcconnell
postman.getResponseHeader(“内容类型”)//注意:getResponseHeader()
方法返回标头值(如果存在)。还有更多关于方法的信息,这个答案使用了现在不推荐使用的代码。您应该使用
pm.globals.set(“Number”,pm.response.headers.get(“Number”)。这应该是从Postmant 7.34.0开始接受的答案
getResponseHeader
pm
对象上不存在。太好了!!!谢谢