如何在邮递员的响应正文中设置环境变量,并在其中关联关键字

时间:2018-10-22 10:25:22

标签: api postman

我试图通过从api的响应主体中捕获一个节点来设置环境变量,该节点包含两个带连字符的单词。

我的脚本是-postman.setEnvironmentVariable("Token", jsonData.access-token);-这一直返回 ReferenceError:未定义令牌

响应正文中的节点为-{"access-token": "<token>"}

我尝试使用此脚本-postman.setEnvironmentVariable("Token", jsonData.access/-/token/);-此脚本将关键字“令牌”设置为环境密钥,但未从响应正文中捕获实际令牌的值。

有人知道解决这个问题的方法吗?

2 个答案:

答案 0 :(得分:1)

  

ReferenceError:未定义令牌

这表明令牌应作为一个不同的变量,但找不到。

  

postman.setEnvironmentVariable(“ Token”,jsonData.access-token);

上面的语句具有无效的JavaScript语法,因为变量/对象属性名称中不能包含连字符。有效名称的更多信息,请访问:https://mathiasbynens.be/notes/javascript-identifiers

可以使用方括号表示法来解决此问题,如下所示:

pm.environment.set("Token", jsonData["access-token"]);

请注意,postman.*函数家族已被弃用,并已被其等效的pm.*取代。可在此处找到更多详细信息:https://www.getpostman.com/docs/v6/postman/scripts/postman_sandbox_api_reference

答案 1 :(得分:0)

我使用此代码从响应中获取令牌并将其设置在环境变量中

const responseJson = pm.response.json();
console.log(responseJson);
if(typeof responseJson.access_token !== 'undefined'){
    pm.environment.set("gateway-access-token", responseJson.access_token);
}