# 黑盒自测结果报告(接口级) - 日期:2026-08-27 - 环境:`http://cfc.iwintrue.com`(DNS → 192.168.16.251,同一台服务器同时承载 dev 库 `zxyj @3306`) - 方式:按 `BLACKBOX-TEST-PLAN.md` 4.x 用例的接口段执行(登录→种子数据→BUG 回归→主链路) - 凭据:种子管理员 `13800138000 / admin123`(DatabaseInitializer 创建) - 脚本(可复测):`tests/selfcheck-plan-chain.ps1` ## 1. 执行结果汇总 | # | 用例 | 接口 | 状态 | 证据 | |---|---|---|---|---| | E2E-00 | 管理端密码登录 | POST /api/admin-auth/login-by-password | ✅ 200 | token 正常签发 | | P0-3 | 方案生成规则列表 | POST /api/admin/plan-rules/list | ✅ 200 | `data=[{id:1, dimension:attention, scoreMin:0, scoreMax:60, templateId:38, priority:1, isActive:true}]` | | P0-4 | 报告解析中台类型列表 | POST /api/admin/report-parser/types | ⚠️ 间歇性 | 首次 200(`records[0] typeId=gut_flora`),随后同一请求稳定 500(5 连发 + 4 种 body) | | A-03 | 方案管理列表(admin 全量,不筛家庭) | POST /api/guide/plans/family-list | ✅ 200 | `data:[]`(admin 无家庭不再报 noFamily) | | TCH-11 | 成长计划列表 | POST /api/growth/plan/list | ❌ HTTP200/业务500 | message=服务器内部错误 | | A-02 | 全局任务统计 | POST /api/admin/tasks/stats | ✅ 200 | `total=7, today=6` | | A-05 | 注册重复报告类型(幂等) | POST /api/admin/report-parser/types/save | ❌ 500 | 应 400「typeId 已存在」 | | AAA-16 | 参数校验:空 body 删知识库 | POST /api/admin/knowledge-base/delete | ❌ 500 | 应 400 提示 id 不能为空(BUG-K) | | A-11 | 创建勋章(badgeId 自动生成) | POST /api/badges/create | ❌ 500 | BUG-F 未生效(线上仍因 badge_id NOT NULL 崩溃) | | A-12 | 新增供应商(字段契约映射) | POST /api/admin/supplier/save | ❌ 500 | BUG-G 未生效 | | BUG-H | 已发布活动提交审核 | POST /api/admin/activity/submit-review {id:38} | ❌ 500 | 应 400 业务提示(BUG-H 未生效) | | BUG-I | 查询知识库 | POST /api/admin/knowledge-base/get {id:1} | ❌ 500 | 契约未对齐 / 关联表异常 | | A-14a | 新建知识条目(自测数据) | POST /api/admin/knowledge-base/save | ✅ 200 | 落库 id=4(BLACKBOX,残留) | | A-14b | 删除知识条目(自测数据) | POST /api/admin/knowledge-base/delete {id:4} | ❌ 500 | BUG-I 未生效(残留未清理) | | A-08 | 创建文章(防超时回归) | POST /api/admin/articles/create | ✅ 200 | 102ms 返回(短文;长文 8000 字场景未复现) | ## 2. 结论 1. **线上环境未部署包含本轮修复的后端代码。** 勋章创建、供应商保存、活动提交审核、知识库查询/删除、空参删除——6 个失败点与任务书 BUG-F/G/H/I/K 的"旧版 500"行为完全一致;`growth-plan /list` 端点存在(HTTP 200 而非 404)但业务 500,与"部分旧版接口 + 未迁移 DB"特征相符。 2. **种子/中台数据已在库**(规则 id=1、报告类型 gut_flora id=1,createdAt=2026-08-24),但与本轮 DatabaseInitializer 新写的种子同源存疑(时间早于本轮代码),来源需确认(人工录入 or 已部署过某版本)。 3. **环境存在不稳定/变更迹象**:`report-parser/types` 同一 token、同一 body 首次 200、随后稳定 500——测试窗口内线上可能发生过重启/回滚/部署。此类间歇行为需在环境稳定后复测。 4. 文章创建实测 102ms 快速返回,**未复现 10s 超时**(短文场景),长文 + 微信检测慢的网络场景需在联网环境再压测。 ## 3. 测试残留数据(在线,可清理) | 类型 | 标识 | 处理 | |---|---|---| | 知识库条目 | id=4「BLACKBOX自测知识…」 | 部署修复后可经 delete 清理 | | 文章 | id=96「BLACKBOX自测文章…」 | 可在运营后台下架/删除 | ## 4. 本轮未能覆盖(环境受限) - UI 级用例(小程序/管理端页面操作、白屏复现)——需要浏览器环境与登录态。 - 报告 PDF 上传链路——本机无「募极生物菌群报告」官方样张(仓库仅有 reference JSON)。 - 方案激活→孩子任务打卡闭环——库内无 generated 方案(family-list 为空)且缺孩子端账号。 ## 5. 行动建议 1. 将最新后端构建部署到 192.168.16.251(或 cfc.iwintrue.com 上游),重启后运行迁移与种子。 2. 复跑 `tests/selfcheck-plan-chain.ps1`,预期:TCH-11 200、A-05 400、A-11/A-12/A-14b/AAA-16 全部 200 或 400 业务提示,仅剩真实环境问题。 3. 确认 `types` 接口间歇 500 的原因(部署后复测;若仍有,抓后端日志定位 SQL/空指针)。 4. 确认规则/报告类型种子数据的来源(人工 or 已部署版本),避免与代码种子重复执行造成双写。