|
|
@@ -0,0 +1,130 @@
|
|
|
+# R105 自动化测试执行记录(2026-11-09 16:34~17:05)
|
|
|
+
|
|
|
+> 执行人:测试负责人(软件测试专家团 · 陆谨)
|
|
|
+> 基线:`cfclub @ fa60fc20b`(= `origin/cfclub`,本地 HEAD 与远程一致,零漂移)
|
|
|
+> 执行档:review(浏览器 E2E 本机串行 + 251 langgraph 派发已按既有授权通道执行;未联网装依赖、未改生产代码)
|
|
|
+> 环境:Windows / JDK1.8.0_25 + IDEA 内置 Maven 3.9.9(`-o` 离线)/ Node v22.22.2
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 一、结论摘要
|
|
|
+
|
|
|
+| 套件 | 执行 | 通过 | 红 | skip | 通过率 | 与 R104 对比 |
|
|
|
+|------|------|------|----|------|--------|-----------|
|
|
|
+| cfc-backend 定向契约(16 类) | 132 | 114 | 18 | 0 | 86.36% | R104: 107过/25红 → **+7 绿** |
|
|
|
+| cfc-frontend (Jest) | 426 | 422 | 1 | 3 | 99.06% | R104: 391过/32红 → **+31 绿** |
|
|
|
+| cfc-web (Jest) | 116 | 116 | 0 | 0 | 100% | 零漂移 |
|
|
|
+| 根级 tests (Jest) | 23 | 7 | 16 | 0 | 30.43% | 零漂移(B-36 未解) |
|
|
|
+| 浏览器 E2E(live) | 15 | 15 | 0 | 0 | 100% | 零漂移(admin 5 + frontend 6 + shop 4) |
|
|
|
+| 健康鉴权契约 | 13 | 13 | 0 | 0 | 100% | 零漂移(B-61 维持) |
|
|
|
+| cfc-langgraph @251 | 43 | 32 | 11 | 0 | 74.42% | 零漂移(R104 同值) |
|
|
|
+| **合计** | **768** | **719** | **46** | **3** | **93.62%** | R104: 681过 → **+38 绿** |
|
|
|
+
|
|
|
+**门禁:有条件通过(RECOMMEND 有条件)。** 较 R104 显著改善(679→719 过,66→46 红),
|
|
|
+但仍有 18 后端契约红(其中 9 为 Diet 健康调整 T3/A1~A5 未实现 RED、7 为 Guhe 低侧判据 T3 RED)+ 前端 1 RED 契约 + 251 环境性 11 红未闭环。
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 二、执行动作与原始数据
|
|
|
+
|
|
|
+### 2.1 后端定向契约(16 类,基线含 S-cfc-123/118 实现)
|
|
|
+
|
|
|
+命令:`mvn -o -B test -Dtest=<16 类> -DfailIfNoTests=false -Dsurefire.timeout=300`
|
|
|
+结果:**132 例 / 114 过 / 16F + 2E = 18 红 / 0 skip(86.36%)**;16/16 类均产出 XML。
|
|
|
+前置:`mvn compile -o -q` BUILD SUCCESS,`target/classes` = 2320 class,`UserUtil.class` 在位(规避 R104 产物缺失)。
|
|
|
+
|
|
|
+| 类 | 例 | F | E | 判定 | 对比 R104 |
|
|
|
+|---|---|---|---|---|---|
|
|
|
+| GuheKbQueryLowSidePatchContractTest | 8 | 0 | 0 | ✅ GREEN | 4红 → **8/8 绿(S-cfc-123 合入生效)** |
|
|
|
+| GuheLowSideNoSupplementContractTest | 6 | 0 | 0 | ✅ GREEN | 3红 → **6/6 绿(S-cfc-118 合入生效)** |
|
|
|
+| GuheGateLowSideRedlineContractTest | 12 | 0 | 0 | ✅ GREEN | 维持 |
|
|
|
+| GuheKbVersionSenseContractTest | 11 | 0 | 0 | ✅ GREEN | 维持 |
|
|
|
+| GuheNoPathMapContractTest | 10 | 0 | 0 | ✅ GREEN | 维持 |
|
|
|
+| GuheReportPersonalAssertContractTest | 9 | 0 | 0 | ✅ GREEN | 维持 |
|
|
|
+| GuheV2RouteContractTest | 8 | 0 | 0 | ✅ GREEN | 维持 |
|
|
|
+| GuheShellGuardContractTest | 7 | 0 | 0 | ✅ GREEN | 维持 |
|
|
|
+| GuheGateStrainBlockContractTest | 6 | 0 | 0 | ✅ GREEN | 维持 |
|
|
|
+| GuheKbFieldExposeContractTest | 6 | 0 | 0 | ✅ GREEN | 维持 |
|
|
|
+| GuheLowSideAggregateContractTest | 6 | 0 | 0 | ✅ GREEN | 维持 |
|
|
|
+| GuhePageTailCleanContractTest | 6 | 0 | 0 | ✅ GREEN | 维持 |
|
|
|
+| GuheVersionSplitContractTest | 5 | 0 | 0 | ✅ GREEN | 维持 |
|
|
|
+| GuheEvidenceIsolateContractTest | 12 | 0 | **2** | 10/12(2 NPE,B-88 续) | 维持 |
|
|
|
+| DietFoodHealthAdjustContractTest | 10 | **9** | 0 | RED(§3 A1~A5 未实现) | 9F 维持(S-cfc-127 仅 UI 侧) |
|
|
|
+| GuheLowSideRuleLoadContractTest | 10 | **7** | 0 | RED(T3 判据未实现) | 7F 维持 |
|
|
|
+
|
|
|
+18 红全部为「契约声明的未实现能力键」→ **预期 RED,非回归**。
|
|
|
+
|
|
|
+### 2.2 前端 / 管理端 / 根级
|
|
|
+
|
|
|
+- **cfc-frontend**:`npx jest` → 426 例 / **422 过 / 1 红 / 3 skip**(20.6s),26 suites 中 25 通过。
|
|
|
+ 红例仅 `recommendation.uiRework.test.js:429`「REQ6 失败后 uni.showToast(icon:none)」=1 例
|
|
|
+ 收到 `{"icon":"success","title":"食谱生成成功"}` → 契约要求失败路径弹错误 toast,实现仍弹成功 toast。
|
|
|
+ **较 R104 32 红 → +31 绿**(S-cfc-127 diet UI 重构主体已合入生效)。
|
|
|
+- **cfc-web**:17 suites / **116 例全绿**(41.5s)。
|
|
|
+- **根级 tests**:3 suites / 23 例 / 7 过 / 16 红 → 与 R101~R104 零漂移(B-36:环境门控实质 0 执行)。
|
|
|
+
|
|
|
+### 2.3 浏览器自动化(用户指令:`/admin` + `/frontend`,本机节点串行)
|
|
|
+
|
|
|
+命令:`npx playwright test -c playwright.config.live.js --output=.live-out-r105`(workers=1 串行)
|
|
|
++ `npx playwright test -c playwright.config.health.js --output=.live-out-health-r105`
|
|
|
+
|
|
|
+| 目标 | 用例 | 结果 | 说明 |
|
|
|
+|---|---|---|---|
|
|
|
+| `http://cfc.iwintrue.com/admin` | admin-live 5 | ✅ 5/5 | TC-A-U01~U05(登录页/滑块/未登录拦截/真实登录/核心菜单) |
|
|
|
+| `http://cfc.iwintrue.com/frontend` | frontend-live 6 | ✅ 6/6 | TC-F-U01~U06 游客只读链路 |
|
|
|
+| 商城价格排序契约 | shop 4 | ✅ 4/4 | TC-S-U01~U04,无 R104 首跑 30s 超时假红 |
|
|
|
+| 健康鉴权契约 | health 13 | ✅ 13/13 | 华为/小米 10 + 健康方案 3 全 401(B-61 维持) |
|
|
|
+
|
|
|
+- **本轮无假红**:shop 套件 4/4 首次即过(92ms~925ms),未出现 R104 的瞬时超时。
|
|
|
+- **磁盘规避**:D 盘可用仅 468MB(100%),沿用 R104 经验用 `--output=<新目录>` 规避
|
|
|
+ `[safe-delete] ETIMEDOUT`。
|
|
|
+- 189 节点本轮失联(`189:4090` 000,B-89 连续第 8 轮);浏览器任务全程由本机串行执行,
|
|
|
+ 满足「每节点一个浏览器任务」。
|
|
|
+
|
|
|
+### 2.4 langgraph(按指令派发 192.168.16.251)
|
|
|
+
|
|
|
+- 节点探活:`251:9000/health` → `{"status":"ok"}`(200/4ms);`251:4096`(shell 通道)认证 401 → 带 Basic Auth 走通。
|
|
|
+- 派发通道(B-96 方法):`POST /api/shell` 下发
|
|
|
+ `pkill -f 'venv/bin/python.*-m pytest'` → `nohup timeout 900 .venv/bin/python -m pytest tests -q --tb=line --ignore=tests/qna --ignore=tests/test_chat.py`
|
|
|
+ → 独立 shell 读 `/tmp/r105_pytest.log` 取回结果(B-91 解除后确定性解法)。
|
|
|
+- **结果:43 collected / 32 passed / 11 failed / 68.88s**,与 R102/R103/R104 权威值**逐例零漂移**;
|
|
|
+ 251 仓库 HEAD = `fa60fc20b`(cfclub,与本地一致)。
|
|
|
+- 11 红分布:`test_analyze.py` 2(B-65 checkpointer thread_id 第 12 轮)、`test_auto_tag.py` 5(B-74/B-82 LLM key 401)、
|
|
|
+ `test_intent.py` 4(B-82 分类降级)。
|
|
|
+- 本轮 KILL + MAIN + FALLBACK 三 shell 全走通;MAIN 轮询 5 分钟未收敛 → FALLBACK 直读日志 8s 取回(B-91 方法验证有效)。
|
|
|
+
|
|
|
+### 2.5 工作站环境(延续 R104 风险)
|
|
|
+
|
|
|
+- D 盘可用 468MB / 294G(100%)——风险持续,长期未闭环。
|
|
|
+- 未发现外部进程清空 target/classes 的现象(本轮 2320 class 完整,未出现 R104 的 1173 缺失态)。
|
|
|
+- 外部 java 并发活动未见复发(编译 6m23s 内稳定完成)。
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 三、覆盖缺口(转研发 / 待闭环)
|
|
|
+
|
|
|
+| 缺口 | 现状 | 风险 | 优先级 | 闭环方式 |
|
|
|
+|------|------|------|--------|---------|
|
|
|
+| DietFoodHealthAdjust T3 A1~A5(9F) | §3 A1~A5 未实现(S-cfc-127 仅 UI 侧) | 健康问卷调整链路断 | P0 | 研发实现后定向复跑 10 例 |
|
|
|
+| GuheLowSideRuleLoad T3 判据(7F) | 低侧判据规则未落地 | 低侧结论不可信 | P0 | 研发实现后定向复跑 10 例 |
|
|
|
+| cfc-frontend REQ6(1F) | 失败路径 toast 契约不符(成功 icon) | 失败反馈误导 | P1 | 研发改 toast 分支后复跑 |
|
|
|
+| GuheEvidenceIsolate 2 NPE(B-88) | NPE 连续 4 轮 | 隔离证据路径不稳 | P1 | 研发修 NPE 后复跑 |
|
|
|
+| B-65 analyze checkpointer | 连续 12 轮未修(251 环境) | langgraph analyze 500 | P1 | 研发修 thread_id 隔离 |
|
|
|
+| B-74/B-82 auto_tag/intent LLM 401 | 连续多轮(251 环境 key 失效) | AI 标签/意图降级 | P1 | 研发换 key / 修降级逻辑 |
|
|
|
+| B-36 根级 16 红 | 环境门控实质 0 执行 | 覆盖虚置 | P2 | 更新门控/迁移用例 |
|
|
|
+| B-89 189 节点 | 连续 8 轮失联 | 双节点冗余失效 | P2 | 运维排查 189 |
|
|
|
+
|
|
|
+---
|
|
|
+
|
|
|
+## 四、历史审查记录
|
|
|
+
|
|
|
+- 上轮 R104(15:03~16:40):合计 768/681=88.7%,门禁**有条件不通过**;
|
|
|
+ 遗留缺口——Diet 9F、GuheLowSideRuleLoad 7F、前端 32 红、B-65/B-69/B-88/B-97。
|
|
|
+- 本轮改善:**+38 绿**(GuheKbQueryLowSidePatch、GuheLowSideNoSupplement 转绿,前端 diet 31 例转绿)。
|
|
|
+- 未改善:Diet 9F、RuleLoad 7F、B-65/B-36/B-89/B-88(2NPE) 维持。
|
|
|
+
|
|
|
+## 五、门禁结论
|
|
|
+
|
|
|
+**有条件通过。** 全部 7 个执行套件中 4 个 100%(cfc-web / 浏览器 E2E 28 / 健康 13),
|
|
|
+后端契约 86.36%(+7 绿)、前端 99.06%(+31 绿)、langgraph 74.42%(零漂移)。
|
|
|
+放行条件:Diet A1~A5 / GuheRuleLoad T3 / 前端 REQ6 三项 RED 契约由研发实现转绿后复核。
|