0

我有一个token用特定值调用的变量myTokenValue

我尝试在标题中包含该变量的调用,tokenHeader:{{token}}

我还有一个预请求脚本,它需要根据令牌标头的值更改请求,但是如果我尝试读取该值pm.request.headers.get('tokenHeader'),我会得到文字值{{token}}而不是插值myTokenValue

如何在不必直接查看变量的情况下获得此值?

4

2 回答 2

2

您可以使用以下函数将字符串中的任何 Postman 变量替换为其解析值:

var resolveVariables = s => s.replace(/\{\{([^}]+)\}\}/g,  
  (match, capture) => pm.variables.get(capture));

在您的示例中:

var token = resolveVariables(pm.request.headers.get('tokenHeader'));
于 2019-06-14T14:35:06.363 回答
1

基本上我错过了一个插入字符串的函数,从环境中注入变量

有一些解决方法:

function interpolate (value) {
    return value.replace(/{{([^}]+)}}/g, function (match, $1) {
        return pm.variables.get($1);
    });
}
function interpolate (value) {
    const {Property} = require('postman-collection');
    let resolved = Property.replaceSubstitutions(value, pm.variables.toObject());
}

其中任何一个都可以用作
const tokenHeader = interpolate(pm.request.headers.get('tokenHeader'));
但第二个也是空安全的。

于 2019-06-14T14:31:01.013 回答