一、关联设置
在实际的接口测试中,后一个接口经常需要用到前一个接口返回的结果,从而让后一个接口能够正常执行。
关联操作步骤如下:
1.利用postman获取上一个接口指定返回值
2.使用postman全局变量保存上一个接口的值,代码如下:
postman.setGlobalVariable("全局变量名",str);其中前面的参数为全局变量名称,后买你为变量
3.使用{{全局变量名}}引用
例如:设置access_token为全局变量并引用
第一步:在Tests页签中获取返回值access_tokens
var data=JSON.parse(responseBody);
postman.setGlobalVariable("access_token",data.access_token);
第二步:引用变量access_token
二、内置参数化实现
1.postman自带三个变量
{{$guid}}//生成GUID
{{$timestamp}}//当前时间戳
{{$randomInt}}//0-1000的随机整数
2.在Pre-request Script页签中使用代码实现:
Pre-request Script页签为执行接口请求之前要做的操作,而Tests是执行完请求要做的操作,内建变量一般放在Requests里,我们也可以用代码在Pre-request Script页签中实现,好处是可以
可复用,精准断言。
2.1时间戳参数化
Pre-request Script页签中输入:
var time=Date.now();
pm.globals.set("pretime", time);
URL地址输入:
https://www.baidu.com/s?wd={{pretime}}
Tests页签中输入:
var time=pm.globals.get("pretime");
tests["case01 判断百度标签是否和百度搜索相同"]=responseBody.has(time)
2.2GUID参数化
Pre-request Script页签中输入:
const guid='xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'
.replace(/x/g,()=>(Math.floor(Math.random()*16)).toString(16))
.replace(/x/g,()=>(Math.floor(Math.random()*4+8)).toString(16))
pm.globals.set("preguid", guid);
URL地址输入:
https://www.baidu.com/s?wd={{preguid}}
Tests页签中输入:
var guid=pm.globals.get("preguid");
tests["case01 判断百度标签是否和百度搜索相同"]=responseBody.has(guid)
2.3随机整数参数化
2.4从多个选择中实现参数化
2.5设置随机手机号
三、外部参数化实现
在postman中,除了上述两种方法实现参数化,还可以利用外部数据文件(支持csv文件和包含json格式文本的数据)。外部数据文件目前是通过Runner页签导入。
json文件需要确保文件中有键值对数组。数组中的每个元素是键值对对象,代表一次迭代。key作为为request中要使用的变量名,value作为keyde取值。
步骤:
1.准备测试数据(csv格式或者json格式)
csv格式数据
json格式数据
2.在postman脚本中,HTTPrequest中使用{{key}}引用,在script中使用data.key或者data["key"]取一i你用
3.打开Runner窗口,点击Data旁边的select File按钮,导入参数化文件
4.点击data file type类型后,点击preview按钮,检查数据是否正确,如果不正确,调整数据文件格式或编码
5.设置迭代次数,每次迭代都将使用数据文件中的一行,如果迭代次数超过数据文件中的行数,将重复使用最后一行
例:百度搜索数据参数化
第一步,准备参数化文件
第二步,引用参数
第三步:导入文件
第四步:查看数据是否正确
第五步:设置迭代次数和延迟时间
第六步:设置好后点击run执行