Files
gym-manage/docs/superpowers/specs/2026-04-07-e2e-test-simplification-design.md

6.3 KiB
Raw Permalink Blame History

E2E测试精简设计文档

版本: 1.0
日期: 2026-04-07
作者: 张翔
状态: 待审查


1. 背景与目标

1.1 当前问题

当前E2E测试套件存在以下问题:

  • 测试文件过多38个测试文件,维护成本高
  • 运行时间长:预计完整运行需要20分钟
  • 测试稳定性差:存在flaky测试,影响CI/CD效率
  • 测试重复:多个测试文件覆盖相同功能

1.2 优化目标

  • 减少测试文件数量至5个(减少87%
  • 缩短测试运行时间至5分钟以内(减少75%)
  • 提升测试稳定性和可维护性
  • 保留关键业务流程验证

2. 测试架构设计

2.1 分层测试策略

采用分层测试策略,将E2E测试分为两层:

层级 测试类型 文件数 运行时间 覆盖范围
L1 冒烟测试 1 ~30秒 登录/登出基础流程
L2 核心旅程 4 ~4分钟 关键业务端到端流程

2.2 目录结构

e2e/
├── journeys/                              # 核心用户旅程(保留)
│   ├── admin-complete-workflow.spec.ts   # 管理员完整工作流
│   ├── user-permission-boundary.spec.ts  # 用户权限边界验证
│   ├── file-management-workflow.spec.ts  # 文件上传下载流程
│   └── audit-workflow.spec.ts            # 审计日志查看流程
├── smoke/                                 # 冒烟测试(新增)
│   └── login-logout.spec.ts              # 登录登出基础流程
├── fixtures/                              # 测试数据(保留)
├── helpers/                               # 测试辅助工具(保留)
├── pages/                                 # Page Object(保留)
└── utils/                                 # 工具函数(保留)

3. 核心测试用例设计

3.1 冒烟测试(smoke/login-logout.spec.ts

测试目标: 验证基础登录登出流程

测试用例:

  • 管理员登录和登出

预期运行时间: ~30秒

3.2 核心旅程测试

3.2.1 管理员完整工作流(admin-complete-workflow.spec.ts

测试目标: 验证管理员的核心操作流程

测试用例:

  • 创建角色并分配权限
  • 创建用户并分配角色
  • 编辑用户信息
  • 删除用户
  • 删除角色

预期运行时间: ~2分钟

3.2.2 用户权限边界验证(user-permission-boundary.spec.ts

测试目标: 验证权限控制是否正确

测试用例:

  • 普通用户不能访问用户管理页面
  • 普通用户不能访问角色管理页面
  • 管理员可以访问所有页面

预期运行时间: ~1分钟

3.2.3 文件管理流程(file-management-workflow.spec.ts

测试目标: 验证文件上传下载流程

测试用例:

  • 上传文件
  • 下载文件
  • 删除文件

预期运行时间: ~1分钟

3.2.4 审计日志流程(audit-workflow.spec.ts

测试目标: 验证审计日志查看功能

测试用例:

  • 查看操作日志
  • 查看登录日志
  • 查看异常日志

预期运行时间: ~30秒


4. 实施计划

4.1 实施步骤

  1. 创建新目录结构

    • 创建 e2e/smoke/ 目录
  2. 创建冒烟测试

    • 新建 e2e/smoke/login-logout.spec.ts
  3. 删除非核心测试文件

    • 删除34个非核心测试文件
    • 只保留 journeys/ 目录下的4个核心测试文件

4.2 测试配置更新

package.json 脚本更新:

{
  "scripts": {
    "test:e2e:smoke": "playwright test smoke/",
    "test:e2e:journeys": "playwright test journeys/",
    "test:e2e": "playwright test"
  }
}

4.3 CI/CD集成

  • PR验证:运行 npm run test:e2e~5分钟)
  • 发布前验证:运行所有测试

5. 预期收益

指标 优化前 优化后 改善幅度
测试文件数量 38个 5个 ↓ 87%
预计运行时间 ~20分钟 ~5分钟 ↓ 75%
维护成本 ↓ 80%
测试稳定性 ↑ 显著提升

6. 风险控制

6.1 功能覆盖风险

风险: 删除测试后功能覆盖下降

缓解措施:

  • 通过单元测试和集成测试补充覆盖率
  • 单元测试覆盖率目标:80%

6.2 回归测试风险

风险: 可能遗漏部分边界情况

缓解措施:

  • 核心旅程测试覆盖关键路径
  • 定期人工回归测试

6.3 团队适应风险

风险: 团队需要适应新的测试策略

缓解措施:

  • 更新测试文档
  • 培训团队成员

7. 后续优化建议

  1. 补充单元测试

    • 为核心业务逻辑补充单元测试
    • 覆盖率目标:80%
  2. 补充集成测试

    • 为API接口补充集成测试
    • 覆盖所有REST API端点
  3. 持续优化

    • 定期评估测试效果
    • 持续优化测试用例

8. 待删除测试文件清单

以下34个测试文件将被删除:

  1. auth.spec.ts
  2. basic.spec.ts
  3. complete-workflow.spec.ts
  4. comprehensive-e2e.spec.ts
  5. critical-e2e.spec.ts
  6. dashboard-operation-log.spec.ts
  7. dictionary-management.spec.ts
  8. edge-cases.spec.ts
  9. exception-log.spec.ts
  10. file-management.spec.ts
  11. form-test.spec.ts
  12. login-log.spec.ts
  13. menu-management.spec.ts
  14. notification.spec.ts
  15. operation-log.spec.ts
  16. permission-validation.spec.ts
  17. role-management.spec.ts
  18. security-e2e.spec.ts
  19. system-config.spec.ts
  20. system-integration-test.spec.ts
  21. test-config-api.spec.ts
  22. test-stability.spec.ts
  23. uat-file-workflow.spec.ts
  24. uat-permission-workflow.spec.ts
  25. uat-user-lifecycle.spec.ts
  26. user-lifecycle.spec.ts
  27. user-management.spec.ts
  28. role-based-tests/scenarios/authentication/login-flow.spec.ts
  29. role-based-tests/scenarios/authentication/logout-flow.spec.ts
  30. role-based-tests/scenarios/user-management/admin-creates-user.spec.ts
  31. role-based-tests/scenarios/user-management/permission-boundary.spec.ts
  32. journeys/system-config-workflow.spec.ts
  33. journeys/permission-boundary.spec.ts(与user-permission-boundary.spec.ts重复)

9. 审查记录

日期 审查人 状态 备注
2026-04-07 张翔 待审查 初始版本