【黑马客达天下-登录单接口测试】
接口用例设计思路
单接口测试
- 正向测试 - 必填参数 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
- 模块内容:
// 判断响应状态码是否等于200pm.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.变量名
- 批量执行测试用例
版权归原作者 叻意 所有, 如有侵权,请联系我们删除。