Postman Test script - Установить переменную Env с параметром запроса заголовка ответа - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь установить переменную env с параметром запроса, полученным в ответе.

Я отправляю запрос POST, и в ответ я получаю идентификатор ресурса, который мне нужно использовать в следующем запросе.(поэтому необходимо добавить его как переменную env).

Заголовок ответа: location → https://mmmmmmmm.nnnnnnnn.xxxxxx/oauth-signin?client_id=bbbnnnmmmm-bbnn-46ba-a287-nnhhyyy&redirect_uri=https://mmm.nnnn.nnnn/galaxy-backend/redirect/oauth/token&response_type=code&state=kYIL97&protocol=berlin-v13&consent_id=5d1372ebfb0b3a09b2ea4ddb&scope=accounts.accountDetails.read+accounts.transactions.read+accounts.balances.read

Я пытаюсь получить значение из параметра запроса 'accept_id' и установить егов переменной env.

моя переменная env называется ConsentId.

Я попробовал: pm.environment.set ('ConsentId', JSON.stringify (pm.response.header.getQueryString ("consent_id")));Не повезло.

Буду признателен за помощь в том, как написать его, чтобы скрипт получил поле из параметра url в заголовке и поместил его в переменную env.

1 Ответ

0 голосов
/ 27 июня 2019

Чтобы получить ConsentId значение параметра в Location заголовке ответа и установить его в качестве переменной среды в Postman:

var key = 'consent_id';
var regex = new RegExp('[?&]' + key + '(=([^&#]*)|&|#|$)');
var redirectURL = postman.getResponseHeader('Location');
var matchResult = regex.exec(redirectURL);
var consentId = decodeURIComponent(matchResult[2].replace(/\+/g, ' '));

pm.environment.set('ConsentId', consentId);

Кстати, чтобы вышеуказанный код работал хорошо, опция «Автоматически следовать перенаправлениям» должнабыть выключенным:

enter image description here

Примечание: мне не удалось извлечь заголовок Location из pm.response.headers, поэтому в приведенном выше коде используется postman.getResponseHeader().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...