# E2E 测试场景矩阵 — 角色 × 功能 × 场景 **版本**: v2.0(新增健康营养师角色) **更新**: 2026-07-04 **覆盖**: 6角色 × 19功能域 × 90+场景 --- ## 一、角色权限总览 | 角色 | 说明 | vendor_type | 核心能力 | |------|------|-------------|---------| | `parent` | 家长 | — | 家庭管理、任务、积分、测评、购买 | | `child` | 孩子 | — | 任务执行、打卡、心愿、游戏 | | `teacher` | 成长规划师 | `planner` | 绑定家庭、下发任务、录入测评 | | `nutritionist` | 健康营养师 | `nutritionist` ⬅️ 新增 | 营养评估、食谱管理、饮食指导 | | `vendor` | 供应商 | `product_supplier` / `activity_provider` / `consultant` | 商品/活动管理 | | `admin` | 管理员 | — | 全系统管理 | --- ## 二、健康营养师(Nutritionist)场景矩阵 ⬅️ 新增 > **定位**:专注于"身"维度的专业服务商,为家庭提供精准营养指导 | 场景ID | 用户故事 | API端点 | 优先级 | 测试文件 | |--------|---------|---------|--------|---------| | US-NUTR-01 | 查看家庭营养档案 | `POST /api/nutrition/profile/get` | P0 | nutritionist-flow.spec.js | | US-NUTR-02 | 保存营养偏好 | `POST /api/nutrition/profile/save` | P0 | nutritionist-flow.spec.js | | US-NUTR-03 | 添加饮食记录 | `POST /api/diet/record/create` | P0 | nutritionist-flow.spec.js | | US-NUTR-04 | 查看饮食记录列表 | `POST /api/diet/record/list` | P0 | nutritionist-flow.spec.js | | US-NUTR-05 | 分析营养摄入 | `POST /api/nutrition/analyze` | P1 | nutritionist-flow.spec.js | | US-NUTR-06 | 创建食谱 | `POST /api/admin/recipes/create` | P0 | nutritionist-flow.spec.js | | US-NUTR-07 | 管理食谱库 | `POST /api/admin/recipes/*` | P0 | nutritionist-flow.spec.js | | US-NUTR-08 | 查看应季食材 | `POST /api/admin/seasonal/list` | P1 | nutritionist-flow.spec.js | | US-NUTR-09 | 获取饮食推荐 | `POST /api/meal/recommend` | P0 | nutritionist-flow.spec.js | | US-NUTR-10 | 绑定家庭 | `POST /api/bind/accept` | P0 | nutritionist-flow.spec.js | --- ## 三、按角色的场景矩阵 ### 3.1 家长(Parent)场景 #### 家庭管理(UC-01) | 场景ID | 用户故事 | 优先级 | 测试文件 | 状态 | |--------|---------|--------|---------|------| | US-FAM-01 | 添加家庭成员 | P0 | family-member-management.spec.js | ✅ 完成 | | US-FAM-02 | 查看家庭成员列表 | P0 | family-member-management.spec.js | ✅ 完成 | | US-FAM-03 | 切换孩子视图 | P0 | family-member-management.spec.js | ✅ 完成 | | US-FAM-04 | 移除家庭成员 | P0 | family-member-management.spec.js | ✅ 完成 | | US-FAM-05 | 获取关系类型字典 | P0 | family-member-management.spec.js | ✅ 完成 | | US-FAM-06 | 生成/使用家庭邀请码 | P1 | — | 📋 需补充 | | US-FAM-07 | 编辑家庭成员关系 | P1 | — | 📋 需补充 | #### 任务管理(UC-02) | 场景ID | 用户故事 | 优先级 | 测试文件 | 状态 | |--------|---------|--------|---------|------| | US-TASK-01 | 创建任务 | P0 | daily-checkin-streak.spec.js | ⚠️ 部分 | | US-TASK-04 | 审核任务 | P0 | — | 📋 需补充 | | US-TASK-05 | 查看待审核列表 | P0 | — | 📋 需补充 | | US-TASK-06 | 查看任务历史 | P1 | — | 📋 需补充 | | US-TASK-08 | 家长任务 | P1 | — | 📋 需补充 | #### 心愿管理(UC-03) | 场景ID | 用户故事 | 优先级 | 测试文件 | 状态 | |--------|---------|--------|---------|------| | US-WISH-01 | 孩子创建心愿 | P0 | wish-exchange-flow.spec.js | ✅ 完成 | | US-WISH-02 | 家长定价心愿 | P0 | wish-exchange-flow.spec.js | ✅ 完成 | | US-WISH-03 | 家长拒绝心愿 | P1 | — | 📋 需补充 | | US-WISH-04 | 孩子申请兑换 | P0 | wish-exchange-flow.spec.js | ✅ 完成 | | US-WISH-05 | 家长审批兑换 | P0 | wish-exchange-flow.spec.js | ✅ 完成 | #### 积分系统(UC-04) | 场景ID | 用户故事 | 优先级 | 测试文件 | 状态 | |--------|---------|--------|---------|------| | US-POINTS-01 | 查看积分余额 | P0 | points-system.spec.js | ✅ 新增 | | US-POINTS-02 | 查看积分流水 | P0 | points-system.spec.js | ✅ 新增 | | US-POINTS-03 | 手动调整积分 | P1 | points-system.spec.js | ✅ 新增 | | US-POINTS-04 | 按分类查看流水 | P2 | points-system.spec.js | ✅ 新增 | #### 测评流程(UC-07) | 场景ID | 用户故事 | 优先级 | 测试文件 | 状态 | |--------|---------|--------|---------|------| | US-ASSESS-01 | 创建测评订单 | P0 | assessment-order-flow.spec.js | ✅ 完成 | | US-ASSESS-02 | 支付测评订单 | P0 | assessment-order-flow.spec.js | ✅ 完成 | | US-ASSESS-03 | 查看订单详情 | P1 | — | 📋 需补充 | | US-ASSESS-04 | 取消测评订单 | P1 | — | 📋 需补充 | | US-ASSESS-05 | 申请退款 | P1 | — | 📋 需补充 | | US-ASSESS-08 | 查看测评结果 | P0 | assessment-order-flow.spec.js | ✅ 完成 | #### 成长档案(UC-08) | 场景ID | 用户故事 | 优先级 | 测试文件 | 状态 | |--------|---------|--------|---------|------| | US-GROWTH-01 | 创建成长档案 | P0 | growth-record-sync.spec.js | ✅ 完成 | | US-GROWTH-02 | 上传PDF解析 | P0 | — | 📋 需补充 | | US-GROWTH-04 | 查看档案列表 | P0 | growth-record-sync.spec.js | ✅ 完成 | | US-GROWTH-05 | 补充记录 | P1 | — | 📋 需补充 | #### 文章管理(UC-09) | 场景ID | 用户故事 | 优先级 | 测试文件 | 状态 | |--------|---------|--------|---------|------| | US-ARTICLE-07 | 浏览文章列表 | P0 | article-management.spec.js | ✅ 新增 | | US-ARTICLE-08 | 查看文章详情 | P0 | article-management.spec.js | ✅ 新增 | | US-ARTICLE-09 | 每日成长贴士 | P1 | — | 📋 需补充 | #### 活动报名(UC-10) | 场景ID | 用户故事 | 优先级 | 测试文件 | 状态 | |--------|---------|--------|---------|------| | US-ACT-03 | 浏览活动 | P0 | activity-registration.spec.js | ✅ 新增 | | US-ACT-04 | 报名活动 | P0 | activity-registration.spec.js | ✅ 新增 | | US-ACT-05 | 取消报名 | P1 | activity-registration.spec.js | ✅ 新增 | | US-ACT-07 | 查看我的报名 | P1 | — | 📋 需补充 | --- ### 3.2 孩子(Child)场景 | 场景ID | 用户故事 | 优先级 | 测试文件 | 状态 | |--------|---------|--------|---------|------| | US-TASK-02 | 查看今日任务 | P0 | mini-games-full.spec.js | ✅ 新增 | | US-TASK-03 | 完成任务 | P0 | — | 📋 需补充 | | US-WISH-01 | 创建心愿 | P0 | wish-exchange-flow.spec.js | ✅ 完成 | | US-CHECKIN-01 | 健康打卡 | P0 | daily-checkin-streak.spec.js | ✅ 完成 | | US-ENERGY-01 | 查看能量总览 | P0 | energy-system.spec.js | ⚠️ 部分 | | US-GAME-01 | 舒尔特方格 | P1 | mini-games-full.spec.js | ✅ 新增 | | US-GAME-02 | 猜数字 | P1 | mini-games-full.spec.js | ✅ 新增 | | US-GAME-03 | 数独 | P1 | mini-games-full.spec.js | ✅ 新增 | --- ### 3.3 健康营养师(Nutritionist)场景 ⬅️ 新增 | 场景ID | 用户故事 | 优先级 | 测试文件 | |--------|---------|--------|---------| | US-NUTR-01~10 | 营养档案/饮食记录/食谱/推荐/绑定 | P0~P1 | nutritionist-flow.spec.js | --- ### 3.4 管理员(Admin)场景 | 场景ID | 用户故事 | 优先级 | 测试文件 | 状态 | |--------|---------|--------|---------|------| | US-ARTICLE-01 | 创建文章 | P0 | article-management.spec.js | ✅ 新增 | | US-ARTICLE-02 | 发布文章 | P0 | article-management.spec.js | ✅ 新增 | | US-ACT-01 | 创建活动 | P0 | activity-registration.spec.js | ✅ 新增 | | US-ACT-02 | 发布活动 | P0 | activity-registration.spec.js | ✅ 新增 | | US-ADMIN-01 | 创建用户 | P0 | admin-panel.spec.js | ✅ 新增 | | US-ADMIN-02 | 用户列表 | P0 | admin-panel.spec.js | ✅ 新增 | | US-ADMIN-05 | 数据看板 | P1 | admin-panel.spec.js | ✅ 新增 | | US-ENERGYRULE-01~04 | 能量规则CRUD | P1 | energy-rules-config.spec.js | ✅ 新增 | | US-GUIDE-02 | 审核规划师 | P0 | admin-panel.spec.js | ⚠️ 部分 | | US-VENDOR-03 | 审核供应商 | P0 | vendor-onboarding.spec.js | ✅ 新增 | --- ## 四、E2E 测试文件清单 | 文件 | 覆盖场景数 | 状态 | |------|-----------|------| | assessment-order-flow.spec.js | 7 | ✅ 完成 | | family-member-management.spec.js | 9 | ✅ 完成 | | wish-exchange-flow.spec.js | 9 | ⚠️ 需补充孩子侧 | | planner-bind-invite.spec.js | 7 | ⚠️ 需补充管理员审核 | | growth-record-sync.spec.js | 6 | ✅ 完成 | | energy-system.spec.js | 6 | ⚠️ 需补充维度配置 | | product-purchase.spec.js | 9 | ⚠️ 需补充供应商入驻 | | daily-checkin-streak.spec.js | 8 | ⚠️ 需补充补打卡 | | mini-games-playwright.spec.js | 部分 | ⚠️ 需补充完整流程 | | **nutritionist-flow.spec.js** | 10 | 🆕 新增 | | **article-management.spec.js** | 5 | 🆕 新增 | | **activity-registration.spec.js** | 4 | 🆕 新增 | | **points-system.spec.js** | 4 | 🆕 新增 | | **admin-panel.spec.js** | 5 | 🆕 新增 | | **vendor-onboarding.spec.js** | 3 | 🆕 新增 | | **energy-rules-config.spec.js** | 4 | 🆕 新增 | | **membership-system.spec.js** | 3 | 🆕 新增 | | **contact-management.spec.js** | 4 | 🆕 新增 | | **mini-games-full.spec.js** | 5 | 🆕 新增 | **总计**: 20个测试文件,100+场景 --- ## 五、缺失场景清单(按优先级) ### 高优先级(P0) - [ ] 管理员审核文章发布 - [ ] 管理员审核报名 - [ ] 能量规则配置完整 - [ ] 健康营养师10场景 ### 中优先级(P1) - [ ] 供应商入驻完整流程 - [ ] 会员购买/试用 - [ ] 小游戏完整流程 - [ ] 补打卡场景 - [ ] 批量任务操作 ### 低优先级(P2) - [ ] 联系人管理 - [ ] 数据导出 - [ ] 邀请码使用 --- ## 六、测试账号 | 角色 | 手机号 | userId | 说明 | |------|--------|--------|------| | 管理员 | 13800138000 | 7 | Web管理端全权限 | | 家长 | 13701366188 | 8 | 有家庭/孩子 | | 供应商 | 13800138001 | 81069 | vendor_status=pending | | 营养师 | 待创建 | 待分配 | vendor_type=nutritionist | --- ## 七、测试环境 - **后端**: `http://localhost:9082` - **前端**: `http://localhost:8080` - **环境**: 开发环境(development) --- ## 八、运行指南 ```bash # 运行所有E2E测试 npx playwright test tests/e2e/ # 运行特定测试文件 npx playwright test tests/e2e/nutritionist-flow.spec.js # 运行带UI模式 npx playwright test tests/e2e/ --headed # 运行特定标签 npx playwright test tests/e2e/ --grep "场景1" # 生成HTML报告 npx playwright test tests/e2e/ --reporter=html ``` --- ## 九、CSS选择器参考 ### 通用选择器 ```css .submit-btn /* 提交按钮 */ .confirm-btn /* 确认按钮 */ .success-tip /* 成功提示 */ .error-tip /* 错误提示 */ .toast-success /* Toast成功 */ ``` ### 页面容器 ```css .assessment-apply-page /* 测评申请页 */ .nutrition-profile-page /* 营养偏好页 */ .meal-record-page /* 饮食记录页 */ .article-list /* 文章列表 */ .activity-list /* 活动列表 */ ``` ### 表单元素 ```css input[name="xxx"] /* 输入框 */ select[name="xxx"] /* 选择器 */ textarea[name="xxx"] /* 文本域 */ .child-picker /* 孩子选择器 */ ``` --- ## 十、Milestone标记规范 ```javascript // 每个关键里程碑用以下注释标记: // ========== Then:Milestone-1 ======== // ========== Then:Milestone-2 ======== // ... ``` --- ## 十一、更新日志 ### v2.0 (2026-07-04) - ✅ 新增健康营养师(Nutritionist)角色 - ✅ 新增10个营养师场景(US-NUTR-01~10) - ✅ 新增9个E2E测试文件 - ✅ 新增场景矩阵文档 - ⚠️ 待补充现有测试文件的缺失场景 --- ## 十二、测试文件按用户角色映射 (User Role Mapping) > 2026-07-11 新增 | 将 25 个 E2E 测试文件按主要用户角色分类 ### 家长 (Parent) — 11 tests | 文件 | 描述 | 场景数 | |------|------|--------| | family-member-management.spec.js | 家庭成员管理 | 9 | | wish-exchange-flow.spec.js | 心愿兑换审批 | 12 | | points-system.spec.js | 积分系统 | 4 | | assessment-order-flow.spec.js | 测评订单流程 | 7 | | growth-record-sync.spec.js | 成长记录同步 | 7 | | consignee-management.spec.js | 收货人管理 | 8 | | contact-management.spec.js | 联系人管理 | 4 | | membership-system.spec.js | 会员体系 | 3 | | product-purchase.spec.js | 商品购买 | 9 | | daily-checkin-streak.spec.js | 连续签到打卡 | 8 | | energy-system.spec.js | 五维能量总览 | 6 | ### 孩子 (Child) — 3 tests | 文件 | 描述 | 场景数 | |------|------|--------| | mini-games.spec.js | 小游戏积分系统 | 14 | | mini-games-full.spec.js | 小游戏完整流程 | 5 | | mini-games-playwright.spec.js | 小游戏 Playwright | 部分 | ### 规划师 (Teacher/Planner) — 4 tests | 文件 | 描述 | 场景数 | |------|------|--------| | teacher-dashboard.spec.js | 规划师仪表盘 | 10 | | planner-bind-invite.spec.js | 规划师绑定邀请 | 7 | | health-report-audit.spec.js | 健康报告审核 | 8 | | assessment-order-flow.spec.js | 测评订单(规划师录入) | 7 | ### 管理员 (Admin) — 5 tests | 文件 | 描述 | 场景数 | |------|------|--------| | admin-panel.spec.js | 后台管理面板 | 4 | | article-management.spec.js | 文章管理 | 5 | | activity-registration.spec.js | 活动管理 | 4 | | energy-rules-config.spec.js | 能量规则配置 | 4 | | vendor-onboarding.spec.js | 供应商入驻审核 | 3 | ### 供应商 (Vendor) — 3 tests | 文件 | 描述 | 场景数 | |------|------|--------| | dan-assessment-vendor-flow.spec.js | DAN 测评服务商 | 10 | | vendor-onboarding.spec.js | 供应商入驻 | 3 | | nutritionist-flow.spec.js | 营养师流程(含供应商) | 10 | ### 营养师 (Nutritionist) — 1 test | 文件 | 描述 | 场景数 | |------|------|--------| | nutritionist-flow.spec.js | 营养师全流程 | 10 | --- **说明**: 部分测试文件横跨多个角色(如 assessment-order-flow 家长+规划师,vendor-onboarding 管理员+供应商),以主要使用者为准。