接口测试流程
需求分析 -> 测试设计 -> 测试用例评审 -> 测试执行 -> 验收 -> 预发布 -> 上线
接口测试用例设计思路
梳理业务流程图,根据流程图中的分支分别考虑不同场景(包括接口超时,接口异常,接口请求成功,接口请求失败)
基本功能流程测试
- 冒烟测试
验证主业务的正向流程测试 - 正向流程测试
根据画出来的流程图覆盖流程图中的不同场景,分支覆盖,路径覆盖,场景覆盖。覆盖测试时需要结合实际的业务场景,去除根本不会发生的场景
基于输入域的测试
针对接口的入参设计
- 边界值测试
边界点和外点,使用边界值和等价类划分 - 特殊字符校验
如果入参对特殊字符有要求 - 参数类型校验
如果对入参的数值类型有要求的话需要校验,用等价类划分 - 必选参数校验
入参如果有必选参数的话,都要设计一条不传参数的用例 - 组合参数校验
不同参数的不同组合场景 - 有效性校验
如身份证的校验,手机号校验 - 默认值校验
- 排重逻辑
接口幂等性
- 重复提交
对于涉及到资金的系统,接口幂等性尤其重要
接口幂等性改造:可以在接口中增加一个唯一性参数,同一个参数值的接口请求只处理一次
故障注入
- Redis 故障降级测试
- 例: token 存在Redis中,第一次从数据库取,回写入Redis,第二次直接从Redis取
- 可以让开发配合Redis故障注入:
- 清空Redis数据,发出请求看能否从数据库读数据并回写入Redis
2.启动Redis恢复数据,看能否从Redis中取出正确的数据
3.Redis崩溃,数据能否降级到数据库中读取数据
- 清空Redis数据,发出请求看能否从数据库读数据并回写入Redis
- 服务故障转移
- 数据库故障
- 数据库崩溃场景
- 接口转移测试 - 接口服务重启, 集群崩溃场景
线程安全测试
- 并发测试
并发相同参数的请求是否只有一条请求成功? - 分布式测试
从物理资源的角度- 水平扩展
- 垂直拆分 —— a 只查询一种请求,b 查询另一种请求
- 数据库读写安全测试
数据库锁-多个用户对同一个数据操作时对数据加锁
同时并发的进行更新和插入,删除和插入操作看是否能正常进行相互不影响
接口测试用例要素
- 用例名称 - 必填
- 接口地址 - 必填
- 请求方式 - 必填
- 前置条件
- 请求头部
- 请求参数 - 必填
- 响应状态码
- 预期响应结果 - 必填