# 测试报告(当前三项功能与项目数据集) > 测试日期:2026-09-12 > 测试对象:`D:\nanfangjijin\group_fqcd_jr`,分支 `yc` > 测试数据:`D:\nanfangjijin\group_fqcd_jr\data` > 执行方式:独立 MySQL 测试库 `jr_agent_test` + 本地离线数据集验证 > 测试依据:根目录 `docs/项目测试/测试架构.md` ## 1. 测试概况 ### 1.1 数据集概况 | 数据类型 | 数量 | 验证结果 | |---|---:|---| | 场外邮件 `.eml` | 13 | 全部可解析,均包含 1 个附件 | | 推介业绩文件 `.csv/.xlsx` | 8 | 全部通过 `parse_performance_file`,共 373 行 | | 图片、照片、海报 `.png/.jpg` | 35 | 全部通过 Pillow 文件校验 | | 推介材料 `.pptx` | 10 | 全部可被 `python-pptx` 打开,共 100 页 | | PDF 文件 | 9 | 全部具备有效 PDF 文件头 | ### 1.2 三项功能结果 | 功能 | 验证内容 | 结果 | |---|---|---| | 场外基金申购/赎回 | 识别字段、规则计算、NL2SQL、确认、通知、发送幂等 | **通过** | | 产品推介材料生成 | 真实业绩文件解析、曲线、PPTX、海报、权限和审核交付流程 | **通过** | | 金融 NL2SQL | 意图分类、表白名单、只读查询、模糊问题确认、场外查询字段 | **通过** | 补充:使用目录中的实际 XLSX 与经理照片生成临时产物成功: - 业绩曲线 PNG:生成成功; - PPTX:3 页,生成成功; - 海报 PNG:`1800×2600`,生成成功。 ### 1.3 自动化回归 | 测试范围 | 通过 | 失败 | 跳过/阻塞 | 说明 | |---|---:|---:|---:|---| | 三功能定向单元、契约测试 | 69 | 0 | 0 | 通过 | | 场外集成回归(修正测试身份后) | 10 | 0 | 0 | 之前 8 条失败已全部恢复 | | 全量测试 | 559 | 0 | 1 | 独立测试库执行,1 项 Redis 集成测试跳过 | ## 2. 缺陷清单 ### 2.1 已修复:场外旧集成用例使用失效的操作人编号 | 项 | 内容 | |---|---| | 涉及接口 | 场外确认、NL2SQL 触发、识别重试、通知创建与发送 | | 涉及用例 | `tests/integration/test_offsite_fund_api.py`、`tests/integration/test_offsite_notification_send.py` | | 复现 | 测试上下文 `user_id="1"`,请求体继续传 `operator_id="operator-001"` | | 修复结果 | 将成功路径的 `operator_id` 同步为测试上下文用户 `"1"` | | 复测结果 | `tests/integration/test_offsite_fund_api.py` 与 `tests/integration/test_offsite_notification_send.py` 共 10 项全部通过 | | 结论 | 生产操作人防伪校验保持不变,问题属于旧集成测试数据不同步 | ### 2.2 已修复:适当性单元测试与当前服务接口不同步 | 项 | 内容 | |---|---| | 文件 | `tests/unit/service/test_suitability_service.py` | | 修复结果 | 测试改为使用 `SuitabilityToolInput`、`RequestContext` 和权威风险画像替身 | | 复测结果 | 适当性单元测试 `9 passed`,全量测试可正常收集 | ### 2.3 已处理:权威文档编号检查 | 项 | 内容 | |---|---| | 检查 | `python tools/check_authoritative_docs.py` | | 处理 | 将明确标记为历史稿的旧文档排除出当前编号校验 | | 实际结果 | `checked 18 documents, no number collision` | | 结论 | 当前权威接口文档编号检查通过 | ### 2.4 已修复:静态类型检查兼容性问题 涉及 `offsite_fund_service.py`、`model_gateway.py`、`health_service.py`、`worker/runtime.py`。 本轮补齐邮件解析类型声明并处理标准库 `BytesParser` 与 `policy.default` 的类型存根兼容性后, `python -m mypy app` 已通过(124 个源文件)。 ## 3. 未覆盖风险 | 项目 | 原因 | 风险等级 | |---|---|---| | 真实 IMAP 收信 | `.env` 中真实收信开关关闭,本次使用离线 `.eml` 数据集 | 中 | | 真实 OCR / DeepSeek | 外部识别开关关闭,未调用真实外部服务 | 中 | | 真实 SMTP | SMTP 关闭且 dry-run,未发送真实邮件 | 高 | | Redis | 健康检查显示不可用,真实限流链路未覆盖 | 中 | | Neo4j | `127.0.0.1:7687` 连接被拒绝,关系链路未覆盖 | 中 | | Milvus | 未执行真实连接验证 | 中 | | 前端浏览器端到端 | 本轮未启动前端浏览器验收 | 低 | | 性能压测 | 未执行 `performance_baseline.py` | 低 | ## 4. 验收结论 | 验收项 | 结论 | |---|---| | 数据集文件可读、可解析 | **通过** | | 产品推介材料真实数据生成 | **通过** | | 金融 NL2SQL 定向单元/契约测试 | **通过** | | 场外申购赎回完整人工确认与通知闭环 | **通过** | | 参数校验与越权基础回归 | **通过(已执行范围内)** | | 防重与操作人身份校验 | **通过** | | 自动化回归 100% | **通过(559/559,另 1 项跳过)** | | 本轮总体验收 | **通过(Redis 外部链路除外)** | ## 5. 建议 1. 启动 Redis 后补跑真实限流链路,消除本轮唯一跳过项。 2. 配置并启动真实 IMAP、OCR/DeepSeek、SMTP、Neo4j、Milvus 后补跑外部依赖链路。 3. 启动前端后补做浏览器端到端验收。