# 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 脚本更新:** ```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 | 张翔 | 待审查 | 初始版本 |