6.3 KiB
6.3 KiB
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 实施步骤
-
创建新目录结构
- 创建
e2e/smoke/目录
- 创建
-
创建冒烟测试
- 新建
e2e/smoke/login-logout.spec.ts
- 新建
-
删除非核心测试文件
- 删除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. 后续优化建议
-
补充单元测试
- 为核心业务逻辑补充单元测试
- 覆盖率目标:80%
-
补充集成测试
- 为API接口补充集成测试
- 覆盖所有REST API端点
-
持续优化
- 定期评估测试效果
- 持续优化测试用例
8. 待删除测试文件清单
以下34个测试文件将被删除:
- auth.spec.ts
- basic.spec.ts
- complete-workflow.spec.ts
- comprehensive-e2e.spec.ts
- critical-e2e.spec.ts
- dashboard-operation-log.spec.ts
- dictionary-management.spec.ts
- edge-cases.spec.ts
- exception-log.spec.ts
- file-management.spec.ts
- form-test.spec.ts
- login-log.spec.ts
- menu-management.spec.ts
- notification.spec.ts
- operation-log.spec.ts
- permission-validation.spec.ts
- role-management.spec.ts
- security-e2e.spec.ts
- system-config.spec.ts
- system-integration-test.spec.ts
- test-config-api.spec.ts
- test-stability.spec.ts
- uat-file-workflow.spec.ts
- uat-permission-workflow.spec.ts
- uat-user-lifecycle.spec.ts
- user-lifecycle.spec.ts
- user-management.spec.ts
- role-based-tests/scenarios/authentication/login-flow.spec.ts
- role-based-tests/scenarios/authentication/logout-flow.spec.ts
- role-based-tests/scenarios/user-management/admin-creates-user.spec.ts
- role-based-tests/scenarios/user-management/permission-boundary.spec.ts
- journeys/system-config-workflow.spec.ts
- journeys/permission-boundary.spec.ts(与user-permission-boundary.spec.ts重复)
9. 审查记录
| 日期 | 审查人 | 状态 | 备注 |
|---|---|---|---|
| 2026-04-07 | 张翔 | 待审查 | 初始版本 |