cross-role-e2e.md 20 KB

跨角色端到端测试用例(Cross-Role E2E · 主链路)

关联:各角色场景中的「主链路」片段;黑盒方案第 4.7 节(周五演示脚本)。 目标:验证 报告上传 → 解析入库 → 方案生成 → 审核 → 激活拆任务 → 执行打卡 → 审核统计 的跨角色闭环。 对应 e2e:../e2e/assessment-order-flow.spec.js、../e2e/dan-report-flow.spec.js、../e2e/ai-plan-task-flow.spec.js、../e2e/energy-system.spec.js、../e2e/admin-panel.spec.js。

主链路全景(角色流转)

规划师(代传报告) → 家长(生成方案) → 规划师(批准+激活) → 孩子(打卡) → 规划师(审核) → 运营(统计)
        ↑ 也可由家长直接上传报告(P-8/P-10)
TC 编号 环节 角色 优先级 类型 前置条件 测试步骤 预期结果 关联场景/用例
TC-X-01 报告上传解析 规划师 P0 功能 已绑定家庭+孩子 B;募极生物 PDF 1. 代上传 PDF+选 B 2. 解析预览 3. 确认入库 报告自动解析入库;七维健康评分刷新;/api/health/report/list 可查到 T-3 / P-10
TC-X-02 报告审核入库 规划师 P0 功能 X-01 草稿 1. 审核队列确认/直接入库 健康报告列表可见该报告 T-4
TC-X-03 方案生成 家长 P0 功能 孩子 B 有报告;已购会员 1. 选 B+默认目标 2. 调 LangGraph 生成并保存 方案生成成功(status=generated)并保存 P-13
TC-X-04 方案批准+激活 规划师 P0 功能 X-03 方案 generated 1. 批准(generated→reviewed) 2. 激活(reviewed→active) 孩子 B 名下出现「方案启动」引导任务+模板任务 T-6 / T-7
TC-X-05 任务打卡 孩子 P0 功能 X-04 已生成方案任务 1. 孩子打开方案任务 2. 完成并提交打卡 任务待审核;方案进度 completedDays+1 C-7 / C-2
TC-X-06 任务审核 规划师 P0 功能 X-05 已提交 1. 审核通过 孩子积分到账,流水可见 T-9 / P-06
TC-X-07 全局统计 运营 P1 功能 以上步骤已执行 1. 打开统计页 任务总量/完成数含本次演示数据 A-02
TC-X-08 幂等与回滚(主链路健壮性) 多角色 P0 异常 X-04 已 active 方案 1. 对已激活方案再次激活 2. 支付失败回滚 3. 重复打卡 重复激活不重复生成任务;支付失败订单不进入待安排;重复打卡不重复计数 T-8 / P-09a / C-8

主链路验收口径

  • P0 全绿:TC-X-01~06、TC-X-08 必须 100% 通过,否则主链路不通过。
  • 数据一致性:方案进度、积分流水、能量增量在闭环结束后彼此自洽(增分有流水、打卡有进度)。
  • AI 可用性:TC-X-03 在 LangGraph 不可用时由 AiGateway Fallback 兜底,不得 500(属 P0 异常口径)。

资产自检清单(交付前)

  • user-scenarios/ 6 角色场景齐全(guest/parent/child/teacher/admin/vendor)
  • test-cases/ 6 角色 + 跨角色 E2E 用例齐全
  • 双角色边界(家长↔孩子可切 / 孩子端不可切回 / 规划师可切回)在 P/C/T 用例中显式覆盖
  • 五维能量、测评订单闭环、健康报告主链路、LangGraph AI、文章审核、数据迁移等关键设计点均有场景+用例映射
  • 与既有 BLACKBOX-TEST-PLAN.md、e2e/*.spec.js 口径一致、互不冲突
  • 执行侧:用例需在测试环境跑通并回填结果(本批仅交付设计资产,执行需另行按双档授权)

补齐用例(缺口场景 SC-X-09~12)

TC 编号 环节 角色 优先级 类型 前置条件 测试步骤 预期结果 关联场景/用例
TC-X-09 AI 方案送审闭环 多角色 P0 功能 家长已生成方案(generated) 1. 家长送审 2. 规划师批准(reviewed) 3. 激活(active) 未确认不可激活;全链路状态正确流转 P-44 / T-06 / T-07
TC-X-10 报告对比趋势闭环 多角色 P2 功能 同一孩子多次上传同类型报告 1. 多次上传 2. 对比 3. 趋势 4. 方案调整 类型一致才可比;趋势方向正确 P-25 / T-21
TC-X-11 消息通知闭环 多角色 P1 功能 跨角色消息配置就绪 1. 规划师发消息 2. 家长/孩子收 3. 已读 仅目标角色可见;免打扰设置生效 P-65 / T-19 / C-15
TC-X-12 会员权益闭环 多角色 P1 功能 家长未购会员 1. 购会员 2. 权益生效 3. AI/高级报告解锁 4. 过期回收 购后解锁付费能力;过期权益回收 P-58 / P-16

本轮扩展场景用例(新增 SC-X)

TC 编号 环节 角色 优先级 类型 前置条件 测试步骤 预期结果 关联场景/用例
TC-X-13 报告代传跨角色闭环 跨角色 P1 功能 已登录(默认 跨角色);相关前置数据就绪 1. 按场景流程执行:发起代传 → 对方上传 → 孩子档案更新 2. 观察结果 达成目标:代传贯通;边界:授权校验;越权代传拒 X-13
TC-X-14 解绑/重分配跨角色协 跨角色 P1 功能 已登录(默认 跨角色);相关前置数据就绪 1. 按场景流程执行:家长解绑 ↔ 规划师侧更新 2. 观察结果 达成目标:解绑一致;边界:在途数据交接;状态同步 X-14
TC-X-15 注销/数据导出跨角色 跨角色 P1 功能 已登录(默认 跨角色);相关前置数据就绪 1. 按场景流程执行:家长申请 → 运营处理 → 规划师档案解绑 2. 观察结果 达成目标:注销贯通;边界:审计;冷静期 X-15
TC-X-16 活动名额并发 E2E 跨角色 P0 功能 已登录(默认 跨角色);相关前置数据就绪 1. 按场景流程执行:多家长同时报名抢名额 2. 观察结果 达成目标:并发报名;边界:并发超卖拦截(真实 bug) X-16
TC-X-17 多端登录会话互斥跨端 跨角色 P1 功能 已登录(默认 跨角色);相关前置数据就绪 1. 按场景流程执行:A 端登录 → B 端被踢/验证 2. 观察结果 达成目标:会话安全;边界:异常设备风控 X-17
TC-X-18 推送跨端送达 跨角色 P1 功能 已登录(默认 跨角色);相关前置数据就绪 1. 按场景流程执行:家长设提醒 → 孩子端收到 2. 观察结果 达成目标:提醒触达;边界:免打扰生效 X-18

异常流用例(派生自正常流)

TC 编号 环节 角色 优先级 类型 前置条件 测试步骤 预期结果 关联场景/用例
TC-X-01-E 报告上传解析 规划师 P2 异常 已绑定家庭+孩子 B;募极生物 PDF 1. 上传损坏/非募极/超大/格式不符文件或触发解析超时 2. 观察系统处理 识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 T-3 / P-10
TC-X-02-E 报告审核入库 规划师 P2 异常 X-01 草稿 1. 上传损坏/非募极/超大/格式不符文件或触发解析超时 2. 观察系统处理 识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 T-4
TC-X-03-E 方案生成 家长 P2 异常 孩子 B 有报告;已购会员 1. 制造 AI/方案生成超时或不可用;制造重复激活/确认/购买 2. 观察兜底与幂等 LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 P-13
TC-X-04-E 方案批准+激活 规划师 P2 异常 X-03 方案 generated 1. 制造 AI/方案生成超时或不可用;制造重复激活/确认/购买 2. 观察兜底与幂等 LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 T-6 / T-7
TC-X-05-E 任务打卡 孩子 P2 异常 X-04 已生成方案任务 1. 重复提交/并发/超期/驳回后重做 2. 观察处理 重复提交幂等不重复计分;驳回可重做;超期不可操作;能量不为负、流水可追溯;空态/缺数据降级非 500 C-7 / C-2
TC-X-06-E 任务审核 规划师 P2 异常 X-05 已提交 1. 重复提交/并发/超期/驳回后重做 2. 观察处理 重复提交幂等不重复计分;驳回可重做;超期不可操作;能量不为负、流水可追溯;空态/缺数据降级非 500 T-9 / P-06
TC-X-07-E 全局统计 运营 P2 异常 以上步骤已执行 1. 重复提交/并发/超期/驳回后重做 2. 观察处理 重复提交幂等不重复计分;驳回可重做;超期不可操作;能量不为负、流水可追溯;空态/缺数据降级非 500 A-02
TC-X-08-E 幂等与回滚(主链路健壮性) 多角色 P2 异常 X-04 已 active 方案 1. 输入非法参数/网络中断/请求超时 2. 观察降级 系统给出明确错误提示而非 500;关键操作可重试或回滚;不泄露内部堆栈 T-8 / P-09a / C-8
TC-X-09-E AI 方案送审闭环 多角色 P2 异常 家长已生成方案(generated) 1. 制造 AI/方案生成超时或不可用;制造重复激活/确认/购买 2. 观察兜底与幂等 LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 P-44 / T-06 / T-07
TC-X-10-E 报告对比趋势闭环 多角色 P3 异常 同一孩子多次上传同类型报告 1. 上传损坏/非募极/超大/格式不符文件或触发解析超时 2. 观察系统处理 识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 P-25 / T-21
TC-X-11-E 消息通知闭环 多角色 P2 异常 跨角色消息配置就绪 1. 输入非法格式/重复/越界值 2. 观察校验 字段格式校验拦截;重复去重;最小权限保底;保存失败不污染既有数据 P-65 / T-19 / C-15
TC-X-12-E 会员权益闭环 多角色 P2 异常 家长未购会员 1. 制造 AI/方案生成超时或不可用;制造重复激活/确认/购买 2. 观察兜底与幂等 LangGraph 不可用时 AiGateway Fallback 兜底,前端友好提示而非 500;重复激活/确认/购买幂等不重复生成任务/扣费;失败回滚不残半任务 P-58 / P-16

本轮扩展异常流(派生自新增场景)

TC 编号 环节 角色 优先级 类型 前置条件 测试步骤 预期结果 关联场景/用例
TC-X-13-E 报告代传跨角色闭环 跨角色 P2 异常 已登录(默认 跨角色);相关前置数据就绪 1. 上传损坏/非募极/超大/格式不符文件或触发解析超时 2. 观察处理 识别失败或解析超时给出明确提示,进入未知聚类/草稿而非 500;非募极报告明确提示「请确认是募极生物肠道菌群报告」 X-13
TC-X-14-E 解绑/重分配跨角色协 跨角色 P2 异常 已登录(默认 跨角色);相关前置数据就绪 1. 制造并发/重复/异常设备/越权对象操作 2. 观察处理 并发安全;重复操作幂等;异常设备二次验证;数据归档/导出脱敏合规 X-14
TC-X-15-E 注销/数据导出跨角色 跨角色 P2 异常 已登录(默认 跨角色);相关前置数据就绪 1. 制造并发/重复/异常设备/越权对象操作 2. 观察处理 并发安全;重复操作幂等;异常设备二次验证;数据归档/导出脱敏合规 X-15
TC-X-16-E 活动名额并发 E2E 跨角色 P1 异常 已登录(默认 跨角色);相关前置数据就绪 1. 制造支付失败/并发抢购/重复提交/库存或名额不足 2. 观察处理 支付失败回滚不生成额度/订单;并发超卖拦截;重复提交幂等;库存/名额边界正确 X-16
TC-X-17-E 多端登录会话互斥跨端 跨角色 P2 异常 已登录(默认 跨角色);相关前置数据就绪 1. 制造并发/重复/异常设备/越权对象操作 2. 观察处理 并发安全;重复操作幂等;异常设备二次验证;数据归档/导出脱敏合规 X-17
TC-X-18-E 推送跨端送达 跨角色 P2 异常 已登录(默认 跨角色);相关前置数据就绪 1. 输入非法格式/重复/越界值 2. 观察处理 字段格式校验拦截;重复去重;最小权限保底;保存失败不污染既有数据 X-18

权限流用例(派生自正常流)

TC 编号 环节 角色 优先级 类型 前置条件 测试步骤 预期结果 关联场景/用例
TC-X-01-P 报告上传解析 规划师 P1 权限 已绑定家庭+孩子 B;募极生物 PDF 1. 访问非绑定家庭的数据(报告/任务/方案/订单) 2. 对非指派预约 confirm/cancel 3. 观察 非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) T-3 / P-10
TC-X-02-P 报告审核入库 规划师 P1 权限 X-01 草稿 1. 访问非绑定家庭的数据(报告/任务/方案/订单) 2. 对非指派预约 confirm/cancel 3. 观察 非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) T-4
TC-X-03-P 方案生成 家长 P1 权限 孩子 B 有报告;已购会员 1. 以当前角色调用他人/非绑定家庭数据接口(报告/任务/方案/订单/能量) 2. 观察 非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 P-13
TC-X-04-P 方案批准+激活 规划师 P1 权限 X-03 方案 generated 1. 访问非绑定家庭的数据(报告/任务/方案/订单) 2. 对非指派预约 confirm/cancel 3. 观察 非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) T-6 / T-7
TC-X-05-P 任务打卡 孩子 P1 权限 X-04 已生成方案任务 1. 孩子端调用编辑/删除/切家长接口或拼家长路由 2. 观察拦截 孩子端无编辑/删除/切家长入口;直接调用被 role 校验拒绝(403/401),不越权操作家庭数据 C-7 / C-2
TC-X-06-P 任务审核 规划师 P1 权限 X-05 已提交 1. 访问非绑定家庭的数据(报告/任务/方案/订单) 2. 对非指派预约 confirm/cancel 3. 观察 非绑定家庭数据统一 403;confirm/cancel 增加归属校验,非指派调用被拒(高危越权修复) T-9 / P-06
TC-X-07-P 全局统计 运营 P1 权限 以上步骤已执行 1. 非 admin 角色访问管理端接口(统计/方案/报告解析/商品/勋章/供应商/活动/知识库) 2. 观察 非 admin 角色访问管理端接口统一 401/403,不泄露后台数据 A-02
TC-X-08-P 幂等与回滚(主链路健壮性) 多角色 P1 权限 X-04 已 active 方案 1. 以当前角色调用他人/非绑定家庭数据接口(报告/任务/方案/订单/能量) 2. 观察 非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 T-8 / P-09a / C-8
TC-X-09-P AI 方案送审闭环 多角色 P1 权限 家长已生成方案(generated) 1. 以当前角色调用他人/非绑定家庭数据接口(报告/任务/方案/订单/能量) 2. 观察 非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 P-44 / T-06 / T-07
TC-X-10-P 报告对比趋势闭环 多角色 P2 权限 同一孩子多次上传同类型报告 1. 以当前角色调用他人/非绑定家庭数据接口(报告/任务/方案/订单/能量) 2. 观察 非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 P-25 / T-21
TC-X-11-P 消息通知闭环 多角色 P1 权限 跨角色消息配置就绪 1. 以当前角色调用他人/非绑定家庭数据接口(报告/任务/方案/订单/能量) 2. 观察 非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 P-65 / T-19 / C-15
TC-X-12-P 会员权益闭环 多角色 P1 权限 家长未购会员 1. 以当前角色调用他人/非绑定家庭数据接口(报告/任务/方案/订单/能量) 2. 观察 非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 P-58 / P-16

本轮扩展权限流(派生自新增场景)

TC 编号 环节 角色 优先级 类型 前置条件 测试步骤 预期结果 关联场景/用例
TC-X-13-P 报告代传跨角色闭环 跨角色 P1 权限 已登录(默认 跨角色);相关前置数据就绪 1. 跨角色调用他人/非绑定家庭数据接口 2. 观察拦截 非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 X-13
TC-X-14-P 解绑/重分配跨角色协 跨角色 P1 权限 已登录(默认 跨角色);相关前置数据就绪 1. 跨角色调用他人/非绑定家庭数据接口 2. 观察拦截 非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 X-14
TC-X-15-P 注销/数据导出跨角色 跨角色 P1 权限 已登录(默认 跨角色);相关前置数据就绪 1. 跨角色调用他人/非绑定家庭数据接口 2. 观察拦截 非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 X-15
TC-X-16-P 活动名额并发 E2E 跨角色 P0 权限 已登录(默认 跨角色);相关前置数据就绪 1. 跨角色调用他人/非绑定家庭数据接口 2. 观察拦截 非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 X-16
TC-X-17-P 多端登录会话互斥跨端 跨角色 P1 权限 已登录(默认 跨角色);相关前置数据就绪 1. 跨角色调用他人/非绑定家庭数据接口 2. 观察拦截 非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 X-17
TC-X-18-P 推送跨端送达 跨角色 P1 权限 已登录(默认 跨角色);相关前置数据就绪 1. 跨角色调用他人/非绑定家庭数据接口 2. 观察拦截 非归属数据访问统一 403/401,不泄露他人数据;横向越权被拒 X-18

非功能测试用例(性能 / 兼容 / 安全)

非功能维度覆盖主链路并发/限流、跨角色越权与隔离、多端会话互斥、文件上传统一校验。(越权/上传拒绝/权限提升等见 e2e/api/nonfunc-security.spec.js;并发隔离 TC-X-N01、限流稳定性 TC-X-N02、多端 UA 兼容 TC-X-N07 见 e2e/api/nonfunc-perf-compat.spec.js;TC-X-N05、TC-X-N08 参见 security 规格)

TC 编号 环节 角色 优先级 类型 前置条件 测试步骤 预期结果 关联场景/用例
TC-X-N01 报告上传解析 跨角色 P0 性能 多家庭并发(≥10 家庭) 1. 并发执行 上传→解析 2. 观察结果 无串报告;解析队列不堵;单链路 P95 ≤ 40s X-01
TC-X-N02 方案生成 跨角色 P0 性能 多家庭同时生成方案 1. 并发 LangGraph 生成 2. 观察限流 触发 429 友好降级;不雪崩;恢复后继续 X-03
TC-X-N03 活动并发名额 跨角色 P0 性能 活动名额 100,瞬时 500 请求 1. 压测报名接口 2. 检查名额 不超卖;名额精准扣减;并发安全(对应真实超卖修复) X-15
TC-X-N04 任务打卡 跨角色 P1 性能 全平台打卡高峰 1. 模拟高峰打卡并发 幂等不重复计分;响应稳定 ≤ 1s X-05
TC-X-N05 主链路 跨角色 P0 安全 跨角色越权 1. 孩子 token 调家长/规划师接口 2. 家长调其他家庭 一律 401/403;数据隔离 X-01~X-06
TC-X-N06 数据导出 跨角色 P0 安全 导出授权 1. 用户 A 导出 2. 篡改 userId 导出 B 仅本人可导出;篡改 403;留痕 X-17
TC-X-N07 多端会话 跨角色 P1 兼容 iOS/Android/小程序/Web 同时在线 1. 多端登录同账号 2. 操作 会话互斥/同步正确;无状态错乱 X-18
TC-X-N08 主链路 跨角色 P0 安全 文件上传链路 1. 上传恶意/超大报告文件 2. 各端入口 全端统一校验拒绝;不执行 X-01