功能 #15793
需求以及相关信息请看:
http://redmine.tajansoft.com/projects/gold-price-pusher/wiki/Wiki
测试背景
这是金银报价机器人系统。外部行情系统推送金价/银价行情到 market-api,系统按后台配置的报价规则计算新报价,然后通过钉钉群机器人发送报价消息。后台可以配置报价规则、消息模板、钉钉群,并查看消息推送清单。
重点测试流程
1. 后台配置
- 报价规则:金价、银价规则能查看、编辑、保存、公式预览。
- 报价消息模板:模板内容必填;支持参数 {{quote_price}}、{{datetime}}、{{y}}、{{m}}、{{d}}、{{h}}、{{min}}、{{s}}。
- 钉钉群:新增、编辑、启用/禁用;加签 secret 开启时必须能正常发送。
2. 行情推送
- 推送有效金价行情后,满足规则时生成金价报价。
- 推送有效银价行情后,满足规则时生成银价报价。
- 重复行情不应重复生成报价。
- 非交易时间、缺少必要行情、规则错误时,不应推送钉钉,但行情应正常接收。
3. 钉钉推送
- 启用群能收到消息。
- 禁用群不应收到后续 pending 任务消息。
- 修改群 webhook/secret 后,后续发送应使用最新配置。
- 模板参数应被正确替换,例如时间、报价金额。
- 钉钉返回成功时,推送清单状态为成功。
- webhook 错误、关键词不匹配、签名错误等明确失败时,推送清单状态为最终失败。
- 超时或网络异常时,状态为最终结果未知,不自动重复推送。
4. 消息推送清单
- 默认显示最近 7 天。
- 可以按处理完成时间、状态、推送群查询。
- 钉钉响应摘要、错误信息长文本不能把表格撑乱,应截断并能悬浮查看。
- 状态、金价/银价展示有颜色标识。
- 导出功能可正常导出查询结果。
重点异常场景
- RabbitMQ 暂停或不可用:行情仍能入库,任务后续应通过数据库扫描兜底处理。
- task 服务重启:pending 任务应能继续处理;sending 超时任务应变成最终结果未知。
- 新报价产生时,旧的未发送 pending 任务应变成已被新报价替代,不应再发送。
- 同一个金属、同一个钉钉群,不应出现并发重复发送。
http://redmine.tajansoft.com/projects/gold-price-pusher/wiki/Wiki
测试背景
这是金银报价机器人系统。外部行情系统推送金价/银价行情到 market-api,系统按后台配置的报价规则计算新报价,然后通过钉钉群机器人发送报价消息。后台可以配置报价规则、消息模板、钉钉群,并查看消息推送清单。
重点测试流程
1. 后台配置
- 报价规则:金价、银价规则能查看、编辑、保存、公式预览。
- 报价消息模板:模板内容必填;支持参数 {{quote_price}}、{{datetime}}、{{y}}、{{m}}、{{d}}、{{h}}、{{min}}、{{s}}。
- 钉钉群:新增、编辑、启用/禁用;加签 secret 开启时必须能正常发送。
2. 行情推送
- 推送有效金价行情后,满足规则时生成金价报价。
- 推送有效银价行情后,满足规则时生成银价报价。
- 重复行情不应重复生成报价。
- 非交易时间、缺少必要行情、规则错误时,不应推送钉钉,但行情应正常接收。
3. 钉钉推送
- 启用群能收到消息。
- 禁用群不应收到后续 pending 任务消息。
- 修改群 webhook/secret 后,后续发送应使用最新配置。
- 模板参数应被正确替换,例如时间、报价金额。
- 钉钉返回成功时,推送清单状态为成功。
- webhook 错误、关键词不匹配、签名错误等明确失败时,推送清单状态为最终失败。
- 超时或网络异常时,状态为最终结果未知,不自动重复推送。
4. 消息推送清单
- 默认显示最近 7 天。
- 可以按处理完成时间、状态、推送群查询。
- 钉钉响应摘要、错误信息长文本不能把表格撑乱,应截断并能悬浮查看。
- 状态、金价/银价展示有颜色标识。
- 导出功能可正常导出查询结果。
重点异常场景
- RabbitMQ 暂停或不可用:行情仍能入库,任务后续应通过数据库扫描兜底处理。
- task 服务重启:pending 任务应能继续处理;sending 超时任务应变成最终结果未知。
- 新报价产生时,旧的未发送 pending 任务应变成已被新报价替代,不应再发送。
- 同一个金属、同一个钉钉群,不应出现并发重复发送。