接口测试流程
1、需求分析
测试接口相信很多人第一时间会直接拿着开发写的接口文档开始测试,其实对于接口测试,在测试前也是要先深入理解需求,只有理解了需求,才能更好地完善测试用例的覆盖度
接下来通过实例讲解怎么入手接口测试!
实战1:
需求:设置备注功能。
- 详细需求:个人主页增加修改备注按钮、备注字数限制15个字、点击备注按钮修改备注,删除备注显示原来的昵称
- 主要功能分析:修改备注、删除备注、备注展示
- 数据分析:数据存储为mysql落地(备注存在user_remark_name_info表),redis作为缓存(类型是hash、名称:user_remark_name_{uid}),缓存用户的所有备注信息
- 接口分析:设置用户备注接口(根据uid和备注名设置备注)、个人信息展示接口(新增备注字段remarkName)
2、api文档分析
需要先了解的:url、请求方法(post还是get)、入参、出参、鉴权、相应参数(code和date)
实战2:
1.设置用户备注接口:/user/setUserRemarkName 需鉴权
- post类型
- 入参:toUid 客态uid (long) remarkName 备注名 (string)
- 出参:code
2.个人信息展示接口 /user/queryUserInfo 需鉴权
- post类型
- 入参:uid
- 出参:data信息,用户数据结构:userinfo新增备注字段remarkName
3、编写用例
测试点:是否鉴权、业务功能(正向功能)、异常测试(参数异常、数据异常)、逻辑业务(依赖服务、数据库和Redis和IM消息)、性能测试、安全测试
实战3:
- 确定需要鉴权;
- 正向功能:客态uid和备注检验功能是否可以使用;
- 异常测试有参数异常、数据异常、参数异常我们可以用是否必传,组合选择参数、参数类型;数据异常:参数的大小边界值、特殊字符
- 依赖逻辑:比如测试这个接口需要上一个接口参数,我们可以全局变量来处理依赖的数据(之后单独讲解)
- 数据落地:数据库中到user_remark_name_info表查看设置的备注名是否落地,根据key在Redis中查看user_remark_name中是否有缓存;
- 性能测试暂不做测试
- 安全测试:传入参数是否可以包含敏感符,重要信息是否加密
- 消息处理:IM消息的用户数据结构结构中新增备注字段remarkName,需要在Linux中查看日志查询该消息是否包含字段
最终接口测试用例:
4、执行用例
使用postman或Jmeter工具,填入相应参数,查看实际结果是否与预期结果一致
5、性能测试
不涉及性能问题,此次暂不做性能测试
6、客户端回归测试
直接测试接口,很难发现一些交互逻辑引起的问题,可能会遗漏一下不注意的场景,所以还需要在客户端针对功能进行回归,保证接口的测试覆盖完成;