В сценарии предварительного запроса Postman, как я могу прочитать фактическое значение заголовка, который использует переменную

У меня есть переменная token с определенным значением myTokenValue

Я пытаюсь сделать вызов, который включает эту переменную в заголовок tokenHeader:{{token}}

У меня также есть сценарий предварительного запроса, который должен изменить запрос на основе значения заголовка токена, но если я попытаюсь прочитать значение pm.request.headers.get('tokenHeader'), я получу буквальное значение {{token}} вместо интерполированного myTokenValue

Как мне получить это значение, не обращаясь непосредственно к переменной?


person neXus    schedule 14.06.2019    source источник


Ответы (2)


Вы можете использовать следующую функцию для замены любых переменных Postman в строке их разрешенными значениями:

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

В вашем примере:

var token = resolveVariables(pm.request.headers.get('tokenHeader'));
person Peter Walser    schedule 14.06.2019

В основном мне не хватало функции для интерполяции строки, вводя переменные из окружающая среда

Есть несколько обходных путей:

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'));
, но второй также является нулевым.

person neXus    schedule 14.06.2019