背景:
在团队内,如果没有明确的规范来指导如何设计接口测试用例,可能会导致测试场景考虑不全面,从而遗漏一些关键的测试点。还可能导致测试过程中重复工作或者遗漏测试项,需要反复修改和补充测试用例,影响测试进度和效率。
所以,制定接口测试用例设计规范很有必要,下面将展开阐述。
接口测试用例设计细节和规范:
首先,明确接口所属的项目,模块,接口信息。
其中,接口信息关键组成有:
接口名称、接口协议、域名/ip:port、URI、请求方式、请求头、请求体、返回体
根据接口提供的信息,从以下角度编写测试用例:
主流程,提取最核心的,符合该接口业务功能的接口请求,预置好前置步骤,传入对应的正向参数,断言正确预期结果。
输入校验:
关注headers中涉及身份信息的入参校验的安全性和合法性,以cookies中userid为例
userid过期
userid无效
userid的key值缺失
请求体中必填字段的校验(观察响应体,对齐接口文档,必填项缺失时是否有非200状态码返回以及对应msg):
key缺失
value为None
value为空字符串。
选填字段校验:
需要明确选填字段的设置是否符合业务要求,后端服务一定会用到的参数是否为必填项。
移除选填字段时是否会影响接口结果
入参类型的校验:
针对数值型:需考虑边界值,特殊值(0,-1),小数,超长位数数值,字符串形式的数值,空(None,null);
字符串类型:空字符串,特殊字符(@#¥&*),英文大小写...
列表或字典类型:取值范围内外的边界值,特殊值[],{},空None、null;
布尔值:true,false,null;
时间戳:取值范围内外的值,超长位数时间戳,足够小的时间戳,负数
内部处理逻辑校验:
约束条件:业务功能数值限制,状态限制,关系限制,时间限制等
越权:横向、纵向越权校验
业务逻辑时序:比如需要先经过业务a处理才能到达业务b处理,必须要按照该流程顺序执行
唯一性数值的重复校验
不同的处理数量是否返回预期的响应体
遍历接口文档中定义的枚举值
状态转换,比方说执行中、执行完成的状态切换
响应体校验:
状态码是否符合接口文档
涉及敏感信息输出需校验是否加密
校验是否有额外参数未体现在接口文档中
校验响应体的参数变量类型和值的正确性