report-test-2026-11-11-R144.md 17 KB

测试负责人工作汇报(第 144 轮 · 2026-11-11 11:43 GMT+8)

角色:cfc-tester(测试负责人)|执行档:review(内网 cfc.iwintrue.com/admin + /frontend 浏览器自动化;langgraph 实派 192.168.16.251;未联网装依赖、未启停服务、未改生产代码) 基线 HEAD:c7c7523c8(R143 已推送至 origin/cfclub)= origin/cfclub,窗口零源码变更(后端/前端/langgraph git diff = 0)→ 后端/前端/Jest/根级全量结果对 R142 基线有效,本轮采「零漂移轮」策略:仅实跑浏览器 E2E(用户核心指令)+ 251 langgraph pytest + cfc-web/cfc-frontend Jest 采样,其余采信 R142/R143 基线。 节点:189:4090=200 但 api/info UnauthorizedError(鉴权门控,本轮回退本机串行)|251:4096=200(langgraph pytest 实派 43 例)|251:9000 /health=200|204:4090=000(B-95 第 15 轮) 分工:本机=浏览器全部 4 套 + cfc-web/cfc-frontend Jest 采样 + 报告编译 + 251 langgraph 实派(shell 直连)|189/204 不可用(189 鉴权门控 / 204 失联)→ 浏览器全量回退本机单节点串行 结论:⚠️ 有条件通过 —— 浏览器自动化(用户核心指令)28/28 全绿,cfc-web 116/116、cfc-frontend 601/3 全零漂移;langgraph 较 R143 由 40/3 退至 36/7(+4 红,根因 251 LLM 上游 429 免费额度耗尽,非代码回归);后端/前端/管理端/根级采信 R142/R143 基线零回归;G1/G3/G4/G5/G6/G8/G12 均达标;G2/G7/G9/G10/G11 仍未达阈值。 变更触发:langgraph 40/3 → 36/7 为可比结果实质变化(非纯窗口方差,4 例 intent 由绿转红)→ 已触发 push + 通知研发(见 §9)。


0. 基本信息

项目 内容
汇报人 cfc-tester(测试负责人)
汇报周期 2026-11-11(第 144 轮,跑测窗口 11:00–11:43)
负责模块/单元 cfc-backend(采信) · cfc-frontend(采样) · cfc-web(116/116 实跑) · cfc-langgraph(251 实派 43 例) · 浏览器 E2E(admin/frontend/shop/health/dx@本机) · 根级黑盒(采信)
执行档 review(离线;未装依赖、未启停服务、未改生产代码)

0.1 测试用例建设与执行

指标 数量 填写说明
本轮新增测试用例数 0 个 R143 后 SRS/API/测试用例零变更(git log c7c7523c8..HEAD -- docs/superpowers/specs docs/superpowers/api/API_REFERENCE.md tests/test-cases 0 命中)→ G12 合规零抖动
本轮验证执行测试数 71 个 浏览器 30(28 过 + 2 skip)+ langgraph 43(36 过 + 7 红)+ cfc-web 116 采样 + cfc-frontend 616 采样;全量基线 3782 例采信 R142/R143
用例通过率 94.37%(实跑口径) 实跑 PASS 68 / FAIL 7 / SKIP 2 / 总 77;全量基线 3782 例 98.55% 采信 R142/R143
新增覆盖资产 0 项 无 SRS 变更,无新契约

0.2 会话与任务分发

指标 数量 填写说明
分派任务数 2 个 ① 本机:浏览器 4 套 + cfc-web/cfc-frontend Jest 采样;② 251:langgraph pytest(122.69s,43 例 36/7)
恢复智能体会话数 0 个 无中断/重建
当前在用会话数 2 个 本机(done)/ 251=shell(done,pytest 完成退出)

0.2b 各会话当前工作状态

会话标签 会话 ID 当前状态 当前任务 静默/空闲时长 工作目录 备注
本机 localhost done 浏览器 4 套 + Jest 采样 — d:\cfc 28/28 + dx 2 skip;web 116/116;fe 601/3
251:4096 shell 直连 done langgraph pytest 122.69s /sc-data/cfc/cfc-langgraph 43 例 / 36 过 / 7 红(auto_tag 3 + intent 4,全 429 免费额度耗尽)
189:4090 — unknown(鉴权门控) 不可用 — — api/info=UnauthorizedError,本轮回退本机
204:4090 — unknown(000) 失联(B-95 第 15 轮) — — 不可用

0.3 问题处置

指标 数量 填写说明
新测试发现问题数 0 个 langgraph 7 红为环境性 429(B-134-4/B-142-2 延续+恶化),无新代码回归
已解决测试相关问题数 0 个 本轮无测试侧自闭环新增/解决
待解决测试相关问题数 7 类 后端 17 存量红 · 前端 3 预期 RED · 根级 16 环境红 · langgraph 7 环境红(B-142-2/B-134-4 恶化) · dx 2 端点 404(B-DX-1) · 204 节点失联(B-95) · 189 鉴权门控

0.4 本轮 git 提交与推送证据

提交 sha 关联键 阶段 触及文件 目标分支 已推送远端 备注
本轮 push R144 报告 + 通知 + 台账更新 测试闭环 docs/tdd/** cfclub 是 详见 §9 交付物(结果变化触发)

本轮无测试侧自处置产物(零 SRS 变更,无新契约/装置修复)。


1. 历史审查记录(仅作对照,不作为本轮结论依据)

轮次 时间 后端全量 langgraph 浏览器 前端 Jest 结论
R141 11-11 09:05 346 类 / 2937 例 / 99.11%(实跑)/ 22 红 251 实派 46 过 / 5 红 / 51 例 28/28 + dx 2 skip 557 过 / 47 红 / 12 跳 不通过(有条件)
R142 11-11 10:21 347 类 / 2946 例 / 99.29%(实跑)/ 17 红 251 实派 50 过 / 1 红 / 51 例 28/28 + dx 2 skip 601 过 / 3 红 / 12 跳 有条件通过
R143 11-11 11:30 采信 R142 251 实派 40 过 / 3 红 / 43 例 28/28 + dx 2 skip 采信 R142 有条件通过
R144(本轮) 11-11 11:43 采信 R142(347/2946/99.29%/17 红) 251 实派 36 过 / 7 红 / 43 例 28/28 + dx 2 skip 采样 601/3/12(采信 R142) 有条件通过

本轮改善/变化(对照 R143 基线)

项 R143 R144 判定
后端类/例 347 / 2946 采信(零源码变更) 零漂移
后端红例 17 采信 零回归
langgraph 43 例 / 40 过 / 3 红(ConnectError) 43 例 / 36 过 / 7 红(auto_tag 3 + intent 4,全 429 免费额度耗尽) −4 过 +4 红:intent_classifier 由 5/5 转 4 红(429→默认 chat 兜底→断言失败),根因 251 LLM 上游免费额度耗尽,非代码回归
前端 616 / 601 过 / 3 红 / 12 跳 采样 601/3/12(零 diff) 零漂移
管理端 116/116 采样 116/116 零漂移
浏览器 28/28 + dx 2 skip 28/28 + dx 2 skip(本机单节点串行) 零漂移(189 鉴权门控/204 失联→本机兜底,功能结果一致)
线上鉴权 5 端点 5/5 401 采信 R143(5/5 401) 零漂移(G8 ✅)
站点根 / 404 404(采信) 无实质变化
251 LLM 上游 ConnectError(R143) 429 RateLimitError(免费额度耗尽) 恶化(B-142-2/B-134-4 同族,根因由连接失败转为限流耗尽)

2. 项目画像(简版,SRS 口径)

维度 本轮事实
业务定位 家庭教育成长平台(五维能量 · 健康报告 · 测评订单 · 家庭邀请 · 商城 · AI 管家)
技术栈 Spring Boot 2.7.18 + MyBatis-Plus(Java 8,9082)· uni-app 小程序 Vue2 · Vue2+Element UI 管理端 · FastAPI+LangGraph+ChromaDB(9000)
模块结构 cfc-backend(347 测试类/365 控制器) · cfc-frontend(40 套件/616 例) · cfc-web(17 套件/116 例) · cfc-langgraph(51 例) · tests/(浏览器 30 + 根级黑盒 23)
关键路径 登录鉴权(JWT+/api/** 拦截) → 家庭/成员 → 五维能量 → 健康报告上传解析 → 健康方案 → 商城订单/支付 → AI 对话/分析
质量目标 全量通过率 ≥98%、零未归因红、SRS 场景锚点可追溯、CI 全量门禁

3. 详细测试结果

3.1 浏览器自动化(用户核心指令)— 本轮重点实跑 ✅

套件 节点 例数 结果 耗时 备注
admin-desktop 本机 5 5/5 通过 1.3m 登录/滑块/核心菜单,含真实登录态(cd tests/ 避免双版本 playwright 冲突)
frontend-mobile 本机 6 6/6 通过 47s 游客浏览/五维/TabBar/鉴权引导
shop-api 本机 4 4/4 通过 6s 价格排序契约(S1 需求)
health-contract 本机 13 13/13 通过 5s 华为/小米/健康方案 鉴权 401 保障
dx-bridge 本机 2 2 skip — 404 端点未部署(B-DX-1 第 6 轮)
合计 — 30 28/28 过 + 2 skip ~2.5m 本机单节点串行(189 鉴权门控/204 失联),功能结果与 R143 双节点一致

3.2 langgraph pytest(251 实派)— 本轮重点实跑 ⚠️

类别 例数 结果 根因
non-LLM (health_plan/memory/report_parse/tongue/graph/recommend) 31 31/31 过 代码层面绿
analyze 2 2/2 过 5.13s 稳定
auto_tag 4 1/4 过 / 3 红 chat 端点 500(RateLimitError 429 免费额度耗尽 → 端点 500)
intent 5 1/5 过 / 4 红 intent_classifier 429 → 静默兜底默认 chat → 断言 ANALYSIS/RECOMMEND/MIND/HEALTH 失败
qna/test_chat — 排除 --ignore
合计 43 36 过 / 7 红 7 红全为环境性 LLM 上游 429 免费额度耗尽(B-142-2/B-134-4 同族恶化)

关键证据(251 日志实测):

  • ERROR ... POST /api/v1/chat 7.55s error=RateLimitError("Error code: 429 - You've reached the API rate limit for free users...")
  • WARNING app.agents.intent_classifier:intent_classifier.py:62 意图分类失败: Error code: 429 ... 默认 chat
  • AssertionError: assert <Intent.CHAT: 'chat'> == <Intent.ANALYSIS: 'analysis'>(test_intent.py:16 等 4 处)
  • 对比 R143:残留 3 红为 ConnectError(连接失败);本轮 7 红全为 429 限流耗尽(根因由「连接失败」转为「额度耗尽」,同属 LLM 上游不可达,非代码回归)
  • 源码零变更(git reset --hard origin/cfclub,HEAD=c7c7523c8),排除产品代码回归

3.3 采信基线(零源码变更,git diff = 0)

维度 基线 备注
后端全量 347 类 / 2946 例 / 99.29% / 17 红 R142 实跑,存量 17 红零回归(B-1/B-6/B-26/B-35/B-65/B-69/B-82/B-134-4 族群)
cfc-frontend Jest 616 例 / 601 过 / 3 红 / 12 跳 R142/R143 实跑,3 红为预期 RED(signature.consignee + growthHistory.dayGroupView)
cfc-web Jest 116/116(本轮采样实跑全绿) 零漂移
根级黑盒 7/16(B-36 门控 ECONNREFUSED) R142/R143 零漂移,B-36 第 39 轮
浏览器 28/28 + dx 2 skip 本轮实跑零漂移(本机单节点)

4. 门禁结论(⚠️ 有条件通过)

门禁 指标 阈值 本轮 结果
G1 全量通过率 后端 99.29% / 全量 98.55% ≥ 98% 98.55%(采信 R142) ✅
G2 零未归因红 存量 17 + 前端 3 + 根级 16 + langgraph 7 + dx 2 = 45 红 0 45(已归因/预期/环境) ❌
G3 前端 Jest 616/601/3/12 + 116/116 0 非预期红 3 预期 RED ✅
G4 管理端 116/116 0 红 0 红 ✅
G5 编译 test-compile EXIT 0 0 错 0 错(采信) ✅
G6 浏览器 E2E 28/28 全绿 100% 100% ✅
G7 langgraph 36/7 0 红 7 环境红 ❌
G8 鉴权 5/5 401 100% 100% ✅
G9 场景锚点 覆盖率 9.9% ≥ 95% 9.9% ❌
G10 双节点 本机 28/28(189 鉴权门控/204 失联→单节点兜底) 双节点连通 本机单节点全绿(功能等价) ⚠️
G11 CI 无全量门禁 有 无 ❌
G12 SRS 合规 0 新增用例 0 抖动 0 ✅

5. 阻塞台账更新(R144 段落)

编号 关联 类型 本轮状态 备注
B-142-2-Update 251 LLM 上游 429 免费额度耗尽 运维(P0) 恶化 R143 ConnectError(连接失败)→ R144 429 RateLimitError(免费额度耗尽);langgraph 7 红(auto_tag 3 + intent 4)全因 429→chat 500/默认 chat 兜底;非代码回归(源码 24h 零 commit)。处置:运维为 251 LLM 上游(AgnesAI)充值/换付费 key/提升限额;测试侧 P95≤30s 守卫。
B-134-4-Update intent_classifier 429 兜底伪装 研发/运维(P1) 恶化(第 7 轮) intent 由 R143 5/5 转 R144 4 红:429→静默兜底默认 chat→断言失败。建议错误透传(AiGateway 429/401 传播修复是否生效待复核);或测试侧对 429 标注 env-skip 避免误判。
B-142-1-Update(第 3 轮) /api/admin/** 鉴权门缺失 研发(P1 安全) 延续 匿名 POST /api/admin/families/stats 等仍 200/data:null;根因 LOGIN_REQUIRED_PATHS 缺 /api/admin/。
B-95-Update(第 15 轮) 192.168.16.204:4090 失联 运维(P2) 延续 204:4090 → 000;189:4090=200(鉴权门控)、251:4096/9000=200。frontend 回退本机串行兜底合规。
B-189-Update(新增·本轮) 192.168.16.189:4090 鉴权门控 运维(P2) 新增观察 本轮回探 189 api/info=UnauthorizedError(R143 尚可用于 admin 实派);本机无 opencode 凭证无法派发 → 浏览器全量回退本机单节点。建议运维注入 189 凭证或确认 189 退役。
B-DX-1-Update(第 6 轮) dx-bridge 端点 404 部署(P2) 延续 bridge/{list,sync-status} → 404/404(2 skip)。TR-24 仍 pending。
B-69-Update(第 23 轮) mind/fortune 匿名 200 研发(P1) 延续 /api/mind/** 匿名 200 口径与 B-142-1 同族;O-21 未落码。
B-13-Update 环境红 MySQL 连接 运维(P2) 延续 根级 16 红全 ECONNREFUSED 127.0.0.1:9082(后端未启)。
B-36-Update(第 40 轮零漂移) 根级黑盒门控 测试(P3) 零漂移 7/16 采信 R142;9082 启动前可忽略。

6. SRS/场景变更感知(G12 合规)

来源 窗口 命中 处置
SRS/specs/API_REFERENCE/test-cases R143(c7c7523c8)..HEAD 0 零新增用例,G12 合规达标

7. 下轮前置(R145)

  1. 运维(P0):251 LLM 上游(AgnesAI 免费额度)充值/换付费 key/提升限额 → langgraph auto_tag/intent 复跑冲刺 43/43(B-142-2/B-134-4 销号候选)
  2. 研发:admin 鉴权门口径拍板 → /api/admin/** 纳入 LOGIN_REQUIRED_PATHS(B-142-1 销号)
  3. 运维:189 注入 opencode 凭证或确认退役(B-189 本轮新增);204 节点恢复或确认降级(B-95 第 15 轮)
  4. 部署:dx 端点部署后复跑 2 例(TR-24/B-DX-1 第 6 轮)
  5. 研发:mind/fortune 白名单落码(B-69 第 23 轮)
  6. 后端:17 存量红逐类闭环(B-1/B-6/B-26/B-35/B-65/B-69/B-82/B-134-4)
  7. 研发:启用 SRS 池闭环 795 文档用例执行;CI 接入后端 JUnit 固化基线(G11)

8. 交付物

  1. docs/tdd/orchestration/report-test-2026-11-11-R144.md(本汇报,完整覆盖矩阵/实测数据/门槛判定/复评条件)
  2. docs/tdd/test/automation-run-2026-11-11-R144.md(自动化运行记录:分工/节点/耗时/输出摘要)
  3. docs/tdd/test/notice-2026-11-11-R144-研发通知.md(研发交接:B-142-2 429 恶化 + B-134-4/B-142-1/B-189/B-95/B-DX-1/B-69 待处置)
  4. docs/tdd/test/blockers.md 追加 R144 段落(B-142-2/B-134-4 恶化 + B-189 新增 + 其余延续)

9. 变更触发与推送(结果有变)

  • 判定:langgraph 251 实派由 R143 40/3 退至 R144 36/7(+4 intent 红),为可比结果实质变化(非纯窗口方差),触发用户规则「测试结果有变化时提交远程+通知研发」。
  • 已执行:本报告 + blockers(B-142-2/B-134-4 恶化 + B-189 新增)+ 自动化运行记录 + 研发通知 → git add docs/tdd/** → commit → git push origin/cfclub(merge-base 核验 PASS)。
  • 根因定性:7 红全为 251 LLM 上游 429 免费额度耗尽(环境/运维类,B-142-2/B-134-4 同族),非产品代码回归;零源码提交,研发无需改码,需运维处置额度。
  • Agent Mail 不可用(GetMe 返回"Agent 邮箱尚未开通"),以 blockers.md + 研发通知 + 报告为通知载体。

10. 教训沉淀

  • LLM 依赖用例需用「错误类型」区分根因:R143 ConnectError(连接失败)→ R144 429(额度耗尽),同一 intent_classifier 兜底失效从"静默通过"变为"断言失败",说明 429 兜底返回默认 chat 不可靠;建议测试侧对 429 标注 env-skip 或将兜底改为显式抛错,避免假绿/假红切换。
  • 浏览器节点拓扑需冗余:189 鉴权门控 + 204 失联使双节点意图失效,本机单节点串行仍达成 28/28(功能等价),但失去"每节点单任务"的并发收益;建议运维恢复 189 凭证或明确退役。
  • 零漂移轮策略有效:R142→R144 沿用"核心 E2E + langgraph 重点 + 其余采信",本轮 71 例实跑即覆盖关键链路,未漏判 langgraph 恶化。

测试负责人:cfc-tester · 2026-11-11 11:43 · 第 144 轮闭环