postman参数传递
2019-06-11 本文已影响1人
小鱿鱼Gun神
postman的数据包括全局变量,环境变量,外部文件和局部变量
- 全局变量:作用域是全局,比如我们要设置的token
- 环境变量:配置之后,让测试用例既能够在测试环境中执行,也能在正式环境中执行
- 局部变量:比如tests中定义的变量,作用域只能在这个tests中
- 外部文件变量:在run collections的时候可以设置循环次数,指定外部数据文件。外部文件可以是csv格式的,也可以是json格式的。
变量优先级:外部文件变量> 环境变量> 全局变量>数据变量,也就是说,在变量名相同的情况下,外部文件的变量优先级最高,全局变量被环境变量所覆盖,环境变量被数据变量覆盖。
方法一:在Postman界面上,我们可以用{{variableName}}这样的形式访问变量。当Postman解析变量时,字符串{{variableName}}将被替换为相应的值。例如,对于值为http://localhost的环境变量url,我们必须在请求URL字段中使用{{url}}。发送请求时,{{url}}将被http://localhost替换。
方法二:使用脚本定义
例如:上个接口出参数作为下个接口入参,在Tests录入测试脚本,将登录返回的token设置为全局变量供其它接口调用。
//获取body中返回的所有参数
var JsonData =JSON.parse(responseBody);
//获取返回的auth_token值
var auth_token = JsonData.data.auth_token;
//将Bearer+“空格”拼接在auth_token上
var global_token="Bearer"+" " +auth_token;
//将authorization的值设置为全局变量
pm.globals.set("global_token", global_token);
在脚本中定义环境或全局变量,需要根据所需的范围使用pm.environment.set()方法或pm.globals.set()方法,该方法需要使用变量名和变量值作为参数来设置变量。当发送请求时,脚本将被解析。
查看Postman界面Global变量区域:
引用全局变量:
引用全局变量.png
方法三:本地变量(Local Variable)
本地变量:主要是针对单个URL请求设置的变量,作用域只是局限在请求范围内
例如:
请求URL:https:{{url}}/***/v1/mgr/login
请求方式:post
设置两个本地变量(mobile、pwd)作为参数
变量引用的格式为:{{variable}}
postman请求方式
请求方式.png
变量设置好之后,需要对变量赋值,在【Pre-request Script】里面编写代码:
脚本.png
方法四:数据变量(Data Variable)
通过导入外部数据文件(json/csv文件),来获取变量的数据
json Data 文件格式:
[{
"moblie":"159****5",
"pwd":"******"
},
{
"moblie":"186****4",
"pwd":"****"
}]
csv Data文件格式:
moblie,pwd
15******5,*******
186*****4,*******
进行 collections runner 设置
运行collections.png 配置运行参数.png
运行结果类似如下,可以很方便地看到测试通过情况
运行结果.png
psotman应用说明:
https://www.jellythink.com/archives/category/tool-tutorials/postman