# 04 — Agent 浏览器自测 + 截图存档 + 移交人工验收 Type: task Status: resolved Blocked by: 03 ## 任务 用户介入前的最后一道关:Agent 用浏览器自动化完整自测 Demo,确认「后端修复可信、测试全绿、Demo 可演示」,然后移交: 1. **浏览器自动化自测**(`webapp-testing` skill / Playwright,后端在跑 + seed 基线): - 遍历 demo 全功能面:列表(多视图)→ 详情 → 九子表 Tab(含票 03 新接入的工作计划)→ 新建商机(成功 + 六必填失败双路径)→ 状态机关键动作(如暂缓/恢复对话框)→ 规则三族页面; - 每步截图存档至 `.scratch/opportunity-acceptance/shots/`(命名沿用 demo-sub-N 风格:accept-N-场景.png); - 断言要点:工作计划三形态渲染、新建成功反馈、业务错友好提示、20260829 四修复点无回归。 2. **自测报告**:通过/失败清单 + 截图索引,失败项回到票 03 修后重测(或记缺陷)。 3. **人工验收清单**:给用户的演示脚本——按什么顺序点、每步预期看到什么(含 D-01 验证点:新建落首阶段、阶段进度 5 节点)、已知边界(F08 MinIO 外部依赖 ⚠ 等);并入 `.scratch/opportunity-e2e/e2e-report.md` 终章或独立清单文件(执行时定)。 4. **移交说明**:一轮话术告诉用户「怎么验、验什么、哪绿哪黄」。 ## 验收 - 截图齐全(覆盖上述功能面,含失败路径)且可读; - 自测全绿(或残留项有明确理由与去向); - 人工验收清单 + 移交说明产出; - Answer 记录:自测摘要 + 截图目录 + 清单路径。 ## Answer **终轮 31/31 PASS,page_errors 0 / console_errors 0,移交就绪。** ### 自测摘要 - **执行方式**:Playwright headless Chromium 1440×900,`accept-selftest.py`(file:// 开 demo,AJAX 直连 localhost:8080 × verify fat jar);多轮「诊断 → 修复 → 复测」,终轮全量复跑 31/31(2026-08-31 15:20~16:12)。 - **覆盖面**:自动登录 → 列表多视图(我负责的/管理全量/公海/关键词筛选)→ 看板 → 详情九子表(含票 03 新接入工作计划三形态闭环:badge 实时判定/登记完成 finishTime 回填/编辑/软删)→ 新建双路径(六必填 errbox 拦截 → 成功 toast 含 id 直达详情,**落首阶段 CURRENT + 阶段进度 5 节点**)→ 状态机 E4/E5(暂缓 badge=暂缓中 / 取消暂缓 badge=推进中,库证 oppStatus 2→3→2)→ 规则三族(**OPP_STAGE_TPL_01 预设模板在列 + 64018 保护可见**)→ 切用户 A 赖永利数据权限。 - **三结论成立**:后端修复可信(D-01 opportunity-fix 口径 UI 端到端 + 20260829 四修复点无回归)/ 测试全绿 / Demo 可演示。 - **本轮核心价值——暴露并修复 3 个 UI 集成面缺陷**(票 02 为 API 级、票 03 为 requests 直测,均未覆盖): | # | 缺陷 | 修复 | |---|------|------| | demo-B1 | 切视图后 `S.total` 残留旧值 → 空页/错误页码 | `pickView`/`onCview`/查询三处补 `S.total = 0`(查询并重置 page=1) | | demo-B2(高危) | 19 个无返回值写端点(暂缓/恢复/领取/分配/关闭/重启/移交/抛公海/切阶段/关注/编辑/存视图/规则发布·停用·删除等)UI 静默失败——端点响应 `data=null`,`tryApi` 误判失败跳过成功路径 | 新增 `okApi`(不抛错即成功 + err toast)替换 19 处判定 | | demo-B3 | 工作计划 deadline 分钟精度被后端 DTO 拒(强制 `yyyy-MM-dd HH:mm:ss`) | `doWorkPlanSave` 补秒 | - 修复后全量复跑 31/31 全绿;三处均为 demo 前端改动,**不触碰已验收后端**(修复脚本 `fix-demo-b2.py` 留档)。 ### 截图目录 `shots/` 29 张(accept-01~30;断言 07 跟进 toolbar、17 工作计划入口分别复用 08/18 截图)——逐条索引见 `selftest-report.md` §三;机器可读结果 `selftest-result.json`;复跑 `python -X utf8 accept-selftest.py`(前置:后端 8080 在跑;WP_OPP 的 wp 脚本自建自清)。 ### 报告与清单路径(清单落点拍板:独立文件) - **自测报告** `selftest-report.md`:31 断言清单 + 截图索引 + 3 缺陷修复记录 + 🟡 已知形态(seed 快照空 stageId / F08 MinIO ⚠ / D-xx 原样体验族)+ 测试数据留存说明(accept- 前缀命名,不碍 seed v2 基线与 E2E 重跑)。 - **人工验收清单 + 移交说明** `acceptance-checklist.md`:移交话术(怎么验/验什么/哪绿哪黄)+ 七幕演示脚本(每步操作→预期→截图佐证)+ D-01 双口径验证点(opportunity-fix 新建 5 节点 vs bugfix 关联客户 API 级)+ 🟡 已知边界 + 通过标准。**未并入 e2e-report.md**:该文件是 177 用例技术报告,清单是用户操作脚本,独立文件可读性最好。 ### 过程文件 `accept-selftest.py`(终版脚本,等待机制为 Python 轮询——`wait_for_function` 对动态元素静默失效,见 `fix-wait-helpers.py`)· `fix-demo-b2.py` · `probe-wff.py` / `check-syntax.py`(诊断辅助)· `selftest-result.json`。