# E2E 测试体系重构 — Phase 1 执行总览 **文档版本:** v1.0 **日期:** 2026-07-25 **状态:** ✅ 已提交 (commit `338b3384`) --- ## 概述 对 CFC E2E 测试体系进行重构,建立基础设施层(DB 重置 + 统一认证 + 工具库),将测试文件按 4 个业务角色(parent/child/teacher/admin)重新组织,为后续 Phase 2 全量迁移奠定基础。 --- ## 交付清单 ### 基础设施(5 文件) | 文件 | 行数 | 职责 | |------|:----:|------| | `tests/e2e/seed-data.sql` | 160 | 完整种子数据(8 角色 + 家庭 + 文章 + 活动 + 商品 + 系统配置) | | `tests/e2e/reset-db.sh` | 45 | 一键重置数据库脚本 | | `tests/e2e/helpers/auth.js` | 343 | 统一认证 helper(8 角色:admin 走 Web 端,其余走 API/UI 回退) | | `tests/e2e/helpers/db.js` | 64 | Playwright globalSetup 自动重置数据库 | | `tests/e2e/helpers/utils.js` | 125 | `assertApiSuccess`、`assertApiError`、`authHeaders` 工具函数 | ### 测试数据工厂(1 文件) | 文件 | 行数 | 提供能力 | |------|:----:|----------| | `tests/e2e/helpers/fixtures.js` | 160 | `createTask`、`createWish`、`createAssessmentOrder`、`getTestData` | ### 角色测试(11 文件,4 角色) | 角色 | 文件数 | 文件 | |:----:|:------:|------| | **parent** | 5 | `family-management.spec.js` (104行, 8场景)、`wish-management.spec.js` (67行, 3场景)、`assessment-order.spec.js` (76行, 3场景)、`energy-dashboard.spec.js` (67行, 2场景)、`points.spec.js` (76行, 2场景) | | **child** | 3 | `login.spec.js` (21行, 2场景)、`daily-checkin.spec.js` (36行, 2场景)、`mini-games.spec.js` (34行, 3场景) | | **teacher** | 2 | `login.spec.js` (105行, 2场景)、`family-binding.spec.js` (128行, 3场景) | | **admin** | 3 | `login.spec.js` (28行, 2场景)、`article/workflow.spec.js` (47行, 4场景)、`vendor/management.spec.js` (47行, 2场景) | ### 配置文件更新 | 文件 | 变更 | |------|------| | `tests/playwright.config.js` | globalSetup 指向 db.js;timeout 60s → 120s;retries 0 → 1;新增 mobile 项目(375×812);screenshot/trace 失败时保留 | --- ## 种子数据 ### 测试账号 | 角色 | 手机号 | userId | 家庭 | |------|--------|:------:|:----:| | 管理员 | 13800138000 | 1001 | — | | 家长 | 13701366188 | 1002 | 2001(测试幸福家庭) | | 孩子1(小明) | 13701366189 | 1003 | 2001 | | 孩子2(小红) | 13701366190 | 1004 | 2001 | | 规划师 | 13800000001 | 1005 | → 绑定家庭2001 | | 营养师 | 13800000010 | 1006 | — | | 管家 | 13800000020 | 1007 | — | | 测评师 | 13800000030 | 1008 | — | | 供应商 | 13800138001 | 1009 | — | ### 基础数据 - 1 个完整家庭(2 孩子 + 家长) - 1 个规划师绑定关系 - 2 篇测试文章(草稿 + 已发布) - 2 个测试活动(待审核 + 已发布) - 2 个测试商品 - 系统配置(五维维度定义) --- ## 代码统计 | 类别 | 文件数 | 总行数 | |------|:------:|:------:| | 新建文件 | 21 | 3,531 | | 修改文件 | 1 | +16 / -2 | | **总计** | **22** | **3,533** | --- ## Phase 1 覆盖检查清单 | 检查项 | 状态 | |--------|:----:| | `reset-db.sh` + `seed-data.sql` 可运行 | ✅ | | `helpers/auth.js` 8 角色均可登录 | ✅ | | `helpers/utils.js` API 断言工具可用 | ✅ | | `helpers/db.js` globalSetup 自动运行 | ✅ | | `playwright.config.js` 更新完成 | ✅ | | `roles/parent/` 5 个核心文件 | ✅ | | `roles/child/` 3 个文件 | ✅ | | `roles/teacher/` 2 个文件 | ✅ | | `roles/admin/` 3 个文件 | ✅ | | 代码已提交至远程 `origin/cfclub` | ✅ | --- ## 已知限制 1. 旧 spec 文件(`tests/e2e/*.spec.js` 顶层 40 文件)**未删除**,保留向后兼容,后续 Phase 2 逐角色迁移后清理 2. 种子数据 account `code` 字段未严格对应生产环境验证码策略(测试模式使用固定 `123456`) 3. `fixtures.js` 依赖真实 API 端点,部分端点可能在生产环境与测试环境间存在差异