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.

35 lines
3.2 KiB

2 days ago
# 08 Playwright 冒烟步骤表(≥30 步)与报告形态
Type: task
Status: resolved
Blocked by: 01, 06
## Question
产出冒烟步骤表,落在 `assets/smoke-plan.md`
1. 步骤清单 ≥30 步,覆盖三族闭环主路径:核心域(登录→三 workspace 切换→新建客户含查重流→编辑→详情页签遍历→联系人 CRUD→跟进→关注→归属动作→归档/抛公海)、重流程(导入三段式、交割两段式)、规则族(查重设置/公海池配置/超期提醒读写);
2. 缺陷现象步(按 06 号票的展示清单,断言「现象按设计呈现」而非断言正确行为);
3. 全局断言:console error=0、4xx/5xx 弹窗可见性验证、零 PUT/DELETE 请求断言(ADR-0017);
4. 报告形态:沿用 `{steps:[{step,ok,note}], errors:[], api_urls:[]}`,PASS/FAIL 统计口径;
5. 运行方式:系统 Python + playwright sync,`file:///` 打开 + `?api=http://localhost:8080` + `page.route` 反代注入 Bearer;写副作用的 seed 策略(用后即删的临时前缀夹具 vs e2c- 既有 seed 只读复用)。
## Pointers
- 现成参照:`.scratch/customer-frontend-handover/demo_t04_smoke.py`(35 步)、`.scratch/customer-contact-graph/demo_smoke_graph.py`(40 步)。
- seed id 权威:`.scratch/customer-e2e/seed-ids.json`。
- 共享库还原口诀:`.scratch/customer-frontend-handover/map.md:38`。
## Answer
(2026-09-11,AFK 决断。产出:**assets/smoke-plan.md**(40 步全表)。输入:t04/graph 两套冒烟先例 + 06 号票展示设计 + seed-ids。)
### 要点
1. **40 步(>30)**,五段:A 核心域闭环 19 步(workspace/视图/筛选/归档态/saved-view/看板/查重新建流/编辑/详情 8 页签遍历/联系人 CRUD+reveal/跟进/关注+oplog 留痕)、B 重流程 6 步(客户导入三段式、联系人导入、**商机联动链 67007 阻断→关闭→放行**、交割两段式、归属 batch 族)、C 规则族 4 步(dedup/试玩/reminder 64023/公海池占位)、D 缺陷现象 7 步(全按 06 号票 `data-defect` 钩子断言)、E 全局 4 步(console=0/零 PUT-DELETE/端点广度≥50/清扫还原)。
2. **缺陷现象步口径**:断言「现象按设计呈现」(角标存在、"--" 口径、豁免入口 count=0),FAIL 时定性为 Demo 实现缺陷,与后端缺陷区分。
3. **4xx/5xx 弹窗通道**不设独立假请求步,用真实业务拒绝验证:67007 抛公海阻断(步 23)+ 67003 信用代码(步 27)+ 64023 提醒非法值(步 28)三处 toast。
4. **报告**:`demo/smoke-report.json` = t04 形态(steps/errors/api_urls)+ summary 块(total/passed/failed/verdict,verdictRule=全 ok 即 PASS);截图落 `demo/shots/`
5. **seed 策略**:写夹具 `e2c-dr-*` 时间戳前缀用后 DB 正门硬删;e2c- 17 客户只读消费;偏好写走 API 正门写后立即还原(save list 回写/saved-view delete);规则单例 GET 记原值→save 测试→save 还原(F-15 口径);交割/分配只动夹具客户,不碰 e2c- collab,无 F-13 四字段还原负担。
6. **运行**:`py -X utf8 demo/smoke.py`,前置手动起服(verify+MinIO env);route 反代注 Bearer + multipart Python 分流(两处 upload)全套照搬 t04。