聊聊接口测试用例设计规范

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、弱网验证:

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

相关推荐
qq_4337169521 小时前
Selenium+Pytest自动化测试框架 ------ 禅道实战
自动化测试·软件测试·selenium·单元测试·pytest·接口测试·压力测试
牧魂.8 天前
软件测试入职要求汇总
自动化测试·软件测试·功能测试·接口测试·性能测试
小码哥说测试10 天前
Selenium+Pytest自动化测试框架 ------ 禅道实战
自动化测试·软件测试·selenium·测试工具·单元测试·pytest·接口测试
小码哥说测试14 天前
接口测试用例设计的关键步骤与技巧解析!
自动化测试·测试工具·jmeter·职场和发展·测试用例·接口测试·postman
qq_4337169515 天前
Postman断言与依赖接口测试详解!
自动化测试·软件测试·功能测试·测试工具·mysql·接口测试·postman
土小帽软件测试16 天前
jmeter基础02_下载安装jmeter
测试工具·jmeter·接口测试·软件测试学习
FIT2CLOUD飞致云17 天前
任务中心全新升级,新增分享接口文档功能,MeterSphere开源持续测试工具v3.4版本发布
开源·接口测试·metersphere·团队协作·持续测试·测试管理
qq_4337169517 天前
性能测试 —— MySQL性能测试方案设计!
自动化测试·功能测试·测试工具·mysql·接口测试·postman·性能测试