1.一些概念
1.1接口:主要是子某块和子系统间交互并相互作用的部分。
1.2接口测试:指针对子模块子系统间接口进行测试。
2.接口测试常见问题
2.1传入参数不当,导致程序crash。
2.2类型溢出,导致数据的写入和读出不一致。
2.3对象权限未做校验,导致可以访问其他用户敏感信息。
2.4状态处理不当,导致逻辑错乱。
2.5逻辑校验不完善,可利用漏洞获取非法利益。
3.接口测试用例设计
3.1分析
一个典型的接口包括三部分输入、接口处理逻辑、输出。输入是入参过程,输出可以有可以没有,调用接口,接口就会进行相应的逻辑处理。
3.2接口测试用例设计方向
(1)针对输出,可照参数类型设计用例。
(2)针对逻辑处理,可照逻辑设计用例。
(3)针对输出,可根据结果分析设计。
3.3针对输入设计
(1)数值型(int、long、float 、double)
测试方法:等价类、边界值、特殊值(0、负数)、遍历法(所有的取值范围遍历)
(2)字符串型
字符串长度:等价类、边界值、特殊值(空字符串)
字符串内容:特殊类型(中文、英文、大小写等)、特殊字符(~!@#$%&*、颜文字、emoji等)、敏感字符(涉黄、涉政、涉暴词)
(3)数组和链表
成员个数:等价类、边界值、特殊值(0等)
成员内容:等价类、重复法(去重)
(4)结构体
3.4针对逻辑处理设计
(1)约束条件分析
- 数值限制:分数、金币、等级等
- 状态限制:登录状态、禁言状态等
- 关系限制:绑定状态、好友状态等
- 权限设置:管理员等
- 时间约束:22:00点前等
- 数值约束:前100、评论数超过100等
(2)操作对象分析
- 用户访问属于自己操作范围的操作接口
- 用户访问不属于自己操作范围的操作接口
(3)状态转换分析
(4)时序分析:打乱接口调用顺序
3.5针对输出结果设计
(1)覆盖返回码
(2)接口超时
- 是否进行接口超时处理
- 接口超时后,又接受到请求的处理
3.6其他情况用例设计
(1)已废弃接口测试
(2)接口合理性分析
- 接口字段是否冗余
- 接口是否冗余
- 接口返回信息是否满足调用方的期望
- 接口定义是否满足所有的调用需求
- 接口定义调用是否方便