接口测试的主要维度
在精确到单一的接口后,测试的时候,通常可以把接口分为四个部分来测试:
1.主流程
需要设计正向的测试数据,查询的接口确保可以正常发送请求和返回数据,如果是写入接口需要校验与数据源交互的正确性
2.接口的输入(input)
主要测试内容有入参协议的校验、和身份校验,请求参数的校验
3.接口的处理逻辑(handle)
主要验证不同的约束条件、越权、不同的处理数量、数据的交集或并集的处理情况、重复数据、缓存策略的校验、依赖服务异常的校验、状态转换、枚举值遍历
4.接口的输出(output)
接口的输出需要保障接口的安全性,敏感的数据是否加密、是否存在未处理的异常、对返回的字段进行断言
接口测试不同部分的测试点
1.接口的输入
(1)必填项的校验
如果必填字段没有的情况下,是否会有非200的状态码以及对应的msg
非必填的字段如果不携带是否会影响接口
(2)数值类型的校验
int类型要考虑到边界值、特殊值、小数、字符串形式的数值、空或null的情况
str类型要考虑从长度、空、特殊字符、英文大小写、空或null的情况
列表或字典类型要考虑取值范围、空列表或空字典、空或null的情况
时间戳类型主要考虑规定的开始时间和结束时间
(3)输入参数是否满足调用方
发送接口请求后的参数是否满足调用方的
接口的业务逻辑校验(handle)
(1)不同的约束条件
数值限制: 比如一个商品一次只能添加1个到购物车,超过后是否会做限制
状态限制:什么样的场景下不可以购买该商品,比如库存不足的情况
权限限制:比如黑名单用户是否还可以购买商品
时间限制:在不同的时间点是否可以操作该商品
(2)越权
用户a是否可以操作用户b的业务
(3)枚举值遍历
遍历与接口文档中所有的枚举值,校验接口返回的内容是否与文档描述一致
(4)数据的交集或并集的处理情况
有明确的枚举值,且可以进行组合
(5)缓存策略的校验
(6)依赖服务异常时的校验
可以使用抓包工具拦截依赖服务返回的内容,查看调用方是否有处理的逻辑
接口的输出(output)
对返回的字段进行断言,确保数据的类型,以及要对应请求参数的值都正确,还要考虑接口在请求未处理的情况下是否会暴露信息,比如HTML文本、源代码、错误代码,以及一些敏感信息是否进行了加密,比如身份证、密码、银行卡这些,然后还需要校验是否跟数据源的信息一致