我试图通过从api的响应主体中捕获一个节点来设置环境变量,该节点包含两个带连字符的单词。
我的脚本是-postman.setEnvironmentVariable("Token", jsonData.access-token);
-这一直返回 ReferenceError:未定义令牌
响应正文中的节点为-{"access-token": "<token>"}
我尝试使用此脚本-postman.setEnvironmentVariable("Token", jsonData.access/-/token/);
-此脚本将关键字“令牌”设置为环境密钥,但未从响应正文中捕获实际令牌的值。
有人知道解决这个问题的方法吗?
答案 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);
}