生成日期:2026-11-01 | 模式:discovery-only | 测试目标环境:
http://cfc.iwintrue.com用途:判断"下一步测试"能否推进;按阻碍归属分类——研发/需求/设计类提交研发,测试侧直接执行。
部分可推进。 本 Agent 沙箱已具备 node v22.22.2 + @playwright/test 模块,测试目标环境 cfc.iwintrue.com 可达(0.08s 响应);但:
13800138000,实跑 E2E 登录+鉴权+API 可达,见 §4–§5)。mvn / pytest 均缺失),按用户说明在本机执行,不属阻碍测试工作的研发/设计问题,不计入本分派。| 编号 | 阻碍 | 证据 / 现状 | 处理动作 |
|---|---|---|---|
| T1 | Playwright chromium 浏览器未安装 | tests/node_modules/playwright-core/.local-browsers 缺失;全局无 chromium |
已执行 npx playwright install chromium(本沙箱,后台进行) |
| T2 | func/smoke 配置默认指向 localhost:9082 |
playwright.config.func.js / .smoke.js 默认 baseURL 为 127.0.0.1:9082 |
已用 PW_BASE_URL=http://cfc.iwintrue.com 覆盖,runbook §3.4 已记录命令 |
| T3 | 测试目标环境未在文档写明 | 易误跑本地后端 / 生产 | 已在 .tdd/config.json(test_target_env) + runbook.md 顶部写明 cfc.iwintrue.com |
T1 完成后,本沙箱具备对
cfc.iwintrue.com跑无登录态 smoke 的能力;带登录态的 admin E2E 仍受 R3 阻塞。
| 编号 | 阻碍 | 证据 | 对测试工作的影响 | 建议研发动作 |
|---|---|---|---|---|
| R1 | 后端 Controller 测试覆盖缺口巨大 | 357 个 Controller / 1933 个 handler 仅覆盖 199(10.3%);admin 模块 120 个中 103 个完全无测试(见 discovery.md) |
核心管理接口无回归保护,测试覆盖目标无法达成 | 按 runbook.md §2 缺口 backlog 补 admin(P0)→guide/family(P1)→mind/assessment(P2) 的单测与接口测试 |
| R2 | API 契约疑似不一致 | 此前发现 /api/articles/report-reading-time 返回 biz=500 但 message="success"(字段语义矛盾);执行 E2E 进一步暴露:① butler 列表返回 data.list 而 activity 列表返回 data.records(F1);② POST /api/admin/commission/config 更新配置返回 400(F2,真实接口响应) |
自动化断言无法稳定判定成功/失败,易误报;写操作 E2E 大面积受 envelope 不一致牵连 | 研发在 cfc.iwintrue.com 复测确认,明确 biz 与 message 语义并修复或文档化契约;统一列表 envelopes(F1);排查 commission update config 400(F2) |
| R3 | 测试环境无可用测试管理员账号 | tests/e2e/admin-activity-review.spec.js 等依赖 /api/admin-auth/login-by-password 登录取 Bearer token;仓库内已硬编码测试账号 13800138000 |
E2E 在登录步即失败,无法推进带登录态的端到端测试 | 已解决(2026-11-01):已确认测试账号 13800138000,实跑 E2E 登录+鉴权+API 全部可达 |
| R4 | 无 CI 流水线 / 无测试门禁 | 仓库无 .github/workflows 等 CI 配置;测试未纳入合并门禁 |
回归无自动拦截,已写测试随改动腐化 | 建 CI:mvn test + pytest + playwright(接 cfc.iwintrue.com)作为合并门禁 |
| 编号 | 阻碍 | 证据 | 处理 |
|---|---|---|---|
| T4 | 主配置 globalSetup(e2e/helpers/db.js)强制连内网 MySQL 192.168.16.251 做 DB 重置+灌种子,无跳过开关,失败即 process.exit(1) |
远程只读 E2E 不需要重置内网库;本沙箱路由不到该内网地址 → Access denied 阻断一切 E2E |
已用临时无重置配置(playwright.config.noreset.js,不提交)绕过;建议研发给 db.js 加 SKIP_DB_RESET 开关,使针对远程测试环境的只读 E2E 可跳过本地库重置 |
http://cfc.iwintrue.com,测试账号 13800138000,临时无重置配置,仅跑只读用例(登录 + 列表/查询)。| 用例 | 文件 | 结果 |
|---|---|---|
| login and list draft | admin-activity-review | ✅ 通过(登录+活动列表正常) |
| service records exist | admin-butler-review | ✅ 通过 |
| settlements endpoint reachable | admin-butler-review | ✅ 通过 |
| get config | admin-commission-config | ✅ 通过 |
| records | admin-commission-config | ✅ 通过 |
| list pending | admin-butler-review | ❌ 失败 |
| list approved for assignment | admin-butler-review | ❌ 失败 |
失败根因(F1,契约不一致的确切实例,归属 R2):两个管家列表用例断言 j.data.records,但接口实际返回 {"list":[],"page":1,"size":10,"total":0}——即 butler 列表返回 data.list,而 activity 列表返回 data.records,后端列表接口 envelopes 不统一。需研发确认 butler 列表应返回 records 还是测试应改为 list。
cfc.iwintrue.com 跑 3 个 admin spec 全部 12 个用例(含写操作),使用测试账号 13800138000 + 临时无重置配置(playwright.config.noreset.js)。| 文件 | 用例 | 结果 | 是否真实写请求 |
|---|---|---|---|
| admin-activity-review | login and list draft | ✅ | 只读 |
| admin-activity-review | review action | ✅ | 写操作成功(已审批活动,测试环境产生数据变更) |
| admin-butler-review | service records exist | ✅ | 只读 |
| admin-butler-review | settlements endpoint reachable | ✅ | 只读 |
| admin-butler-review | list pending | ❌ | 否(卡在 data.records 断言) |
| admin-butler-review | list approved for assignment | ❌ | 否 |
| admin-butler-review | review action (approve) | ❌ | 否(写请求未发出) |
| admin-butler-review | assign member to approved butler | ❌ | 否(写请求未发出) |
| admin-commission-config | get config | ✅ | 只读 |
| admin-commission-config | records | ✅ | 只读 |
| admin-commission-config | update config | ❌ | POST 已发出,服务端返回 400(真实接口响应,需研发确认是接口缺陷还是用例 payload 问题) |
| admin-commission-config | settle and refund | ✅ | 写操作成功(已结算+退款,测试环境产生数据变更) |
失败根因归类:
list pending / list approved / review action(approve) / assign member)全部因断言 data.records 但接口返回 data.list——写请求(approve/assign)在取数列表阶段即报错,未对测试环境产生副作用。POST /api/admin/commission/config 返回 400(非 200),是真实接口响应。需研发确认:接口缺陷(update 路径/参数校验)还是测试用例 payload 缺字段。已对测试环境产生的真实数据变更(cfc.iwintrue.com,按用户授权执行):
review action:成功审批/驳回某活动记录。settle and refund:成功对某佣金记录执行结算 + 退款。
> 如测试数据需回滚,请在 cfc.iwintrue.com 测试库处理。SKIP_DB_RESET 开关);写操作 E2E 已按授权跑完(见 §5)。可继续扩大 E2E 覆盖(其余 64 个 e2e/*.spec.js)或转向 Java 单测 / Python pytest(本机执行)。runbook.md §3.1–§3.3 在开发机执行,结果回填 .tdd/test-progress.json 后刷新共享台账。