我有一个token
用特定值调用的变量myTokenValue
我尝试在标题中包含该变量的调用,tokenHeader:{{token}}
我还有一个预请求脚本,它需要根据令牌标头的值更改请求,但是如果我尝试读取该值pm.request.headers.get('tokenHeader')
,我会得到文字值{{token}}
而不是插值myTokenValue
如何在不必直接查看变量的情况下获得此值?
我有一个token
用特定值调用的变量myTokenValue
我尝试在标题中包含该变量的调用,tokenHeader:{{token}}
我还有一个预请求脚本,它需要根据令牌标头的值更改请求,但是如果我尝试读取该值pm.request.headers.get('tokenHeader')
,我会得到文字值{{token}}
而不是插值myTokenValue
如何在不必直接查看变量的情况下获得此值?
您可以使用以下函数将字符串中的任何 Postman 变量替换为其解析值:
var resolveVariables = s => s.replace(/\{\{([^}]+)\}\}/g,
(match, capture) => pm.variables.get(capture));
在您的示例中:
var token = resolveVariables(pm.request.headers.get('tokenHeader'));
基本上我错过了一个插入字符串的函数,从环境中注入变量
有一些解决方法:
function interpolate (value) {
return value.replace(/{{([^}]+)}}/g, function (match, $1) {
return pm.variables.get($1);
});
}
replaceSubstitutions
,如codenirvana 的此评论function interpolate (value) {
const {Property} = require('postman-collection');
let resolved = Property.replaceSubstitutions(value, pm.variables.toObject());
}
其中任何一个都可以用作
const tokenHeader = interpolate(pm.request.headers.get('tokenHeader'));
但第二个也是空安全的。