邮递员测试脚本-使用响应标头查询参数设置Env变量

时间:2019-06-26 13:35:47

标签: variables postman

我正在尝试使用响应中收到的查询参数设置环境变量。

我正在发送一个POST请求,在响应中我得到了我需要在下一个请求中使用的资源ID(因此需要将其添加为env变量)。

响应头: 位置→ {{3}}

我正在尝试从查询参数'consent_id'中检索值并将其设置为env变量。

我的env变量名为'ConsentId'。

我尝试过: pm.environment.set('ConsentId',JSON.stringify(pm.response.header.getQueryString(“ consent_id”)))); 没有运气。

不胜感激如何编写脚本,以便脚本将从标头中的url参数获取字段并将其放在env变量中。

1 个答案:

答案 0 :(得分:0)

要在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()的原因。