今天介绍接口测试工具postman的使用
1.1 参数类型
postman中form-data、x-www-form-urlencoded、raw、binary的区别
form-data方式:表示http请求中的multipart/form-data方式,会将表单的数据处理为一条消息,用分割符隔开,可以上传键值对或者上传文件.比如按照如下方式传输提交数据
x-www-form-urlencoded:会把表单数据转换为键值对
(name=wangjianfeng&age=12)
raw:可以上传任意格式的文本,文本不做任何修饰传到服务端。比如传一些xml,或者json数据,或者text文本数据。
binary:相当于Content-Type:application/octet-stream,只可以上传二进制数据,通常用来上传文件,但是一次只能上传一个文件
multipart/form-data与x-www-form-urlencoded的区别 1、multipart/form-data:可以上传文件或者键值对,最后都会转化为一条消息
2、x-www-form-urlencoded:只能上传键值对,而且键值对都是通过&间隔分开的
1.2 传参
两个接口需要参数传递:
在第一个接口tests中添加代码:
返回响应结果
var data=JSON.parse(responseBody);
将token设置为环境变量,下一个接口使用
pm.environment.set(“usertoken”,data.token);
下一个接口通过{{usertoken}},使用上一个接口的传递值
批量传参:
1、新建文件data.txt,文件中逐行保存参数(编码格式选择UTF-8)
2、在Pre-request Script中,获取参数值,并传到搜索接口
var keyword = data.keyword (data为文件名,keyword为参数列名)
3、在collection runner中设置迭代次数和datafile路径
postman中的变量:
1.3 全局变量
1、和环境变量一样,第一种可以在环境设置中添加全局变量,点击globals按钮,打开全局变量添加页面,参考环境变量设置进行操作
2、可以在postman主页面中的pre-request Script中设置全局变量,当全局变量和环境变量出现同样的key时,环境变量会覆盖全局变量的key值
postman. setGlobalVariable (“key”, “value”);
1.4 随机变量
1、获取当前时间戳:
postman.setGlobalVariable("time",Math.round(new Date().getTime()));
time = postman.getGlobalVariable('time')
2、随机变量
{{$guid}}:添加一个V4风格GUID(如: aa002-44ac-45ca-aae3-52bf19650e2d)
{{$timestamp}}:将当前的时间戳,精确到秒
{{$randomInt}}:添加0和1000之间的随机整数
1.5 断言
Postman的断言是JavaScript语言编写的,写在tests标签页里,在sandbox中运行,postman预置了很多公共库,如:cheerio(解析html)、lodash(简化JSON操作)、CryptoJS(加密解密)、chai(断言框架)等
常见断言方式:
tests["Status code is 200"] = responseCode.code === 200;
var jsonData = JSON.parse(responseBody);
tests["Check respose id value"] = jsonData.id === 90; //断言id是90