目录
前言
1.为什么做接口测试
(1)页面中不能发现的bug;
(2)后端已开发完成,前端页面还没开发完成,提前进入测试;
(3)开发阶段调用支付功能,使用mock方式模拟虚拟数据;
2.什么时候做接口测试
一般在功能测试完成时候,做接口测试;主要业务场景接口测试,方便后续项目迭代时,做回归测试;以及做成定时监控平台,检查项目每日运行情况;
1.接口测试流程
1.需求分析
2.接口文档解析
3.设计测试用例(重点)
4.执行测试:使用工具或代码实现(重点)
5.接口缺陷管理与跟踪
6.生成测试报告
7.接口自动化持续集成
2.接口测试用例设计思路
正常测试 | 通过性测试 | 全部必填参数 全部参数(必填+非必填) 参数组合(必填+部分非必填) |
异常测试 | 参数异常 | 多参:多了一个verify_cod请求字段 少参:少参针对必填项; 无参 参数错误:拼写错误passworddd |
数据异常(和功能测试一样) | 长度不符:长度大于11位,长度小于11位; 类型不符:非数字(字符,字母,汉字) 是否必填 是否重复 | |
业务异常 | 结合业务功能考虑输出的各种异常返回情 |
3.接口测试用例编写
3.1登录模块-接口测试用例
ID | 模块 | 用例标题 | 接口名称 | 请求URL | 请求方法 | 请求头 | 请求数据类型 | 请求体(请求参数) | 预期结果 | 测试结果 |
tlias-login-API001 | 登录 | 登录成功 | 登录 | http://localhost:8080/login | POST | {"Content-Type":"application/json"} | json | { "username":"jinyong", "password":"123456" } | 登录成功,响应状态码200,响应数据为: { "code": 1, "msg": "success", "data": } | |
tlias-login-API002 | 登录 | 不输入用户名 | 登录 | http://localhost:8080/login | POST | {"Content-Type":"application/json"} | json | { "username":"", "password":"123456" } | 登录失败,响应状态码200,响应数据为: { "code": 0, "msg": "用户名或密码错误", "data": null } | |
tlias-login-API003 | 登录 | 不输入密码 | 登录 | http://localhost:8080/login | POST | {"Content-Type":"application/json"} | json | { "username":"jinyong", "password":"" } | 登录失败,响应状态码200,响应数据为: { "code": 0, "msg": "用户名或密码错误", "data": null } | |
tlias-login-API003 | 登录 | 输入错误用户名和密码 | 登录 | http://localhost:8080/login | POST | {"Content-Type":"application/json"} | json | { "username":"jinyong1", "password":"123" } | 登录失败,响应状态码200,响应数据为: { "code": 0, "msg": "用户名或密码错误", "data": null } |
3.2部门管理-接口测试用例
ID | 模块 | 用例标题 | 接口名称 | 请求URL | 请求方法 | 请求头 | 请求数据类型 | 请求体(请求参数) | 预期结果 | 测试结果 |
tlias-dept-API001 | 部门管理 | 部门信息管理 | 新增部门 | http://localhost:8080/depts | POST | {"Content-Type":"application/json","Token":{{e_token}} | json | { "name": "竞赛部" } | 新增成功,响应状态码200,响应数据为: { "code": 1, "msg": "success", "data": { "id": 30 } } | |
查询部门 | http://localhost:8080/depts/{{e_dept_id}} | GET | {"Content-Type":"application/json","Token":{{e_token}} | json | 查询成功,响应状态码200,响应数据为: { "code": 1, "msg": "success", "data": { "id": 30, "name": "竞赛部", "createTime": "2025-04-27T14:36:30", "updateTime": "2025-04-27T14:36:30" } } | |||||
修改部门 | http://localhost:8080/depts/{{e_dept_id}} | PUT | {"Content-Type":"application/json","Token":{{e_token}} | json | { "name": "竞赛部plus" } | 修改成功,响应状态码200,响应数据为: { "code": 1, "msg": "success", "data": { "id": 32, "name": "竞赛部plus", "createTime": "2025-04-27T14:44:33.8151763", "updateTime": "2025-04-27T14:44:33.8151763" } } | ||||
删除部门 | http://localhost:8080/depts/{{e_dept_id}} | DELETE | {"Content-Type":"application/json","Token":{{e_token}} | json | 删除失败,响应状态码200,响应数据为: { "code": 1, "msg": "success", "data": null } |
4.postman执行测试用例
4.1 登录接口测试用例
(1)正常测试
1.Collections测试集合-->新建Blank collection-->新建文件夹Add floder
2.新建环境变量:Environments-->新建名称talisTest环境-->新建base_url
3.登录文件夹下-->新建请求add request(名称一般是ID+用例标题)
// 1.断言响应状态码200 【Snippets==>Status code:Code is 200】
pm.test("断言响应状态码200", function () {
pm.response.to.have.status(200);
});
// 2.断言json响应中code=1【Snippets==>Response body:JSON value check】
pm.test("断言json响应中包含code=1", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.code).to.eql(1);
});
// 3.断言json响应中包含msg=success【Snippets==>Response body:JSON value check】
pm.test("断言json响应中包含msg=success", function () {
var jsonData = pm.response.json();
pm.expect(jsonData.msg).to.eql("success");
});
// 4.断言json响应头中有Content-Type字段
pm.test("断言json响应头中有Content-Type字段", function () {
pm.response.to.have.header("Content-Type");
});
// 5.保留并处理token数据,解决后续接口登录依赖性问题【Snippets==>Set an environment variable】
var jsonData = pm.response.json();
pm.environment.set("e_token", jsonData.data);
(2)异常测试
4.2 部门接口测试用例
(1)新增部门
(2)查询部门
(3)修改部门
(4)删除部门
5.批量执行测试用例-运行测试集


6.Newman生成测试报告
6.1导出测试集和环境变量
(1)导出测试集
(2)导出环境变量


6.2 Newman安装
Newman:一款基于nodejs开发的可以运行Postman脚本的工具,并且可以生成测试报告。
安装1:nodejs
下载地址:http://nodejs.cn/download/
windows系统直接双击运行安装包,如【node-v12.10.0-x64.msi】
校验:打开cmd输入【node-v】,看到输出node版本信息,即代表成功
安装2:Newman
以管理员身份打开cmd输入【npm install -g newman】
校验:输入【newman -v】
安装3:newman-reporter-html 报告插件
输入【npm install -g newman-reporter-html】
6.3生成测试报告
newman run test.postman_collection.json -e test.postman_environment.json -g workspace.postman_globals.json -d jsonData.json -r html
-e 指定环境变量;
-g 全局变量
-d 数据文件;
-r生成报告
newman run tliasTest.postman_collection.json -e talisTest.postman_environment.json -r html
# End