Просмотр исходного кода

doc(tdd): 补推 R193/R194 automation-run 日志(定时通道欠账收口)

E2E Test Bot 50 минут назад
Родитель
Сommit
123c6db974

+ 78 - 0
docs/tdd/test/automation-run-2026-11-13-R193.md

@@ -0,0 +1,78 @@
+# 自动化执行日志 R193(2026-11-13 15:34 ~ 16:10,定时巡检)
+
+> 角色:测试负责人(自动化测试闭环 / 软件测试专家团)|全程静默无人值守。
+> 基线:`07518bfd9`(R192 收口,0/0 同步)→ `git fetch` 后 `FETCH_HEAD=07518bfd9`,**远端零新提交**。
+> 窗口 `7558d8cf4..HEAD`:**功能源码(cfc-backend/src/main / cfc-frontend / cfc-langgraph)零变更**;仅合入 S-cfc-202 `AdminOrderManualContractTest`(+548)、S-cfc-203 `AdminActivityConfigContractTest`(+209)契约类 + docs + cfc-web 版本 bump → 后端全量按「承袭 R192 + 增量已取证」口径。
+
+## 一、节点探活
+
+| 节点 | 结果 |
+|---|---|
+| 189:4090(opencode) | ✅ 200(admin-desktop 派发成功) |
+| 251:4096(opencode) | ✅ 200(langgraph pytest 派发成功) |
+| 251:9000(langgraph live) | ✅ `{"status":"ok"}` |
+| 本机 9082(cfc-backend) | ❌ closed(B-36 承袭,第 66 轮) |
+| 本机 9000(本地 langgraph) | ❌ down(非必须,langgraph 走 251) |
+| cfc.iwintrue.com 线上网关 | ⚠️ **探测到 502 Bad Gateway 抖动**(openresty,随后恢复;直接关系到 B-192-2 判定修正) |
+
+## 二、本轮实测七套件
+
+### 1. 浏览器四件套(本机串行 + 189 派发)
+- 189 `admin-desktop`:**5/5 EXIT=0(1.2m)** — TC-A-U01~U05 全过(B-153-1 维持第 16 轮)
+- 本机 `frontend-mobile`:**6/6(46.8s)** — TC-F-U01~U06 全过
+- 本机 `shop-api`:**4/4(11.9s)** — TC-S-U01~U04(需求变更 S1 排序契约)
+- 本机 `health`:**13/13(4.0s)** — TC-HP-U01~U03 等全 401(B-142-1 维持第 23 轮)
+- `dx-bridge`:**2 skip(404,B-DX-1 第 35 轮)**
+
+### 2. Jest
+- cfc-web:**116/116(15.7s)** 零漂移
+- cfc-frontend:**609/3/12(17.7s)** — 3 红全为 S-cfc-132/133 预期 RED 零漂移
+- 根级:**7 过 / 16 红(3.1s)** — 全 `fetch failed`(本机 9082 未起,B-36 第 66 轮)
+
+### 3. langgraph@251(实派)
+- pytest 51 例:**51 passed / 0 failed(388.87s / 6:28)** —— **唯一变化项:红 2→0 清零(B-142-2 环境恢复)**
+- 残留进程:bash+pytest 2 进程仍有(B-177-1 第 15 轮复现),`kill -9` 清理后 `ps` 复核 0
+- 上游 key/配额本轮可用(无 429/401 日志)→ **B-142-2 观察 1/2(恢复后第 1 轮全绿)**
+
+### 4. 线上 API 抽样复验(B-192-2 判定修正)
+**direct-register 契约探测**:随机新手机号注册返回 `code:200` + token(token 有效)→ **R192 时的 direct-register 断链已恢复**。
+
+| spec | 结果 | 错误形态 | 判定 |
+|---|---|---|---|
+| badge-sc-c09-c10-a05(4 例红,9 域之一) | 5 passed / 4 failed | ①`update: 请求参数格式错误`(got 400)②`Expected: not 200` got 200 ×3(A-05-E 无效创建、A-05-E 删除不存在、A-05-P 越权创建) | **真实缺陷**(curl 逐条实证,见下) |
+| wish-flow-sc-p13-p14-c04(6 例红) | 5 passed / 6 failed | ①`requestExchange: 5610`(got 500,心愿状态)②幂等:期望 1 个成功 got 0 ③`Expected: not 200` got 200(越权查看他人心愿) | **真实缺陷**(至少 3 类) |
+| task-checkin-sc-c05(3 例红) | 1 failed + 3 did not run | `addA: NON_JSON_RESPONSE`(got 504) | **环境型**(网关 504 超时,非代码回归) |
+
+**curl 逐条实证(badge,独立于测试框架)**:
+```bash
+# 1) 非 admin(parent)调 /api/badges/create → HTTP 200 {"code":200,"data":"创建成功"}
+#    → 越权成功(应 403)【真实安全缺陷】
+# 2) admin 缺 name(name="")创建 → 200 {"code":200} → 参数校验缺失【真实缺陷】
+# 3) admin 删除不存在 id(999999999)→ 200 {"code":200,"data":"删除成功"} → 存在性校验缺失【真实缺陷】
+# 4) admin update 缺 description → 200 更新成功(测试侧 got 400 为 create 返回字符串非 id 的连锁)
+#    → /api/badges/create 返回 data 为字符串「创建成功」而非 badgeId(契约不符)【真实缺陷】
+```
+
+**判定修正(对 R192 的 B-192-2 升级)**:
+- R192 判「20 红全为 direct-register 断链(装置级)」**不成立**——该断链已随网关恢复而消失;
+- 复验 11/20 例:badge 4 + wish 6 为**真实业务/安全断言失败**(越权 403 缺失为主要形态),task-checkin 3 为 504 环境型;
+- 未逐例复验的 9 例(coach-food 2 / task-frequency 1 / task-c14 1 / incentive 1 / energy 1 / wechat-login 1 / task-checkin 2 例 did-not-run)→ 挂到 B-193-1 下待复验,**保守不判全绿**。
+
+## 三、台账重扫
+
+- `test_inventory.py --project d:/cfc`:跨源用例合计 **4743**(md 719 / Playwright 571 / Python 48 / **Java@Test 3405** / 场景 11)—— Java 系较 R192(3177?)随 S-cfc-201/202/203 契约类入库后增长
+- 已重写 `docs/tdd/test/{inventory,automation-status}.md`
+
+## 四、SRS / 场景窗口变更
+
+`git log 7558d8cf4..HEAD -- docs specs tests/test-cases tests/user-scenarios docs/superpowers/api/API_REFERENCE.md` = **0 命中** → **G12 ✅ 用例无需更新**。
+
+## 五、未实测项(如实标注)
+
+- 后端全量 `mvn test`:窗口 main 零变更 → 承袭 R192 实测(5254 例 / 4264 过 / 177 红 / 813 跳);本机 Maven 未入 PATH
+- API 990 例全量:未重复全跑(13 分钟级),以 3 spec 定向复验 + curl 实证出判定
+- 压测 / SAST / DAST:未授权联网
+- JaCoCo / PIT:未配置
+- 无障碍:未发现配置
+- 204 节点:B-95 已销号,不再探
+- B-186-1(live chat 挂死):本轮未复探(pytest 51/51 全绿为 mock 路径;live 链路承袭观察)

+ 50 - 0
docs/tdd/test/automation-run-2026-11-13-R194.md

@@ -0,0 +1,50 @@
+# 自动化执行日志 R194(2026-11-13 16:3x ~ 17:5x,定时巡检)
+
+> 角色:测试负责人(自动化测试闭环 / 软件测试专家团·陆谨)|全程静默无人值守。
+> 基线:`07518bfd9`(R193 起点)→ HEAD `3fa4eb7db`(S-cfc-205 merge,`git pull --rebase` 后 0/0 同步)。
+> 窗口 `07518bfd9..HEAD`:**① cfc-frontend login-sheet 视觉升级**(def75bab5/e2c7b972e/6f1ed119a,`components/login-sheet.vue` -583 行)· **② cfc-backend KnowledgeBase S-cfc-312**(3d45a4b10,+282/-50:同步失败重试/大批量分批/角色门禁)· **③ 7 个新契约测试类**(S-cfc-204/205/206/207/208/209 + ChildAuthLoginContractTest)· ④ docs/研发汇报 + cfc-web bump。**specs/API_REFERENCE 窗口零变更** → G12 仅由新契约类即窗口内用例增量。
+
+## 一、节点探活
+
+| 节点 | 结果 |
+|---|---|
+| 189:4090(opencode) | ✅ 200(admin-desktop 派发成功) |
+| 204:4090(opencode) | ❌ 000(B-95 续失联,第 N 轮) |
+| 251:4096(opencode) | ✅ 200(langgraph pytest 派发成功) |
+| 251:9000(langgraph live) | ✅ `{"status":"ok"}`;live `/api/v1/chat` 探针 422(服务存活) |
+| 本机 9082(cfc-backend) | ❌ closed(B-36 承袭,第 N 轮) |
+| cfc.iwintrue.com/admin、/frontend | ✅ 302(网关可达) |
+
+## 二、本轮实测(全部实跑,0 采信核心套件)
+
+### 1. 浏览器四件套(用户核心指令:admin@189 + frontend@本机,每节点 1 浏览器任务)
+- 189 `admin-desktop`:**5/5 EXIT=0(1.3m)** — TC-A-U01~U05 全过(B-153-1 维持第 N 轮,首轮即绿)
+- 本机 `frontend-mobile`:**6/6(1.3m)** — TC-F-U01~U06(**login-sheet 升级后复跑零回归**)
+- 本机 `shop-api`:**4/4** — TC-S-U01~U04(排序契约)
+- 本机 `health`:**13/13(11.9s)** — TC-H-U01~U10 + TC-HP-U01~U03 全 401(B-142-1 维持)
+- `dx-bridge`:**2 skip(404,B-DX-1 第 N 轮)**
+
+### 2. Jest
+- cfc-web:**116/116(20.5s)** 零漂移
+- cfc-frontend:**609/3/12(28.2s)** — 3 红全为预期 RED(signature.consignee + growthHistory.dayGroupView)零漂移
+- 根级:**7 过 / 16 红(16.2s)** — 全 fetch failed(9082 未起,B-36 第 N 轮)
+
+### 3. langgraph@251(实派,51 例全执行)
+- pytest:**47 passed / 4 failed(136.86s)** —— 红 = auto_tag 3 + intent 1,日志实证 **401 key `****ab12` invalid** + **429 AgnesAI free users 限流** → chat 500。
+- **非代码回归**(cfc-langgraph 窗口零变更,251 HEAD `9f01445b5`);live 探针 422(服务存活)。
+- 残留进程 2(436301/436316,18:14)`kill -9` 清理复核 0(B-177-1 第 16 轮)。
+- **B-142-2 恶化**:R193 51/51(观察 1/2)→ 47/51,观察复位 0/2。
+
+### 4. 后端(窗口 src/main 变更 → 全量强制实跑)
+- `mvn -o test` 全量复验(含 S-cfc-204~209 + S-cfc-312 KB 三测试类),结果见 R194 报告 §1.1。
+
+### 5. 线上 API 抽样复验(B-193-1 剩余域)
+- 点名 6 spec(coach-food / task-frequency / task-c14 / incentive / dimension-energy / wechat-login):**26 passed / 7 failed / 7 did not run**。
+- 7 failed:coach-food 2([B-07 正常]+[B-07-P 权限])、incentive 1([X-05 正常])、task-c14 2([C-14 拒绝]+[C-02 正常])、task-frequency 1([P-12 正常])、wechat-login 1([首次登录建档])→ **B-193-1 实证红扩至 18/20**。
+
+## 三、变更感知(G12)
+- specs / user-scenarios / API_REFERENCE / test-cases 窗口 diff 0 命中 → **SRS 零变更,无需新增用例**。
+- 窗口新增 **7 个契约测试类**(S-cfc-204~209 + ChildAuthLogin,73 例)=研发/测试侧为新增 admin 能力补录的用例增量 → G12 合规。
+
+## 四、门禁(终值见报告)
+- ⛔ **不通过(承袭,有条件)**:G2 红(后端 31 契约预期 RED + API 18 实证红 + langgraph 4 环境红 + 根级 16 + fe 3)/ G7 langgraph 47/51 / G9 / G11;✅ G4 编译 0 错 / G5 / G6 浏览器 28/28 + 2 跳 / G8 匿名端点 401 / G10 双节点(189+251)/ G12 合规。