You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

4.2 KiB

05 · demo Playwright 扩展冒烟

Type: task Status: resolved Blocked by: 03, 04

Claimed: 2026-09-06 · wayfinder 工作会话(frontier 首票) Resolved: 2026-09-06

Question

demo 页新入口(票 03 产物)纳入 UI 冒烟,扩展 round-1 的 11 步脚本:

  1. 脚本扩展:从 demo_smoke10.py 扩展新入口步骤——战略协议 CRUD、查重设置保存回读、批量工商(NO_HIT 呈现)、导入带 duplicateStrategy;建议复制为 demo_smoke_r2.py 保留 11 步基线(取舍票内定)
  2. 执行.scratch/customer-e2e/.venv10 复用(chromium-1234 已缓存零下载);?api=http://localhost:8080 注入 + file:// 跨域 + OPTIONS 预检链路照旧
  3. 门槛:全步骤 PASS、console error = 0、page error = 0、网络层断言零旧契约调用(/api/customer/\d+/、PUT/DELETE)
  4. 已知坑位(round-1 票 10 实测沉淀):loadHead 重渲染吃掉动态输入框(reload + 重点 detail tab)、member 双分支防御性预清理、confirmSimilar 双分支等待——新步骤沿用这些模式
  5. 残留清理:UI 冒烟造的数据(协议/设置/导入)e2c- 前缀正门清理;查重设置是全局单例,测试后恢复出厂值(masterEnabled=false 或原值)

Answer(2026-09-06 落地收官)

执行环境:fat jar 直接复用票 04 重建版(22:29,无需重打);corretto-17(C:\Users\Administrator\.jdks\corretto-17.0.13)+ verify profile + MinIO env 起服 ~40s 判活;Playwright 走 .venv10(chromium-1234 零下载)。

脚本形态(票内拍板):新建 demo_smoke_r2.py 复制扩展而非原地改,保留 smoke10 11 步基线(详情页签循环 5→6 加 agreements 只读过一遍)+ 4 个新入口步骤块 + 三段收尾清理(协议清扫 / dedup 兜底恢复 / e2c-r2demo-浏览器* archive 正门)。

结果:20 步全 PASS,首轮一次过;console_errors=0、page_errors=0、网络层 57 请求零旧契约形态(/api/customer/<digits>/=0、PUT/DELETE=0)。

四个新入口逐项:

  1. 战略协议 CRUD(五端点闭环):create(level=2, amount=300万-r2)→ 客户快照同步实证(info.grid 战略协议='2')→ edit(对话框预填断言 level=2 → 升三级)→ detail(三级)→ 原生 confirm 删除流(Playwright dialog accept)→ 列表空。实测 agreement/delete软删(DB deleted=1 墓碑、list 端点已过滤)——DB 复核口径按 deleted=0
  2. 查重设置(全局单例):save(阈值 66/精确/phone=0)→ 重入 tab 触发 loadDedup 回读断言 → UI 恢复原值 → 起测前 GET 原值无条件 POST 兜底恢复双保险;DB 终态 = 原值(master=1/name=1/mode=2/threshold=80/phone=1)。
  3. F6 批量工商:勾选自建客户 1 行 → batch-update → 结果行=1 且「未命中」徽标命中——stub 恒 NO_HIT 如实呈现语义通过。
  4. F8 导入策略#impStrategy=OVERWRITE → 上传预检 toast 回显 策略=OVERWRITE(t=1 suspect=1;只预检不 confirm)。

BUDDY 归属解耦(票 04 移交项落实):协议/F6 全部挂自建客户(owner=admin);交割只 page+preview 不 initiate(规避 heavy F-13 同款名下全量圈定);事后 DB 复核 collab owner 仍=曾偲青 未漂移。

残留终态(DB 实扫 scan-residue-t05.py:r2demo 客户 arch=2、协议活行=0、成员位无活跃 BUDDY 行(member/remove 软删墓碑 ×3)、e2c-* 活跃 16 = seed 基准、dedup 单例原值;导入留 2 条任务痕迹(round-1 DRAFT + 本轮预检,无业务写入,对齐 heavy F-14 先例不清理)。服务已停(8080 释放)。

坑位沉淀:① settings 重入的「已加载」toast 有残留竞态——回读断言改盯控件值 + 900ms 等 GET 覆盖;② customer_team_member 列名是 user_id/member_role(不是 member_user_id/role);③ Playwright 原生 confirm 需 page.once("dialog", accept) 且注册先于点击。

产物索引.scratch/customer-e2e/demo_smoke_r2.py / demo-smoke-r2-result.json / shots-r2/×11;.scratch/customer-e2e-r2/scan-residue-t05.py。无新缺陷、无新 fog;frontier → 06(report-v2 聚合,API 三套件 + UI 冒烟四路输入全齐)。