19. 定时任务和消息通知怎么测试
定时任务和消息通知是业务系统的重要功能。
订单超时关闭、优惠券过期、报表定时生成、消息推送、邮件通知,都涉及定时任务和消息通知。
一、定时任务要测什么
定时任务测试要覆盖:
- 任务触发时间;
- 任务执行逻辑;
- 任务执行结果;
- 任务执行失败处理;
- 任务并发执行;
- 任务重复执行;
- 任务性能;
- 任务日志记录。
比如订单超时关闭任务:
- 任务是否在指定时间触发;
- 超时订单是否被正确关闭;
- 关闭后库存是否恢复;
- 关闭后优惠券是否退回;
- 任务执行失败是否有重试;
- 多个订单同时关闭是否正常;
- 任务重复执行是否幂等;
- 大量订单关闭是否超时;
- 任务执行是否有日志记录。
二、任务触发时间要测试
定时任务触发时间要验证:
- 任务是否按指定时间触发;
- 任务是否按指定间隔触发;
- 任务是否在指定条件触发;
- 任务是否错过触发时间后补执行。
比如优惠券过期任务:
- 任务是否每天凌晨执行;
- 任务是否每小时执行;
- 任务是否在优惠券过期时间点执行;
- 任务错过执行时间后是否补执行。
三、任务执行逻辑要测试
定时任务执行逻辑要验证:
- 任务是否正确筛选目标数据;
- 任务是否正确执行业务逻辑;
- 任务是否正确更新数据状态;
- 任务是否正确生成关联数据。
比如报表生成任务:
- 任务是否筛选昨日订单数据;
- 任务是否正确计算统计指标;
- 任务是否正确生成报表记录;
- 任务是否正确生成报表文件。
四、任务执行失败要测试
定时任务执行失败要验证:
- 任务失败是否有重试;
- 任务失败是否有告警;
- 任务失败后数据是否有处理;
- 任务失败是否有日志记录。
比如订单关闭任务:
- 任务执行失败是否自动重试;
- 任务多次失败是否有告警通知;
- 任务失败订单是否有补偿处理;
- 任务失败是否有详细日志。
五、任务并发和重复要测试
定时任务并发和重复要验证:
- 任务并发执行是否正常;
- 任务重复执行是否幂等;
- 任务执行过程中是否可手动触发;
- 手动触发是否和定时触发冲突。
比如库存同步任务:
- 多个商品同时同步库存是否正常;
- 任务重复执行是否不会重复扣减库存;
- 任务执行过程中手动同步库存是否正常;
- 手动同步和定时同步是否不会冲突。
六、消息通知要测什么
消息通知测试要覆盖:
- 通知触发条件;
- 通知发送渠道;
- 通知内容正确性;
- 通知发送时机;
- 通知发送失败处理;
- 通知重复发送;
- 通知接收确认。
比如订单支付成功通知:
- 支付成功是否触发通知;
- 通知是否发送短信和邮件;
- 通知内容是否包含订单信息;
- 通知是否在支付成功后立即发送;
- 通知发送失败是否有重试;
- 支付成功是否重复发送通知;
- 用户是否确认收到通知。
七、通知触发条件要测试
消息通知触发条件要验证:
- 正常触发是否发送通知;
- 异常触发是否发送通知;
- 触发条件变更是否生效;
- 不满足条件是否不发送通知。
比如审批完成通知:
- 审批通过是否发送通知;
- 审批拒绝是否发送通知;
- 审批撤销是否发送通知;
- 审批未完成是否不发送通知。
八、通知发送渠道要测试
消息通知发送渠道要验证:
- 短信通知是否发送成功;
- 邮件通知是否发送成功;
- App 推送是否发送成功;
- 微信通知是否发送成功;
- 多渠道通知是否同时发送。
比如订单状态变更通知:
- 短信是否发送到用户手机;
- 那邮件是否发送到用户邮箱;
- App 推送是否显示在通知栏;
- 微信是否发送模板消息;
- 用户是否同时收到短信和邮件。
九、通知内容要测试
消息通知内容要验证:
- 通知内容是否完整;
- 通知内容是否正确;
- 通知内容是否可点击跳转;
- 通知内容是否可个性化。
比如订单发货通知:
- 通知是否包含订单号;
- 通知是否包含物流信息;
- 通知是否可点击跳转到订单详情;
- 通知是否根据用户语言显示不同内容。
十、面试回答模板
可以这样回答:
定时任务和消息通知测试我会从触发条件、执行逻辑、执行结果、失败处理、并发重复、发送渠道、内容正确性和接收确认几个方面展开。定时任务测触发时间、执行逻辑、执行结果、失败重试告警、并发执行、重复幂等、性能超时、日志记录;触发时间测指定时间、指定间隔、指定条件、错过补执行;执行逻辑测筛选数据、业务逻辑、状态更新、关联数据;失败处理测重试、告警、数据补偿、日志记录;并发重复测并发执行、重复幂等、手动触发、冲突处理。消息通知测触发条件、发送渠道、内容正确性、发送时机、失败重试、重复发送、接收确认;触发条件测正常触发、异常触发、条件变更、不满足条件;发送渠道测短信、邮件、推送、微信、多渠道;内容测完整性、正确性、跳转、个性化。
这个回答能体现你有完整的定时任务和消息通知测试思路。
十一、下一步建议
建议你把一个熟悉的定时任务或消息通知功能按上面维度重新整理:
- 定时任务测试点;
- 触发条件测试点;
- 执行逻辑测试点;
- 失败处理测试点;
- 消息通知测试点;
- 发送渠道测试点。
