针对软件对外提供服务的接口的输入输出进行测试,以及接口间相互逻辑的测试,验证接口功能与接口描述文档的一致性。根据接口文档设计用例,调用接口,验证结果。
一、接口分类
- GET
- POST
post请求是在body中以表单形式传参(相对get而言,数据传输较安全) - PUT
- DELETE
二、接口测试流程
- 查看接口文档
通过接口文档或抓包来获取接口的基本调用方式和返回
信息包括:接口URL地址、请求方法、请求头、请求参数 - 设计测试用例
根据获取的接口信息,按照接口测试用例设计方法,设计参数和预期返回结果
- 功能用例设计
正例,传正常参数,成功返回- 逻辑用例设计
- 异常测试用例设计
- 鉴权:空、错误、鉴权国旗、鉴权次数限制
参数异常(空、参数错误、参数类型错误、参数名错误、参数长度错误);
-多、少参数
- 安全测试用例设计
cookie、header、唯一识别码(移动端接口)
- 接口发包
向接口传递参数 - 验证结果
获取接口返回结果,解析与验证
三、postman的基本使用
1. 接口关联
1.1 json提取器
第一个接口,test断言:
//打印日志
console.log(responseBody);
//使用json提取器提取相应数据中的data值
//把返回的字符串格式数据转换成对象形式
var result = JSON.parse(responseBody);
console.log(result.data);
//把data设为全局变量
pm.globals.set("data", result.data);
第二个接口使用:
{{data}}
1.2 正则表达式提取器
第一个接口,test断言:
//打印日志
console.log(responseBody);
//使用正则表达式提取响应数据中的data值,用match匹配
//使用(.*?)代替需要提取的值
var data = responseBody.match(new RegExp('"data":"(.*?)"'));
console.log(data);
//把返回数据中的data参数值设为全局变量
pm.globals.set("data", data[1]);
第二个接口使用:
{{data}}
2. 动态参数
postman内置动态参数:
{{$timestamp}} 生成当前时间的时间戳
{{$randomInt}} 生成0-1000之间的随机数
{{$guid}} 生成guid字符串
自定义动态参数:
设置:
var time = Date.now();
pm.globals.set("time", "time");
使用:
{{time}}
在断言中获取全局变量,可使用:
1. pm.globals.get("variable_key");
2. globals.variable_key;
3. globals["variable_key"];
3. 断言
postman默认已提供的脚本选择快速生成: