postman_02
postman使用教程3-全局(Global)变量和环境(Environment)变量的使用
当接口请求中有多个地方用到同一个值时,可以设置变量,在脚本中引用变量。
postman 可以设置全局变量和环境变量,这样只需要改一个地方,其它脚本引用变量都会生效。
postman 支持的变量的作用范围
- Global 全局变量使您可以访问集合,请求,测试脚本和环境之间的数据。全局变量在整个工作空间中都可用。
- Collection 集合变量可在集合中的整个请求中使用,并且独立于环境,因此请不要根据所选环境进行更改。
- Environment 环境变量使您可以针对不同的环境定制处理,例如本地开发与测试或生产
- Data 数据变量来自外部CSV和JSON文件,以定义在通过Newman或Collection Runner运行集合时可以使用的数据集
- Local 局部变量是临时的,只能在您的请求脚本中访问。局部变量值的范围仅限于单个请求或收集运行,并且在运行完成后不再可用。
怎样引用变量 ?
{{base_url}}
引用变量,要是 参数中外层有引号,需要加手动加引号才可以,如下
全局变量是对任意环境都会生效
postman_four
postman定义环境变量和全局变量用的比较多,当使用多个集合(collection) 的时候,每个集合也可以分别定义不同的集合变量。
一个集合可以看成一个小的项目,不同集合定义不同变量是很有必要的
postman_05
postman使用教程5-Test脚本中自定义变量(参数关联 提取 token 和引用 token )
上个接口返回token,下个接口需在请求头部传token,这就是我们经常说的参数关联。
postman 如何实现参数关联呢?可以在Tests 脚本中自定义变量。
Tests 脚本中自定义变量
打开登录接口,在 Tests 区域写 javascript 脚本解析返回的response对象,从json里面提取token并设置为环境变量
// reponse解析json
jsonData = pm.response.json();
// 设置为环境变量
pm.environment.set("token", jsonData.token);
//当 response 是列表时取值方式;key是用 点, 列表用括号
第一个接口的 Test设置
引用变量
引用变量: {{token}}
其它变量设置
使用pm.globals来定义一个全局变量:
pm.globals.set("variable_key", "variable_value");
使用pm.collectionVariables定义集合变量:
pm.collectionVariables.set("variable_key", "variable_value");
使用pm.environment定义的环境变量(在当前选择的环境):
pm.environment.set("variable_key", "variable_value");
可以unset用来删除变量:
pm.environment.unset("variable_key");
部变量是您使用以下语法在请求脚本中设置的临时值:
pm.variables.set("variable_key", "variable_value");
局部变量不会在会话之间持久存在,但是允许您在执行请求或收集/监视运行期间临时覆盖所有其他作用域。
例如,如果您需要为本地运行的单个请求或集合处理临时测试值,并且不希望该值与您的团队同步或在请求/集合完成运行后仍然可用,则可以使用局部变量
-------------
在脚本中使用变量
可以使用表示范围级别和.get方法的对象在脚本中检索变量的当前值:
# 作者-上海悠悠 QQ交流群:717225969
# blog地址 https://www.cnblogs.com/yoyoketang/
//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");
访问变量
您可以在Postman用户界面中使用双花括号来引用变量。例如,要在请求身份验证设置中引用名为“用户名”的变量,可以使用以下语法,在名称周围使用双花括号:
{{username}}
请求body,该请求body通过将变量的引用括在双引号中来访问变量:
{ "customer_id" : "{{cust_id}}" }