Postman预请求脚本设置环境变量报TypeError如何解决
报错核心原因
抛出TypeError: Cannot read properties of undefined (reading 'set')的本质是代码执行时postman.environment是未定义值,不存在set方法,和你写的语法本身无关,是Postman运行上下文、API兼容或者配置问题导致的。
排查与解决步骤
- 第一步先检查右上角环境选择状态:如果Postman右上角环境下拉框显示为No Environment,也就是没有选中任何已创建的环境,
postman.environment对象本身就不会被初始化,直接调用方法必然报错。你可以先在下拉菜单里新建一个环境,或者选中已存在的环境后再执行请求。 - 第二步替换成官方当前推荐的稳定API:Postman v8及之后的版本已经逐步废弃旧的
postman全局对象,在部分新版本客户端、网页版Postman里这个对象已经被移除,直接把代码替换为pm.environment.set('Username','User')即可,pm是目前全版本兼容的官方标准API。如果你不想单独创建环境,只是需要临时存变量,可以用全局变量API:pm.globals.set('Username','User'),这个不需要选中特定环境就能正常调用。 - 第三步排查脚本变量冲突:如果你的预请求脚本里自定义过名为
postman的变量,会覆盖全局内置的postman对象,导致后续调用方法时报错,搜索脚本内的重名声明,修改变量名即可。 - 如果是用Newman命令行跑脚本时报错,检查执行命令是否携带了
-e <你的环境配置文件路径>参数,未传入环境文件时Newman运行上下文里不会生成environment对象,补全参数即可。
正确代码参考
// 变量存储到当前选中的环境中,需要提前选中对应环境 pm.environment.set('Username', 'User'); // 变量存储为全局变量,无需提前选中环境,全工作区可用 pm.globals.set('Username', 'User');
内容的提问来源于stack exchange,提问作者Giriraj Rana
相关产品推荐
相关产品推荐

