什么是变量
变量是计算机语言中能储存计算结果或能表示值的抽象概念。变量可以通过变量名访问。例如:如果一组请求里的URL值都是一样的,但是这个URL值后续可能会改变,此时就可以将URL保存为变量。后续URL值有变动时,只需要去修改变量的value即可。
注:postman会将环境变量和全局变量以字符串的形式保存。如果你要保存对象或数组形式,记得在保存前将其JSON.stringify() 并且在使用时JSON.parse() 一下。
变量作用域
postman支持Global、Collection、Environment、Data及Local变量域。
注:如果一个变量声明了2种不同的变量作用域,取最小作用域。
在实际使用中,不同变量作用域适用于不同场景的任务中:
- Global variales:全局变量允许您访问集合、请求、测试脚本和环境之间的数据。全局变量可以在整个工作空间中使用。
- Collection variables:集合变量可以在集合中的所有请求中使用,并且独立于环境,因此不要根据所选环境进行更改。如果只使用单个环境,例如用于验证/ URL详细信息,则可以使用集合变量。
- Environment variables:环境变量允许您根据不同的环境定制处理,例如本地开发vs测试或生产。一次只能激活一个环境。 如果您只有一个环境,那么使用集合变量可能更有效,但是环境允许您指定基于角色的访问级别。
- Local variables:局部变量是临时的,只能在请求脚本中访问。局部变量值的作用域仅限于单个请求或集合运行,当运行完成时不再可用。 如果您需要一个值来覆盖所有其他变量范围,但又不希望在执行结束后将该值持久化,那么局部变量是合适的。
- Data variables:数据变量来自外部CSV和JSON文件,用于定义通过Newman或Collection Runner运行集合时可以使用的数据集。
定义变量
可以使用不同的方式定义不同作用域的变量。要从请求生成器中创建任意范围的变量,可以在地址、参数、头或正文中选择你需要的数据。
- 点击Set as variable > Set as a new variable。
- 输入变量名,选择作用域后点击Set variable。
请及时删除不再使用的变量
定义全局和环境变量
点击左侧tab的Environment或点击右上角眼睛icon。均可创建和编辑全局和环境变量。
你也可以通过快捷键CMD/CTRL + ALT + E查看全局和环境变量
定义集合变量
也可以通过选择响应体中的值设置为某个变量的变量值
脚本中定义各类型变量
- global variable
pm.globals.set("variable_key", "variable_value");
- collection variable
pm.collectionVariables.set("variable_key", "variable_value");
- environment variable
pm.environment.set("variable_key", "variable_value");
- local variable
pm.variables.set("variable_key", "variable_value");
- 删除变量
pm.environment.unset("variable_key");
访问变量
使用如下格式访问,变量可以使用在请求url、参数、头、授权、正文和头预设等地方。hover在变量名上可以看到变量当前值。
{{username}}
你可以在脚本中使用代表作用域级别的对象和.get方法来获取变量的当前值:
//access a variable at any scope including local
pm.variables.get("variable_key");
//access a global variable
pm.globals.get("variable_key");
//access a collection variable
pm.collectionVariables.get("variable_key");
//access an environment variable
pm.environment.get("variable_key");
日志打印变量值
console.log(pm.variables.get("variable_key"));