在VSCode Rest Client的.http文件中基于响应体更新环境变量
自动更新settings.json中local.token环境变量的方法
需求:需要覆盖settings.json里的local.token值。目前能通过接口响应体更新文件内局部变量,但每次执行token请求后必须手动更新环境变量供其他请求使用,操作繁琐。
现有代码示例(文件内局部变量设置有效):
### Token Request # @name postLogin POST {{baseUrlWithouAPI}}/connect/token Content-Type: application/json { "userName": "username", "password": "password" } ### 设置文件内局部变量tokenLocal(可行) @tokenLocal = {{postLogin.response.body.accessToken}} # this works {{token}} = {{postLogin.response.body.accessToken}} # this does not work
尝试过的无效环境变量更新语法:
{{token}} = {{postLogin.response.body.accessToken}} # this does not work or @@token = {{postLogin.response.body.accessToken}} # this does not work
解决方法:
要自动更新环境变量,不能直接在请求体或后续变量赋值块里操作,需在Token请求的Tests脚本中编写代码实现:
- 打开
postLogin请求的Tests标签页 - 添加以下JavaScript代码:
// 从响应体中提取accessToken const accessToken = pm.response.json().accessToken; // 更新当前选中环境中的token变量(对应settings.json里的local.token) pm.environment.set("token", accessToken); // 若要更新全局变量,替换为:pm.globals.set("token", accessToken);
执行该token请求后,环境变量token会自动更新,其他请求直接使用{{token}}即可调用最新值,无需手动操作。
内容的提问来源于stack exchange,提问作者mahbuburrahman rifat
相关产品推荐
相关产品推荐

