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

test(interface): 接口冒烟闭环 2026-11-02 23:48 — 通过率 45% (fix=1 reg=0); 测试用例 361/386 完成(文档化219)

E2E Test Bot 1 неделя назад
Родитель
Сommit
41c509354d
4 измененных файлов с 36 добавлено и 14 удалено
  1. 7 7
      INTERFACE_TEST_REPORT.md
  2. 1 1
      interface_test_report.tsv
  3. 27 5
      playwright_smoke.log
  4. 1 1
      playwright_smoke_report.md

+ 7 - 7
INTERFACE_TEST_REPORT.md

@@ -1,15 +1,15 @@
-# CFC 接口冒烟测试报告 (20261102_225111)
+# CFC 接口冒烟测试报告 (20261102_234529)
 
 - 目标: cfc.iwintrue.com  用例总数: **545**
-- 业务成功率(BIZ_OK): **248/545 = 45%**
+- 业务成功率(BIZ_OK): **249/545 = 45%**
 
 ## 分类汇总
-- BIZ_OK: 248
+- BIZ_OK: 249
 - BIZ_FAIL: 295
-- CONN_ERR: 2
+- CONN_ERR: 1
 
-## ⚠️ 回归劣化(1 个,之前通过现失败)
-- `POST /api/user/portrait/regenerate`  (现 CONN_ERR)
+## ✅ 回归修复(1 个,之前失败现已通过)
+- `POST /api/user/portrait/regenerate`  (原 CONN_ERR)
 
 ## 需开发团队关注的契约缺口 (NOT_FOUND=0)
 
@@ -22,7 +22,7 @@
 - 自动化用例总数(可执行 `test()`):**386**(api 层 55 / 角色分包 52 / DOM 层 279)
 - 文档化用例(设计层 TC-xxxx):**219**
 - 已完成(自动化且未被跳过):**361/386 = 93%**
-- 已实跑通过:接口冒烟 BIZ_OK **248** 端点 + API e2e 本轮 **52** 通过 / 2 failed / 3 skipped(来源 playwright_smoke.log)
+- 已实跑通过:接口冒烟 BIZ_OK **249** 端点 + API e2e 本轮 **51** 通过 / 3 failed / 3 skipped(来源 playwright_smoke.log)
 
 ### 未完成 / 未开始的原因(共 3 类)
 1. [279 项] DOM 型 E2E 无法执行(CFC-ENV-001):279 个用例已编写,但远程 cfc.iwintrue.com 为纯 Spring Boot API 后端、未部署 uni-app H5 / cfc-web 前端,浏览器型用例无法运行,未开始执行。

+ 1 - 1
interface_test_report.tsv

@@ -996,7 +996,7 @@ utils/api	getTaskHistory	POST	/api/tasks/history	200	200	BIZ_OK
 utils/api	editPortrait	POST	/api/user/portrait/edit	200	500	BIZ_FAIL
 utils/api	generatePortrait	POST	/api/user/portrait/generate	-1	None	CONN_ERR
 utils/api	getPortrait	POST	/api/user/portrait/get	200	200	BIZ_OK
-utils/api	regeneratePortrait	POST	/api/user/portrait/regenerate	-1	None	CONN_ERR
+utils/api	regeneratePortrait	POST	/api/user/portrait/regenerate	200	200	BIZ_OK
 utils/profile-backfill	backfillProfile	POST	/api/user/profile/backfill	200	500	BIZ_FAIL
 utils/sso	createSsoTicket	POST	/api/auth/sso-ticket	200	500	BIZ_FAIL
 auto	auto	POST	/api/admin/supply-team/invite-code	200	500	BIZ_FAIL

+ 27 - 5
playwright_smoke.log

@@ -47,9 +47,30 @@ Running 57 tests using 1 worker
 [限流] 状态分布=[200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200] 其中429=0
 
 [43/57] [desktop] › e2e\api\nonfunc-perf-compat.spec.js:92:1 › [TC-P-N02/X-N01] 并发不串数据:并行 AI 请求各自独立响应
+  1) [desktop] › e2e\api\nonfunc-perf-compat.spec.js:92:1 › [TC-P-N02/X-N01] 并发不串数据:并行 AI 请求各自独立响应 ─
+
+    Error: 第0个请求返回异常: {"code":46003,"message":"AI 教练为会员专享功能,请先开通会员","data":null}
+
+    expect(received).toBeTruthy()
+
+    Received: false
+
+       97 |   res.forEach((r, i) => {
+       98 |     expect(r.status, `第${i}个并行请求失败 HTTP=${r.status}`).toBe(200);
+    >  99 |     expect(r.json && r.json.code === 200, `第${i}个请求返回异常: ${JSON.stringify(r.json).slice(0, 80)}`).toBeTruthy();
+          |                                                                                                   ^
+      100 |   });
+      101 |   // 隔离信号:各并行请求应拿到各自独立的 conversationId(不串数据的关键判据)
+      102 |   const convIds = res.map((r) => r.json.data && r.json.data.conversationId).filter(Boolean);
+        at forEach (D:\cfc\tests\e2e\api\nonfunc-perf-compat.spec.js:99:99)
+        at D:\cfc\tests\e2e\api\nonfunc-perf-compat.spec.js:97:7
+
+    Error Context: .api-artifacts\api-nonfunc-perf-compat--T-9a7ce-X-N01-并发不串数据:并行-AI-请求各自独立响应-desktop\error-context.md
+
+
 [44/57] [desktop] › e2e\api\nonfunc-perf-compat.spec.js:106:1 › [响应时间基线] 已登录家庭列表单请求耗时冒烟 ≤ 8s
 [desktop] › e2e\api\nonfunc-perf-compat.spec.js:106:1 › [响应时间基线] 已登录家庭列表单请求耗时冒烟 ≤ 8s
-[耗时] 家庭列表 74ms
+[耗时] 家庭列表 79ms
 
 [45/57] [desktop] › e2e\api\nonfunc-perf-compat.spec.js:117:6 › [TC-C-N01/X-N04] 任务打卡幂等:重复提交不重复计分(需任务流夹具)
 [46/57] [desktop] › e2e\api\nonfunc-perf-compat.spec.js:122:6 › [TC-X-N03] 活动名额并发不超卖:100 名额 / 瞬时 500 请求(需活动夹具 + 压测授权)
@@ -58,7 +79,7 @@ Running 57 tests using 1 worker
 [49/57] [desktop] › e2e\api\nonfunc-security.spec.js:60:3 › 非功能/安全接口冒烟 › [TC-G-N04] 未授权调用 AI 健康教练被拒(401/403)
 [50/57] [desktop] › e2e\api\nonfunc-security.spec.js:66:3 › 非功能/安全接口冒烟 › [TC-P-N09] IDOR:越权访问他人家庭成员列表 → 403
 [51/57] [desktop] › e2e\api\nonfunc-security.spec.js:75:3 › 非功能/安全接口冒烟 › [TC-A-N05] 非管理员访问后台接口被拒(401/403)
-  1) [desktop] › e2e\api\nonfunc-security.spec.js:75:3 › 非功能/安全接口冒烟 › [TC-A-N05] 非管理员访问后台接口被拒(401/403) 
+  2) [desktop] › e2e\api\nonfunc-security.spec.js:75:3 › 非功能/安全接口冒烟 › [TC-A-N05] 非管理员访问后台接口被拒(401/403) 
 
     Error: 后台接口未授权应 401/403,实际 code=500 msg=手机号和验证码不能为空
 
@@ -84,7 +105,7 @@ Running 57 tests using 1 worker
 [55/57] [desktop] › e2e\api\nonfunc-security.spec.js:101:3 › 非功能/安全接口冒烟 › [TC-P-N10] AI 健康教练 XSS:query 注入脚本不回显原始脚本且不错 500
 [56/57] [desktop] › e2e\api\nonfunc-security.spec.js:109:3 › 非功能/安全接口冒烟 › [TC-A-N06] 活动反馈存储型 XSS:提交含脚本 comment,列表不回显原始脚本
 [57/57] [desktop] › e2e\api\nonfunc-security.spec.js:121:3 › 非功能/安全接口冒烟 › [TC-P-N11] 报告上传非 PDF/恶意内容被拒(非 200)
-  2) [desktop] › e2e\api\nonfunc-security.spec.js:121:3 › 非功能/安全接口冒烟 › [TC-P-N11] 报告上传非 PDF/恶意内容被拒(非 200) 
+  3) [desktop] › e2e\api\nonfunc-security.spec.js:121:3 › 非功能/安全接口冒烟 › [TC-P-N11] 报告上传非 PDF/恶意内容被拒(非 200) 
 
     Error: expect(received).toBeTruthy()
 
@@ -102,8 +123,9 @@ Running 57 tests using 1 worker
     Error Context: .api-artifacts\api-nonfunc-security-非功能-安-18c8a-N11-报告上传非-PDF-恶意内容被拒-非-200--desktop\error-context.md
 
 
-  2 failed
+  3 failed
+    [desktop] › e2e\api\nonfunc-perf-compat.spec.js:92:1 › [TC-P-N02/X-N01] 并发不串数据:并行 AI 请求各自独立响应 ──
     [desktop] › e2e\api\nonfunc-security.spec.js:75:3 › 非功能/安全接口冒烟 › [TC-A-N05] 非管理员访问后台接口被拒(401/403) 
     [desktop] › e2e\api\nonfunc-security.spec.js:121:3 › 非功能/安全接口冒烟 › [TC-P-N11] 报告上传非 PDF/恶意内容被拒(非 200) 
   3 skipped
-  52 passed (49.4s)
+  51 passed (54.4s)

+ 1 - 1
playwright_smoke_report.md

@@ -1,7 +1,7 @@
 
 ## Playwright E2E 冒烟(api 层,独立,不阻断主闭环)
 - 执行器: /d/cfc/tests/node_modules/.bin/playwright test -c playwright.config.api.js --project=desktop
-- 结果: **52 passed / 2 failed / 3 skipped**
+- 结果: **51 passed / 3 failed / 3 skipped**
 - 覆盖: tests/e2e/api/*.spec.js(含 nonfunc-security 安全契约、nonfunc-perf-compat 性能兼容)
 - 说明: 红用例=已知后端缺口(权限提升/开放端点/上传未校验/缺鉴权过滤器),作持续告警;失败不阻断本闭环。
 - 明细: /d/cfc/playwright_smoke.log