Postman设置JWT环境变量时报Cannot read property 'set' of undefined怎么解决
错误原因
- 核心原因是你调用
set方法的postman.environment对象为undefined,触发了属性读取异常,常见触发场景如下:- Postman v8及以上版本已经废弃移除了旧版
postman.environment全局对象,新版统一使用pm.environment作为环境变量操作的官方API - 你没有在Postman右上角的环境选择栏选中任意已创建的环境,环境作用域未初始化导致对象不存在
- 你选中的环境被设置为只读权限,无法写入变量导致环境操作对象未挂载
- Postman v8及以上版本已经废弃移除了旧版
修复步骤
- 第一步:替换旧版API为官方推荐的新版写法,修改后的完整代码如下:
var jsonData = JSON.parse(responseBody); tests["Access token was not empty"] = jsonData.access_token !== undefined; pm.environment.set("jwt_token", jsonData.access_token);
- 第二步:在Postman右上角的环境下拉选择框中,选中你要写入变量的目标环境,没有环境的话先新建一个空白环境再选中
- 第三步:检查选中环境的权限配置,确保没有开启只读限制,支持变量写入
- 可选兼容方案:如果需要同时适配新旧版本Postman,可以增加对象存在性判断,避免运行报错:
var jsonData = JSON.parse(responseBody); tests["Access token was not empty"] = jsonData.access_token !== undefined; // 兼容新旧版本环境变量API if (typeof pm !== 'undefined' && pm.environment) { pm.environment.set("jwt_token", jsonData.access_token); } else if (typeof postman !== 'undefined' && postman.environment) { postman.environment.set("jwt_token", jsonData.access_token); }
内容的提问来源于stack exchange,提问作者minTwin
相关产品推荐
相关产品推荐

