В pre-request-script Почтальона, как я могу прочитать фактическое значение заголовка, который использует переменную - PullRequest
0 голосов
/ 14 июня 2019

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

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

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

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

Ответы [ 2 ]

1 голос
/ 14 июня 2019

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

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

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

var token = resolveVariables(pm.request.headers.get('tokenHeader'));
1 голос
/ 14 июня 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'));
но второй также нуль-сейф.

...