automation-run-2026-11-10-R131.md 6.8 KB

自动化测试执行记录 · 第 131 轮(2026-11-10 22:0x~23:3x)

执行档:review(离线;未联网装依赖、未启停服务、未改生产代码;仅新增测试用例) 基线:origin/cfclub @ 387c5c69d(跑测期间 HEAD 前进至 387c5c69d;含本轮测试资产提交 b79371393;远端上游 a0ac62d94 仅 docs)

0. 环境探针(SOP 第一步)

java version "1.8.0_25"            # JAVA_HOME=D:\jdk1.8.0_25
Apache Maven 3.6.1                 # D:\maven\apache-maven-3.6.1\bin\mvn
node v22.22.2 / playwright 1.63.0
D: 93G avail (69% used)

1. 后端全量(本机)

cd d:/cfc/cfc-backend
export JAVA_HOME=/d/jdk1.8.0_25
/d/maven/apache-maven-3.6.1/bin/mvn -o -B clean test   # 52:19
  • 汇总:[ERROR] Tests run: 2865, Failures: 30, Errors: 3, Skipped: 4
  • 通过 2828 → 98.71%(剔 skip 98.85%)
  • 339/339 surefire XML;target/classes 2325 class;testCompile 345 源 0 错
  • 红例集合:_r131_agg.json(33 条,与 R130 _r130_agg.json 逐例零漂移 — 第 6 次)

2. 前端 / 管理端 / 根级 Jest(本机)

cd d:/cfc/cfc-frontend && CI=true npx jest --ci --runInBand      # 26 套件 427 例 = 424 过 / 3 skip / 0 红(45s)
cd d:/cfc/cfc-web      && CI=true npx jest --ci --runInBand --coverage  # 17 套件 116 例全绿(169.7s)
cd d:/cfc              && npx jest -c tests/jest.config.js --ci  # 23 例 = 7 过 / 16 红(ECONNREFUSED 9082)

前端 +1 用例:cfc-frontend/__tests__/api/api.test.js 新增 getArticleTags sends POST /api/articles/tags(覆盖新设计规格 9e39128c6 文章标签搜索 API,本次重跑确认通过)。

3. 浏览器自动化(双节点)

套件 节点 结果 备注
admin-desktop 189 4/5 ×2(TC-A-U04 双连败) account-roles 前置接口 HTTP 0;见 §3.1
admin-desktop(对照) 本机 首跑 4/5(同 U04)→ 复跑 5/5 跨节点复现 → 判 U04 间歇 flaky 非节点瞬态
frontend-mobile 本机 6/6(1.6m) TC-F-U01~U06
shop-api 本机 4/4(13.7s) TC-S-U01~U04
health-api 本机 13/13(7.9s) 鉴权契约

口径:admin 以本机复跑 5/5 采信 → 浏览器合计 28/28;189 单任务独占、本机 workers:1 串行(节点合规)。

3.1 TC-A-U04 跨节点间歇 flaky(本轮新增观察)

  • 189:首轮 4/5、复跑 4/5 —— U04 均败于真实登录前置 account-roles 接口,expect(rolesStatus).toBe(200) 收到 0(HTTP 连接层失败,非 5xx 断言)
  • 本机对照:首跑同为 U04 失败(同一报错点),复跑 5/5 全绿
  • 判定:跨节点间歇性 flaky(半路网络/风控偶发),非代码回归(本机复跑全绿、后端源码零 commit);登记见 blockers B-127

4. langgraph(251 实派)

# kick(setsid 分离 + 落盘,B-125 缓解)
# cmd: git fetch && git reset --hard origin/cfclub; setsid nohup timeout 1500 .venv/bin/python -m pytest tests \
#      --ignore=tests/qna --ignore=tests/test_chat.py -q --tb=line > /tmp/r131_pytest.log 2>&1 < /dev/null &
# HEAD: da1c04833
  • 43 例 → 39 过 / 4 红 / 132.35s(8 warnings)(R130 为 38 过 / 5 红:test_intent::classify_mind 转绿)
  • 4 红:test_auto_tag.py::content_relevance / short_content / empty_content、test_intent.py::classify_analysis
  • 证据:/tmp/r131_pytest.log 命中 RateLimitError×3 / 429×6 / AgnesAI_error×6 → C 环境红(上游 LLM 配额),B-74 承袭(第 4 轮连续 429);非代码回归(窗口内 cfc-langgraph/app 与 tests 零 commit)

5. langgraph live 探针(本机 → 251:9000)

curl -s -m 20 POST :9000/api/v1/chat {"query":"你好","user_id":1,"conversation_id":"r131"} -> HTTP 000 / 20.0s / 0B
  • B-90 回落:R130 首次 200(25.53s/703B)后,本轮复测 20s 零字节(HTTP 000)→ 销号观察计数不推进(仍 1/3 轮),维持观察,待研发确认 R130 的 200 成因(配置/凭据/临时波动)

6. 线上鉴权探针(B-69)

POST https://cfc.iwintrue.com/api/mind/fortune          -> 401
POST https://cfc.iwintrue.com/api/energy/overview       -> 401
POST https://cfc.iwintrue.com/api/health/plan/list      -> 401
POST https://cfc.iwintrue.com/api/huawei-health/status  -> 401

4/4 = 401 → 销号维持(第 5 轮,B-69)。

7. 节点探活

节点 结果
192.168.16.189:4090 200(浏览器任务承担者)
192.168.16.251:4096 200(派发通道)
192.168.16.251:9000 / 404(正常,无根路由)
192.168.16.204:4090 000(B-95 第 7 轮)

8. SRS 闸门

git log --since="2026-11-10 20:30" -- docs/superpowers tests/test-cases        # 0(场景/用例文档零变更)
git log --since="2026-11-10 20:30" -- cfc-backend/src cfc-langgraph/app cfc-frontend/pages cfc-web/src  # 0
  • 规格层仅新增设计规格docs/superpowers/specs/2026-11-10-article-tag-filter-design.md(9e39128c6 文章标签搜索,属新功能设计,非既有场景变更)
  • 按纪律:SRS/场景零变更则不新增文档用例;对新功能补前端 jest 契约用例 getArticleTags(b79371393,+6 行)覆盖新 API

9. 度量(本轮)

指标 值
规格文件 200
测试用例行(含 TC- 的表格行) 827
唯一 TC ID 57
TC 锚点(指向可执行用例) 82 → 9.9%(沿用 R130 口径)
用户场景 SC 唯一 244
SC 被 TC 引用 149 → 61.1%
控制器 365
@GetMapping/@PutMapping/@DeleteMapping 违例 8
后端测试类 / 测试源 339 / 345

10. 合计

套件 例数 过 红 skip
后端 surefire 2865 2828 33 4
cfc-web Jest 116 116 0 0
cfc-frontend Jest 427 424 0 3
根级黑盒 Jest 23 7 16 0
langgraph@251 43 39 4 0
浏览器 live 28 28 0 0
合计 3502 3442 53 7

通过率 98.29%(R130 3440 → +3:前端新用例 +1、langgraph classify_mind +1、浏览器口径 +1)。红 53 = 后端 33 + 根级 16 + langgraph 4。

11. 与 R130 净变化

  1. langgraph 红 5→4:test_intent::classify_mind 转绿(42 过),余 4 红全为 429 配额(B-74 第 4 轮承袭)
  2. 前端 +1 用例 getArticleTags(覆盖 9e39128c6 文章标签搜索新功能)
  3. 后端 2865/33 第 6 次逐例零漂移(_r130_agg.json vs _r131_agg.json diff = 0)
  4. TC-A-U04 跨节点间歇 flaky 新观察(B-127):189 双败 + 本机首跑败,复跑 5/5 全绿
  5. B-90 回落:live chat 20s 零字节(R130 200 后),观察计数不推进
  6. B-95 第 7 轮:204 仍失联;B-36 第 33 轮零漂移;B-69 鉴权维持销号