我的收集范围中有变量“ TOKEN” 。我在发出请求时尝试使用Tests脚本设置值。但是变量没有改变。
因此,我尝试使用环境范围变量。而且有效。
为什么在收藏范围中不起作用?我已经阅读了有关邮递员变量范围here的信息,并很好理解。
以下是一些屏幕截图:
1。首先,我称为登录端点。
以下是控制台结果。没有什么不对。
直到我尝试让所有用户在请求标头中需要令牌的端点。状态为401,因为令牌为空。如果令牌不为null,则它将返回200:
当我向环境添加“ TOKEN”变量时,它可以正常工作。再次切换到无环境将得到401状态代码:
答案 0 :(得分:1)
似乎您只能在选择某些环境时设置环境变量:https://learning.postman.com/docs/postman/scripts/postman-sandbox/#environment-and-global-variables
答案 1 :(得分:0)
@Danny Dainton是正确的,集合变量无法通过脚本进行编辑。
来源:https://learning.getpostman.com/docs/postman/environments_and_globals/variables/#variable-scopes
在脚本中定义环境或全局变量:*要设置 脚本中的变量,请使用pm.environment.set()方法或 pm.globals.set()方法取决于所需的范围。方法 需要变量键和值作为参数来设置变量。 当您发送请求时,脚本将被评估并且值 将存储为变量。请注意,定义集合变量 有点不同,可以通过编辑集合来完成 详细信息。
集合变量
可以通过编辑集合详细信息来定义集合变量。 单击集合名称旁边的省略号(...),然后选择“编辑”以 打开“编辑收集”模式。选择变量标签以添加和 编辑集合变量。您还可以定义集合变量 创建集合时。
因此,您只能手动更改收集变量 。
答案 2 :(得分:0)
从邮递员设置中关闭Automatic persist variable values
。
答案 3 :(得分:0)
这是自发布此问题以来的新内容,但是对于其他发现此问题的人,可以使用以下方法设置集合变量: pm.collectionVariables.set(键,值) 参见:https://learning.postman.com/docs/postman/variables-and-environments/variables/#defining-variables-in-scripts