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

98 阅读4分钟

📝 博主首页 :  「烟雨 江畔」 ,同名公众号 :「伤心的辣条」

📝 面试求职:  「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)

📝 职场经验干货:

软件测试工程师简历上如何编写个人信息(一周8个面试)

软件测试工程师简历上如何编写专业技能(一周8个面试)

软件测试工程师简历上如何编写项目经验(一周8个面试)

软件测试工程师简历上如何编写个人荣誉(一周8个面试)

软件测试行情分享(这些都不了解就别贸然冲了.)

软件测试面试重点,搞清楚这些轻松拿到年薪30W+

软件测试面试刷题小程序免费使用(永久使用)


1、通过性验证:

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

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

必填参数:针对每个必填参数,都设计一条参数为空的测试用例,接口错误信息返回正确 非必填参数:设计一条用例所有非必填的参数都传入值,非必填参数(类型,范围)不正确,是否给出合理提示 参数值范围:参数的值在/不在接口文档中规定参数值范围内 长度边界值:符合长度范围内的,长度边界值,超过长度边界值的类型:符合参数类型的,不符合参数类型的(数组,字符串,正数,负数,整数,小数,小数点位数,中文,英文,特殊符号) 特殊值:空、null、"null"、""、" "、0、值的前后带有空格、特殊符号等 接口文档中不存在的参数:接口传入文档中不存在的参数不会异常 接口中传入的参数被覆盖:重复传入相同的key,但value不同 传入的参数格式不对:非json、少括号 参数个数:如果接受列表类型的参数,如果对列表大小没有进行限定则传入一个超大列表,如果对列表大小进行了规范则需要测试列表大小的边界值;接口能否正确返回数据; PS:后端代码中一般会有专门的代码来处理接口入参的校验,可以通过查看研发的代码来帮助提高接口参数校验测试的效率,如java工程中的javax.validation.constraints。

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

image.png

3、参数组合:

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

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

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

4、接口前提条件验证:

前提条件是否满足:

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

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

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

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

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

7、并发能力:

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

8、接口权限/安全:

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

9、弱网验证:

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