项目

一般

简介

功能 #15793

金银报价

张星星7 天 之前添加. 更新于 大约 7 小时 之前.

状态:
已解决
优先级:
普通
指派给:
开始日期:
2026-07-21
计划完成日期:
% 完成:

100%


描述

需求以及相关信息请看:
http://redmine.tajansoft.com/projects/gold-price-pusher/wiki/Wiki

测试背景
这是金银报价机器人系统。外部行情系统推送金价/银价行情到 market-api,系统按后台配置的报价规则计算新报价,然后通过钉钉群机器人发送报价消息。后台可以配置报价规则、消息模板、钉钉群,并查看消息推送清单。

重点测试流程

  1. 后台配置
  • 报价规则:金价、银价规则能查看、编辑、保存、公式预览。
  • 报价消息模板:模板内容必填;支持参数 {{quote_price}}、{{datetime}}、{{y}}、{{m}}、{{d}}、{{h}}、{{min}}、{{s}}。
  • 钉钉群:新增、编辑、启用/禁用;加签 secret 开启时必须能正常发送。
  1. 行情推送
  • 推送有效金价行情后,满足规则时生成金价报价。
  • 推送有效银价行情后,满足规则时生成银价报价。
  • 重复行情不应重复生成报价。
  • 非交易时间、缺少必要行情、规则错误时,不应推送钉钉,但行情应正常接收。
  1. 钉钉推送
  • 启用群能收到消息。
  • 禁用群不应收到后续 pending 任务消息。
  • 修改群 webhook/secret 后,后续发送应使用最新配置。
  • 模板参数应被正确替换,例如时间、报价金额。
  • 钉钉返回成功时,推送清单状态为成功。
  • webhook 错误、关键词不匹配、签名错误等明确失败时,推送清单状态为最终失败。
  • 超时或网络异常时,状态为最终结果未知,不自动重复推送。
  1. 消息推送清单
  • 默认显示最近 7 天。
  • 可以按处理完成时间、状态、推送群查询。
  • 钉钉响应摘要、错误信息长文本不能把表格撑乱,应截断并能悬浮查看。
  • 状态、金价/银价展示有颜色标识。
  • 导出功能可正常导出查询结果。

重点异常场景

  • RabbitMQ 暂停或不可用:行情仍能入库,任务后续应通过数据库扫描兜底处理。
  • task 服务重启:pending 任务应能继续处理;sending 超时任务应变成最终结果未知。
  • 新报价产生时,旧的未发送 pending 任务应变成已被新报价替代,不应再发送。
  • 同一个金属、同一个钉钉群,不应出现并发重复发送。

子任务

错误 #15797: 金银报价 问题已关闭蔡伟

历史记录

#1张星星 更新于 7 天 之前

  • 描述 已更新。 (diff)

#2张星星 更新于 7 天 之前

  • 描述 已更新。 (diff)

#3张星星 更新于 7 天 之前

  • 描述 已更新。 (diff)

#4蔡伟 更新于 大约 7 小时 之前

  • 状态新建 变更为 已解决

测试ok
测试点:
1、API 接口测试:签名验证 (SHA1)、金价数据接收、银价数据接收、参数校验(PriceTime、枚举值)、数据重复不会处理
2、报价公式测试:金价报价公式 (步长0.5)、金价报价公式 (步长0.1)、银价报价公式、白银单位换算、精度验证
3、触发规则测试:金价、银价上/下限触发、稳定区间(不触发)、边界值测试
4、钉钉推送测试:金价、银价消息推送、模板参数替换、钉钉加签、多群推送
5、异常场景测试:数据缺失、报价不变不重复推送、MQ不可用时任务留库、task服务重启、非交易时段
6、配置管理测试:交易窗口配置、规则修改、消息模板配置、钉钉群配置(启用/禁用)
7、数据库分区测试:分区列表、分区连续性、未来分区、分区数据量(模拟了1000条)、分区重建

导出 Atom PDF