【黑马客达天下-登录单接口测试】
接口用例设计思路
单接口测试
- 正向测试
- 必填参数 P2(优先级)
- 全部参数 P2
- 逆向测试
- 参数数据为空 P3
- 参数类型不符 P3
- 参数长度不符 P3
- 业务规则不符 P3
##案例:完成KDTX项目登录接口用例测试
- 需求
- 已注册正确的用户名和密码,登录成功
- 用户名或密码错误,登录失败,提示“用户名或密码错误”
- 要求
- 按照接口测试思路进行测试点分析
- 从测试点转化为测试用例
- 使用Postman进行接口测试
1、提取测试点
2、设计测试用例
3、使用Postman进行接口测试
- 步骤
- 点击测试集中的 “Add folder” 添加文件夹管理测试用例
- 点击文件夹上的 “Add Request” 添加请求实现测试用例
【注意】bug文字性提示错误bug;postman中可用ctrl+d进行复制用例
postman断言
- 作用:让postman工具代替人工自动判定预期结果和实际结果是否一致
- 用法
响应状态码断言
-
模块名称:Status code: Code is 200
-
模块内容:
// 判断响应状态码是否等于200 pm.test("Status code is 200", function () { pm.response.to.have.status(200); });
包含指定字符串断言
- 模块名称:Response body: Contains string
- 模块内容:
// 判断响应结果是否包含指定字符串 pm.test("Body matches string", function () { pm.expect(pm.response.text()).to.include("string_you_want_to_search"); });
JSON数据断言
- 模块名称:Response body: JSON value check
- 模块内容:
// 判断响应结果是否包含指定字符串 pm.test("Your test name", function () { var jsonData = pm.response.json(); pm.expect(jsonData.value).to.eql(100); }); // 其中value是指实际json数据中的参数key,100是指预期结果
针对KDTX项目登录成功接口用例完成断言设置
需求及分析:
① 断言响应状态码为200
pm.test("断言响应状态码为200", function () {
pm.response.to.have.status(200);
});
② 断言响应数据中包含‘成功’
pm.test("断言响应数据中包含'成功'", function () {
pm.expect(pm.response.text()).to.include("成功");
});
③ 断言JSON数据中msg值为‘操作成功’
pm.test("断言JSON数据中msg值为'操作成功'", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.msg).to.eql('操作成功');
});
postman参数化
问题:每条测试用例都添加一个请求,重复读太高,怎么解决?
postman参数化介绍
- 场景:测试脚本中仅测试数据不一样,使用参数化提高脚本复用
- 步骤
- 测试数据保存在测试文件单独维护
- 引用数据文件实现脚本循环调用
postman参数化实现
- 准备数据文件
- json格式
- [{“username”:“manager”,“password”:“123456“,“status”:“200”,“message”:“成功”, “msg”:“操作成功”}, {“username”:”",“password”:"123456“,“status”:“200”,“message”:“错误”, “msg”:“用户名或密码错误”}]
- 引用数据文件数据
- 请求参数中获取
- **{{}}**引用相关对象的key eg:{{username}}
- 代码中获取
- Postman内置data对象引用key eg: data.status
- 请求参数中获取
针对KDTX项目登录接口参数化实现
- 需求:
针对登录接口,将请求数据和断言数据组织成JSON文件,并使用Postman批量运行 - 分析:
① JSON文件如何组织?
② 如何使用后Postman批量运行?
【总结】
1、参数化的作用是什么?
提高测试脚本复用性
2、Postman如何实现参数化?
- 准备数据文件
- 引用数据文件
请求参数中获取: {{变量名}}
代码中获取: data.变量名 - 批量执行测试用例