- 学习流程
- 接口测试流程
需求分析和评审–接口文档分析–编写测试用例–测试用例设计及评审–测试脚本构建–执行测试用例–缺陷管理和回归–测试报告和总结 - 计网基础(URL、请求、响应)
接口文档解析
- 拿到一个项目接口之后,先测试业务接口还是测试单个接口?(业务接口)
- 如何测试业务接口(根据业务流程图梳理业务路径,设计测试用例覆盖每一条业务路径)
- 如何进行接口文档解析(①分析接口之间的依赖关系②分析接口请求(URL、请求方法、请求头、请求参数类型、请求参数等)③分析接口响应(响应状态码、响应数据等))
postman
-
设置请求方法==》设置URL,请求体,请求数据==》Send发送请求==》查看响应状态码、数据
-
接口自动关联(两个接口之间需要传递数据 验证码接口==》公共容器保存数据==》登陆接口)
1)postman添加环境,postman项目中添加环境
2)验证码接口,获取验证码,在Tests中写脚本,保存验证码到环境变量
var jsonData = pm.response.json() 获取验证码接口的json数据 pm.environment.aet("uuid",jsonData.uuid) 设置环境变量保存数据
3)登录接口引用环境变量数据,请求头和请求体都可引用环境变量数据,{{var_name}}
// 请求体json数据中引用变量 "uuid" : “{{uuid}}”
-
上传文件 请求体里面 选择form-data
-
get提交查询参数①url中?参数1and参数2②在Params区域里设置
-
批量执行:点击测试集Run–弹出cellection Runner窗口,点击运行–查看测试接口
-
单接口测试
等价类、边界值 | p优先级
正向测试 逆向测试 必填参数 P2 参数数据为空 P3 全部参数 P2 参数类型不符 P3 参数长度不符 P3 业务规则不符 P3 -
potman断言:自动判定是否与预期结果符合(有模板)
Tests区域编写断言// 判断响应状态 pm.test("assert name",function(){ // pm.test()内置函数:参数1 断言名称, 参数2 回调函数 pm.respeonse.to.have(200) //判断是否包含指定的状态码 });
// 包含指定字符串 pm.test("body matches string",function(){ // pm.test()内置函数:参数1 断言名称, 参数2 回调函数 pm.except(pm.response.text()).to.include("string_we_want_to_search") //判断是否包含指定的字符串 });
// json数据断言 pm.test("body matches string",function(){ // pm.test()内置函数:参数1 断言名称, 参数2 回调函数 var jsonData = pm.response.json(); pm.except(jsonData.uuid).to.eql(100) //判断json数据中的uuid值是否等于100 });
-
postman参数化–批量化运行
将测试用例和断言需要的内容用列表保存为json格式[ {"username":"manager","password":123456,"status":200,"message":"成功"}, {"username":"","password":123456,"status":200,"message":"成功"} ]
– 请求体中引用数据 {{username}}
– 断言中引用数据 data.status data指代上传的测试用例json文件,名字不能改