定时任务测试分享:
job测试方案的介绍:
需求澄清
- 明确业务需求:与业务、产品、开发了解需求背景,用户的数量,用户场景等信息。
- 明确测试范围:与产品、开发共同评估,具体对应的场景,具体涉及的接口和表,数据量,被调用关联方链路,了解是否使用Redis和mq等。
- 明确测试目的:评估数量为性能测试提供依据,检查预估下是否满足任务需求的等。
测试策略:
- 性能评估
- 数据量评估
- 数据逻辑评估
- 场景梳理
测试案例
- 编写测试案例
- 案例评审
测试数据准备
- 制造符合场景的测试数据,数量级后,调度job
测试执行,形成测试结论。
job常用测试场景:
数据准确性测试
- 检查并记录数据是否准确,是否存在异常,或者错误信息,如:数字检查,日期,精度,检查是否存在异常,空,null
- 根据业务场景检查数据:例如:年龄大于0的正数,检查数据字符符合预期,有无乱码等。
数据完整性:
- 相较源表比较目标数据量和数据值是否符合预期,数据的记录和信息是否完整,是否缺失,确保加载记录和预期基数是否匹配。
数据逻辑检查
- 计算符合业务逻辑,运算符,函数使用正确
- 异常值,脏数据处理符合预期
- 字段类型一致
- 数据存储检查一致
job调度
- 验证任务本身是否支持重试机制
- 是否支持定时配置
- 是否支持失败告警
- 验证依赖的父任务是否配置到位
- 验证依赖层级是否合理
- 验证如无是否在规定时间内完成
上下游联调:
- 接口正常调用,并同步业务处理后的逻辑
- 调用关联接口接口并发验证
- 调用接口超时验证
- 消息队列:消息速率,大小考虑等。
job场景checkList
测试中我们可以把job测试过程中中常用的场景写成checklist,每次编写案例的时候可以作为参考(如上述场景即可用来编写案例的参考),如下点也可以作为检查点:
原始数据分析 | 明确原始数据的来源,数据量,掌握原始数据各字段的含义 |
---|---|
job调度时间检查 | 检查job的调度规则,调度频率,事件,是否指定服务器等 |
job触发条件检查 | job开启关闭的条件,及这个操作带来的影响分析 |
job调度逻辑的检查 | 是否是多线程处理,是否存在线程死锁,是否限流机制等 |
job数据处理检查 | job处理各数据处理结果正确性检查,是否存在数据重复处理事务回滚机制 |
job性能检查 | job处理耗时,耗时带来的影响 |
job容错机制检查 | 接口异常,接口超时,关联系统异常容错机制,是否存在重试 |
SQL检查点 | 涉及的表,数据规模,可能遍历的数据量是多少,避免慢SQL |