automation-run-2026-11-13-R188.md 6.0 KB

[测试闭环·每小时] 2026-11-13 08:48 轮(R188,review 档,内网 E2E 已授权)

测试负责人:陆谨(软件测试专家团主理人)|执行档:review(内网 cfc.iwintrue.com / 189 / 251 已授权;不访问外部公网;SRS 闸门本小时零变更故零编写) HEAD=00121ff2f(=origin,08:48 fetch 核验;跑前=跑后一致);上次记忆轮=R187(08:30);窗口仅 1 个 docs(研发负责人巡检)→ 零源码变更,但本轮不做采信,全部套件实跑。


1. 阶段 -1 记忆召回

  • 非首次审查:本对象已审 188 轮。最近链条 R184(3987/3913)→ R185(3987/3907,G1 回落)→ R186(3987/3908)→ R187(3987/3906,frontend 4/6,B-185)→ R188(本轮)。
  • 召回命中并本轮复查:B-184-1(全量耗时)→ 本轮实跑证伪(43:15 完成 369 类);B-185(游客态超时)→ 本轮 6/6×2 消除;B-142-2(langgraph 上游)→ 51/51 全绿(观察 1/2);B-177-1(pytest 不退出)→ 第 10 轮复现 9m36s;S-cfc-178 → 4F→0 转绿;S-cfc-176 → 维持 1F;B-152-1/2 → 漏拦 6 / 陈旧 26;B-156-1/B-170-1 → 本轮日志 525 次 DDL 报错;B-162-1 → 3 类仍 ??。
  • 教训应用:① 禁止用「类/分钟」外推全量耗时(B-188-1,本轮直接推翻 R184/R185 判据);② :4096 每轮实探(本轮 200,实派成功,上轮「401 门控」不成立);③ 251 派后查残留 pid(本轮 4 个残留 → kill);④ Playwright API 套件必须带 --output=(B-173-1 本轮再触发 1 次);⑤ 浏览器失败隔离复跑 2 轮再定性。

2. 阶段 0 项目画像(速览)

模块 技术栈 端口 本轮可测范围
cfc-backend Spring Boot 2.7.18 + MyBatis-Plus + Java8 9082 全量 JUnit 实跑 369 类 / 3111 例(43:15)
cfc-web Vue2 + ElementUI 8082 Jest 17 套件 116 例(实测)
cfc-frontend uni-app 小程序 H5 — Jest 42 文件 624 例(实测)
被测内网 openresty 反代 cfc.iwintrue.com→251 浏览器 UI E2E(admin@本机 + admin@189 + fe + shop + health + dx@本机,实测)
cfc-langgraph FastAPI + LangGraph + ChromaDB 9000(251:9000) pytest 51 例(派 251:4096,实测)

3. 阶段 1 覆盖矩阵(20 类三态,摘要)

✅ 已发现 8 类(单元/集成/契约/接口 API/E2E/冒烟/回归/探索)|⚠️ 部分 9 类(覆盖率/UAT/BDD/性能/可靠性/安全/兼容/可用性/流程度量)|❌ 未发现 3 类(变异/依赖漏洞/无障碍)。完整矩阵见报告 §3.2。

4. 执行档与授权

  • review 档(本轮):两套 Jest、根级 Jest、Playwright 浏览器(本机 + 189)、线上 API 点名 4 文件、匿名鉴权探针、langgraph@251 实派实跑、后端全量 JUnit 实跑、节点探活。
  • 未执行:联网装依赖、依赖漏洞扫描、压测、SAST、起停生产服务、改生产代码(本轮零代码改动,仅新增报告/通知/blockers)。

5. 执行时间线与关键节点

时间 动作 结果
08:48 git fetch + pull --rebase --autostash aa5c096f0 → 00121ff2f(1 docs,零源码)
08:50 启动后端全量 mvn -o -B clean test(后台) —
08:50 251 派发 kick KICKED;节点 HEAD 00121ff2f = 本机
08:49 线上探活 /admin 302、/frontend 302、/ 404;匿名 6/6=401
08:52–08:57 本机 admin-desktop / frontend-mobile 5/5(1.8m)、6/6(51.4s)
08:58 frontend-mobile 复跑 6/6(58.8s)→ B-185 消除
08:58 cfc-web Jest 116/116(18.6s)
08:59 cfc-frontend Jest 609/624(3 红预期,34.0s)
09:00 189 派发 admin-desktop 5/5 EXIT=0(1.2m),spec blob 4703d73fb=本机
09:01 shop-api / health-api / dx-bridge 4/4、13/13、2 跳
09:02 251 read 51 passed(285.81s)
09:03 根级 Jest 7/16(B-36 第 72 轮)
09:03 251 残留进程核查 4 个(含 R186 1h10m38s)→ kill -9 清理
09:24 线上 API 32 例(带 --output) 25 过 / 7 跳 / 0 红(13.6s)
09:32 后端全量完成 369 类 / 3111 例 / 3082 过 / 25 红 / 4 跳 / 43:15

6. 结果汇总(全站可比)

套件 执行 过 红 跳
后端 JUnit 3111 3082 25 4
cfc-frontend Jest 624 609 3 12
cfc-web Jest 116 116 0 0
langgraph@251 51 51 0 0
浏览器 live 30 28 0 2
线上 API 32 25 0 7
根级黑盒 23 7 16 0
合计 3987 3918 44 25

通过率 98.27%(剔 skip 98.89%);环比 R187 +12 过 / −12 红。

7. 自处置记录

  1. B-188-1(判据修正):本轮不再按「类/分钟」判「是否卡死」,改为等 surefire XML 持续增长 + 最终 Total time 判定 → 全量 43:15 完成,推翻「>2h」结论,并撤销本轮原定的「截断 + 定向」计划。
  2. B-173-1(safe-delete 守卫):API 套件首跑被 node-safe-delete-shim 拦截(无 Running N tests,按纪律不计入 G2)→ 加 --output=../_r188_api 后 32 例正常执行。
  3. B-177-1(残留进程):251 上 4 个 pytest 进程存活(本轮 9m36s + R186 残留 1h10m38s)→ kill -9 清理,ps 复核为 0。
  4. 口径修正:health-contract.spec.js 不在 playwright.config.live.js 的任何 project 内(须用 playwright.config.health.js)—— 再次印证「文件存在 ≠ 用例执行」,已在报告附录固化命令。

8. 产出与推送

  • docs/tdd/orchestration/report-test-2026-11-13-R188.md(模板 + 20 类矩阵 + 10 条五要素 + 10 项缺口 + 门禁表 + 附录命令/口径)
  • docs/tdd/automation-run-2026-11-13-R188.md(本文件)
  • docs/tdd/orchestration/notice-2026-11-13-R188-研发通知.md
  • docs/tdd/test/blockers.md(新增 R188 段)
  • 临时取证 _r188_backend_full.log、_r188_api/ 不入库。