一个完整的接口测试流程应该包含分析接口文档、编写接口测试执行计划、编写接口测试用例,接口测试用例执行及输出接口测试报告5个阶段。
一. 分析接口文档
-
1.理解接口需求
- 根据文档深入理解接口的需求、对应功能及字段含义,与开发沟通。明确接口的请求类型、request输入参数的类型及必填字段,response响应状态码和响应内容。
- 接口request的请求类型:get、post、put、delete等
- request输入参数的字段类型:int、string、datetime、double、bool等
- response的响应码:响应状态码由三位数字组成,第一个数字定义了响应的类别,且有五种类型
1xx:指示信息--表示请求已接收,继续处理
2xx:成功--表示请求已被成功接收、理解、接受
3xx:重定向--要完成请求必须进行更进一步的操作
4xx:客户端错误--请求有语法错误或请求无法实现
5xx:服务器端错误--服务器未能实现合法的请求
WMS系统里常见的状态码(自定义)有:
200 -OK,401-Unauthorized ,403-Forbidden,404-Not Found
2.接口文档的几种呈现方式
- 接口excel或者confluence (见图1-1)
图1-1
- swagger(见图1-2)
图1-2
- 自建接口系统(见图1-3)
图1-3
第一阶段(分析接口文档)重点关注:
- 请求参数方式、类型、是否必填
- 响应错误异常信息(比如我们wms系统有哪些异常信息,id为空?)
- 接口之间是否存在依赖关系(包括第三方接口,鉴权等)
二.编写接口测试计划
基本内容包括测试范围(见图2-1)、测试目标(功能、稳定性、性能)、测试人员时间安排、测试环境、测试工具、测试数据(正常异常)、风险预测等。测试计划一般由项目负责人或者测试组长编写。
e.g. 接口测试计划案例
第二阶段(编写测试计划)重点关注:
- 人员时间安排(谁来测,测多久)
- 测试范围(测什么)
- 总结(包括风险评估)
三.编写接口测试用例
1.如何设计接口的测试用例
API的测试与功能测试是类似的,要执行API测试就需要进行API测试用例的设计,并尽可能覆盖全流程。写用例的时候要确认是否做性能测试和安全测试,如果要,就要写上对应的关注点。
2.wms中的receiptOrder/add-or-update 接口来实战写用例(从0到1)
- 了解业务入库流程
- 入库页面原型图
- 梳理接口报文
请求接口:/receiptOrder/add-or-update
请求URL:http://192.168.22.129/api/wms/receiptOrder/add-or-update
请求header:
Authorization:Bearer eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjhkZTJhOTg5LTFlOGQtNGUwZS1iMDNlLWY3OTBhM2JkMTQ5OCJ9.2lpx5-79KvVsGZjAoFS1R0TEUIBmqHFcW9uY8aClREJNTJn8FRG8VqemPKYitMp0sWsldMS8PLfiJiW_2pc6OQ
Content-Type:application/json;charset=UTF-8
Cookie:username=admin; rememberMe=true; password=mn4ac4pfZY6uPiFhTua4ztH6gh4DyLHRe1suifD4kIAMn3Mlx89+HqyTa+OOxpDEVbFqms/S7mrgUM0mZN5r7w==; Admin-Token=eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjhkZTJhOTg5LTFlOGQtNGUwZS1iMDNlLWY3OTBhM2JkMTQ5OCJ9.2lpx5-79KvVsGZjAoFS1R0TEUIBmqHFcW9uY8aClREJNTJn8FRG8VqemPKYitMp0sWsldMS8PLfiJiW_2pc6OQ; sidebarStatus=0
请求体request:
{
"id":null,
"receiptOrderNo":"R-2023-11-26-191014", //入库单号- 必填项,string类型,不超过50 个字符
"receiptOrderType":"3",//入库类型分为3类型,1采购入库,2外协入库,3退货入库。int类型,必填项
"supplierId":53, //供应商类型为int
"orderNo":"123456",//订单号,string类型,不超过50
"receiptOrderStatus":0,
"remark":"just a test",//备注255字符以内,string
"createBy":null,
"createTime":null,
"updateBy":null,
"updateTime":null,
"details":[ // 物料信息
{
"itemId":190, //物料编号
"rackId":null,
"areaId":null,
"warehouseId":null,
"planQuantity":1,
"realQuantity":null,
"receiptOrderStatus":0,
"delFlag":0
}
],
"payableAmount":100 // 金额,double类型,小数点后留2位
}
- 接口所对应库信息
- 编写用例
第三阶段(写测试用例)重点关注:
- 覆盖面广(正常、异常、边界)
- 数据隔离(测试过程中新增一条订单,就要用删除接口删除掉我们新增的那一条,防止垃圾数据的沉淀,这个也叫业务闭环)
四.jmeter工具执行刚刚写的测试用例
jmeter里涉及到的技术点:参数化、业务闭环(增加后删除)、接口依赖
五.接口测试报告
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
文中对应的实践项目,也录制了对应的视频。需要的联系SiSiJieX1