接口测试用例设计规范考虑哪些点

1、通过性验证:

先按照接口文档传入所有必填字段并且字段值在正确范围内,预期返回正确结果

2、参数验证(正向/逆向):

  1. 必填参数:针对每个必填参数,都设计一条参数为空的测试用例,接口错误信息返回正确
  2. 非必填参数:设计一条用例所有非必填的参数都传入值,非必填参数(类型,范围)不正确,是否给出合理提示
  3. 参数值范围:参数的值在/不在接口文档中规定参数值范围内
  4. 长度边界值:符合长度范围内的,长度边界值,超过长度边界值的类型:符合参数类型的,不符合参数类型的(数组,字符串,正数,负数,整数,小数,小数点位数,中文,英文,特殊符号)
  5. 特殊值:空、null、"null"、""、" "、0、值的前后带有空格、特殊符号等
  6. 接口文档中不存在的参数:接口传入文档中不存在的参数不会异常
  7. 接口中传入的参数被覆盖:重复传入相同的key,但value不同
  8. 传入的参数格式不对:非json、少括号
  9. 参数个数:如果接受列表类型的参数,如果对列表大小没有进行限定则传入一个超大列表,如果对列表大小进行了规范则需要测试列表大小的边界值;接口能否正确返回数据;

PS:后端代码中一般会有专门的代码来处理接口入参的校验,可以通过查看研发的代码来帮助提高接口参数校验测试的效率,如java工程中的javax.validation.constraints。

接口入参size需要在[1 -3]内:

3、参数组合:

很多时候,接口中的参数有多个取值来满足不同的业务逻辑,当这样的参数>1时,就会出现参数组合的场景。例如参数A可传[1,2,3],

参数B可传["first","second","third"]

  1. 存在的组合:返回信息正确
  2. 不存在的组合:错误信息通俗易懂,错误码正确
  3. 参数组合中参数的个数:若多个参数组合,是否允许任意多个参数的随机组合(例如2个参数组合、3个参数组合、不传)

4、接口前提条件验证:
前提条件是否满足:

  1. token(token失效/token格式不对/token类型不对、登录退出登录其他账号)
  2. headers(例如Content-Type:application/json; charset=utf-8 、不填)

5、接口返回信息和状态码等正确:

  1. 状态码正确
  2. 错误信息没有歧义(增:调用了一次新增接口之后再调一次新增接口,删:调用了一次删除接口之后再调一次删除接口)
  3. 返回数据的结构正确
  4. 返回数据字段值类型正确

6、数据操作正确性验证:

如果接口是操作数据相关的,需要查看数据的流转和持久化是否正确完成,一般查看MySQL和Redis是否有相应的CUD操作即可

7、并发能力:

也就是对接口做性能测试,验证并发能力是否满足预期

8、接口权限/安全:

  1. 权限控制:当借口只有特定权限的用户才能操作时,验证不同权限的用户的处理逻辑
  2. 幂等校验:抓包工具拦截请求,修改敏感字断值
  3. 事务/锁校验:同时操作同一条数据的修改操作,给出正确信息
  4. 参数非明文:参数是否加密,加密规则是否易破解
  5. 密码复杂度:密码安全规则,密码的复杂程度校验

9、弱网验证:

弱网下,接口是否可以正常响应

 

posted @ 2024-11-07 21:17  海布里Simple  阅读(365)  评论(0编辑  收藏  举报