接口测试
2022-12-25 18:07:00 4 举报
AI智能生成
为什么做接口测试?接口测试与功能测试是否重复?接口测试设计的逻辑思维方式是?该文件是我对接口测试的理解,也借鉴了网上的一些资料文档。
作者其他创作
大纲/内容
什么是接口测试?
定义:接口测试是测试系统组件间接口的一种测试
被测对象:外部系统与系统之间以及内部各个子系统之间的交互点,重点是检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等
执行:通过工具或代码模拟 http/rpc 请求的发送与接收
为什么要做接口测试?
系统复杂度不断上升,依靠 UI 层测试的成本急剧增加且效果急剧下降,而接口测试具有成熟的自动化解决方案
接口测试相对容易实现自动化持续集成,并且相对于 UI 自动化也更加稳定,可以降低缺陷成本并缩短测试周期
前端操作有限无法覆盖接口的使用场景,并且无法覆盖日志打印、监控报警等内容
后端接口测一遍 ,前端也测一遍,是不是重复测试了?
基本功能是重合度最高的部分
规则边界和异常场景主要前端测试覆盖有限
性能等专项测试,前后端的检查点完全不同
结论:接口测试侧重于数据处理逻辑和系统健壮性,UI 测试侧重于页面展示逻辑、界面与服务端的集成验证。
测试设计质量如何评判?
参数验证是否达到要求(边界、业务规则)
入参
业务功能覆盖是否完整
功能点
业务规则覆盖是否完整
业务逻辑
接口异常场景覆盖是否完整
异常逻辑
响应数据是否符合业务要求
性能指标是否满足要求
可服务性
性能指标是否满足要求
可服务性
告警设置是否满足要求
可服务性
日志是否满足规范要求
可服务性
配制是否满足规范要求
可服务性
安全指标是否满足要求
安全
代码覆盖率是否达到要求
分支覆盖率
行覆盖率
自动化覆盖率是否达到要求
效率
用例设计过程?
基于需求文档和接口设计文档确定使用场景和性能要求,编写测试用例
UI 层
页面元素
功能交互
异常交互
兼容性
稳定性
接口层
入参校验
业务逻辑(基本功能&边界场景)
异常逻辑
返回值校验
性能
稳定性
通过 codeReview/codeDiff 来补充接口测试用例
基于用户反馈等反哺测试用例
基于需求和用户场景的变更定期维护测试用例
如何结构化设计测试用例?
基于需求和设计文档进行设计
入参校验
是否必选
参数有无、空或为null
参数的顺序、个数、类型
参数类型数值大小、输入的数值的范围
参数字串长短,Null、max、max+1
特殊字符
参数组合测试
因果图法
考虑参数的各种组合、参数之间的制约关系
返回数据测试
返回json数据的层次关系是否与文档一致
数值类型数据: 特别是金额,负数、小数转为json输出是否正确
接口返回数据和数据库一致
接口返回数据符合业务逻辑
对于列表,应该根据请求参数,也应该验证列表的长度是否与期望值一致,如分页查询
errCode 和 errMsg 是否正确和对用户友好
是否存在冗余字段
返回特殊值,如无、空或为null
基本功能测试(业务测试)
熟读需求文档和接口设计文档,了解业务流程规则和每个接口
的使用场景方式,设计符合业务逻辑和接口使用场景的用例
的使用场景方式,设计符合业务逻辑和接口使用场景的用例
正常场景、业务规则边界和异常场景
异常情况测试
非入参导致其他逻辑异常,如用户越权操作
关联系统出现宕机、超时或者无响应的状态时,接口返回提示正确,业务逻辑正确
幂等测试
针对连续重复提交的情况的进行测试,特别是涉及到资金交易的场景
事务性测试
一个业务流程包含多个操作步骤,如果某个操作失败,那么整个操作需要回滚。
比如:结构化课程训练时视频文件 MD5 校验失败
比如:结构化课程训练时视频文件 MD5 校验失败
安全测试
敏感信息是否明文传输/存储
基于代码实现补充用例
开发的代码实现的业务逻辑是否正确
设计文档未体现的隐含测试点
中间件测试
缓存
是否存在缓存穿透?一直访问一个数据库不存在的数据
是否存在缓存击穿/雪崩?热 Key 或批量 Key 在某一时刻过期
缓存和数据库数据是否一致?高并发下不一致问题
缓存是否存在慢查询?高并发下看慢查询统计
异步
SQL 测试
SQL 是否符合规范
SQL 正确性
为了保证系统高可用完善
性能指标测试
响应时间
响应数据是否过大
QPS 并发承载能力
错误率
稳定性测试
磁盘 IO
网络 IO
CPU 使用
内存开销
熔断降级
告警
报警阈值设置是否合理(需要人工干预则报警)
告警定级是否合理
告警内容是否有价值
日志
日志点是否符合规范
日志内容是否可读和有价值
配制
防差错设计,必要时给出风险提示并要求二次确认
配制是否足够简单,是否与使用方匹配
配制的生效原则(实时、非实时或定时)
并发测试
并发引发的资源争夺问题,比如:死锁
0 条评论
下一页