ether-docs/_archive/06-TESTING/spec.md

223 lines
7.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# E2E测试执行规范
## 1. 概述
### 1.1 目标
执行Ether智慧物业管理平台全部E2E测试用例记录问题、解决方案和复测结果。
### 1.2 范围
- 管理端Web测试
- API接口测试
- 边界条件测试
- 并发操作测试
- 业务规则测试
- 权限边界测试
### 1.3 环境
- 后端服务: Gateway(8080), Auth(8081), MDM(8082), OPS(8083), Finance(8085)
- 前端服务: http://localhost:5175
- 数据库: PostgreSQL (ether_mdm, ether_auth, ether_ops, ether_finance)
- 测试框架: Playwright
---
## 2. 测试执行流程
### 2.1 前置条件检查
| 检查项 | 命令 | 预期结果 |
|--------|------|----------|
| PostgreSQL运行 | `pg_isready -h localhost` | accepting connections |
| RabbitMQ运行 | `curl localhost:15672/api/overview` | 200 OK |
| Nacos运行 | `curl localhost:8848/nacos/v1/console/health/readiness` | UP |
| 后端服务运行 | `curl localhost:8080/actuator/health` | {"status":"UP"} |
| 前端服务运行 | `curl localhost:5175` | 200 OK |
### 2.2 测试数据准备
```sql
-- 执行测试数据准备脚本
\i docs/08-DATABASE/e2e-test-data.sql
```
### 2.3 测试执行顺序
1. **第一阶段**: 基础功能测试(登录、用户、角色、项目)
2. **第二阶段**: 业务模块测试(工单、空间节点、业主、设备)
3. **第三阶段**: 边界条件测试输入验证、SQL注入
4. **第四阶段**: 并发操作测试(多人同时操作)
5. **第五阶段**: 业务规则测试(状态流转、权限控制)
6. **第六阶段**: 权限边界测试菜单、按钮、API权限
---
## 3. 问题记录模板
### 3.1 问题记录格式
```markdown
## 问题 #N: [问题标题]
### 基本信息
- **发现时间**: YYYY-MM-DD HH:mm:ss
- **测试用例**: TC-XXX-XXX
- **测试文件**: tests/xxx.spec.ts
- **严重程度**: P0(阻塞)/P1(严重)/P2(一般)/P3(轻微)
### 问题描述
[详细描述问题现象]
### 问题原因
[分析问题根本原因]
### 影响范围
- [ ] 单一模块
- [ ] 多个模块
- [ ] 全系统
### 解决方案
[详细描述解决方案]
### 修复文件
- [文件路径1]: [修改内容]
- [文件路径2]: [修改内容]
### 复测结果
- **复测时间**: YYYY-MM-DD HH:mm:ss
- **复测状态**: ✅ 通过 / ❌ 失败
- **复测说明**: [说明]
### 同类问题检查
- [ ] 已检查其他模块是否存在类似问题
- [ ] 已更新相关测试用例
- [ ] 已添加预防措施
```
---
## 4. 测试用例清单
### 4.1 基础功能测试 (49个)
| 编号 | 测试用例 | 文件 | 优先级 |
|------|----------|------|--------|
| TC-001 | 登录页面正确显示 | e2e/login.spec.ts | P0 |
| TC-002 | 超级管理员登录成功 | e2e/login.spec.ts | P0 |
| TC-003 | 错误密码登录失败 | e2e/login.spec.ts | P0 |
| TC-004~010 | API健康检查 | e2e/login.spec.ts | P0 |
| TC-USER-001~023 | 用户管理测试 | tests/user.spec.ts | P1 |
| TC-ROLE-001~014 | 角色管理测试 | tests/role.spec.ts | P1 |
| TC-PROJ-001~023 | 项目管理测试 | tests/project.spec.ts | P1 |
### 4.2 业务模块测试 (40个)
| 编号 | 测试用例 | 文件 | 优先级 |
|------|----------|------|--------|
| TC-ADMIN-WORK-001~010 | 工单管理测试 | e2e/work-order.spec.ts | P1 |
| TC-MDM-SPACE-001~010 | 空间节点测试 | tests/mdm/space-node.spec.ts | P1 |
| TC-MDM-OWNER-001~005 | 业主管理测试 | tests/mdm/space-node.spec.ts | P1 |
| TC-MDM-CONTRACT-001~005 | 合同管理测试 | tests/mdm/space-node.spec.ts | P1 |
| TC-MDM-VISITOR-001~005 | 访客管理测试 | tests/mdm/space-node.spec.ts | P1 |
| TC-OPS-INSP-001~006 | 巡检管理测试 | tests/ops/inspection.spec.ts | P1 |
| TC-OPS-ANN-001~004 | 公告管理测试 | tests/ops/inspection.spec.ts | P1 |
| TC-OPS-COMP-001~005 | 投诉建议测试 | tests/ops/inspection.spec.ts | P1 |
### 4.3 边界条件测试 (15个)
| 编号 | 测试用例 | 文件 | 优先级 |
|------|----------|------|--------|
| TC-BOUND-U001~U010 | 用户管理边界测试 | tests/boundary/input-boundary.spec.ts | P1 |
| TC-BOUND-W001~W004 | 工单管理边界测试 | tests/boundary/input-boundary.spec.ts | P1 |
| TC-BOUND-F001~F003 | 财务计费边界测试 | tests/boundary/input-boundary.spec.ts | P1 |
| TC-BOUND-G001~G002 | 通用边界测试 | tests/boundary/input-boundary.spec.ts | P0 |
### 4.4 并发操作测试 (7个)
| 编号 | 测试用例 | 文件 | 优先级 |
|------|----------|------|--------|
| TC-CONC-001 | 多人同时接单测试 | tests/concurrency/concurrency.spec.ts | P1 |
| TC-CONC-002 | 并发创建工单测试 | tests/concurrency/concurrency.spec.ts | P1 |
| TC-CONC-003 | 并发修改同一工单测试 | tests/concurrency/concurrency.spec.ts | P1 |
| TC-CONC-004 | 并发登录同一账号测试 | tests/concurrency/concurrency.spec.ts | P1 |
| TC-CONC-005 | 并发创建用户测试 | tests/concurrency/concurrency.spec.ts | P1 |
| TC-CONC-006 | 并发创建空间节点测试 | tests/concurrency/concurrency.spec.ts | P1 |
| TC-CONC-007 | 并发创建收费项目测试 | tests/concurrency/concurrency.spec.ts | P1 |
### 4.5 业务规则测试 (10个)
| 编号 | 测试用例 | 文件 | 优先级 |
|------|----------|------|--------|
| TC-RULE-W001~W002 | 工单状态规则测试 | tests/business-rules/business-rules.spec.ts | P1 |
| TC-RULE-U001~U003 | 用户规则测试 | tests/business-rules/business-rules.spec.ts | P1 |
| TC-RULE-F001~F003 | 财务规则测试 | tests/business-rules/business-rules.spec.ts | P1 |
| TC-RULE-S001 | 空间节点规则测试 | tests/business-rules/business-rules.spec.ts | P1 |
| TC-RULE-E001 | 设备规则测试 | tests/business-rules/business-rules.spec.ts | P1 |
### 4.6 权限边界测试 (27个)
| 编号 | 测试用例 | 文件 | 优先级 |
|------|----------|------|--------|
| TC-PERM-001~002 | 菜单权限测试 | tests/permission/permission-boundary.spec.ts | P1 |
| TC-PERM-003~005 | 按钮权限测试 | tests/permission/permission-boundary.spec.ts | P1 |
| TC-PERM-006~008 | API权限测试 | tests/permission/permission-boundary.spec.ts | P1 |
| TC-PERM-009~011 | 数据权限测试 | tests/permission/permission-boundary.spec.ts | P1 |
| TC-PERM-012~013 | 角色权限测试 | tests/permission/permission-boundary.spec.ts | P1 |
| TC-PERM-014~015 | Token权限测试 | tests/permission/permission-boundary.spec.ts | P0 |
---
## 5. 验收标准
### 5.1 测试通过标准
| 指标 | 目标值 | 说明 |
|------|--------|------|
| 测试通过率 | ≥ 95% | 通过用例数/总用例数 |
| P0用例通过率 | 100% | 阻塞问题必须全部解决 |
| P1用例通过率 | ≥ 95% | 严重问题允许少量延期 |
| 无跳过用例 | 100% | 所有用例必须执行 |
### 5.2 问题分级标准
| 级别 | 定义 | 处理时限 |
|------|------|----------|
| P0 | 阻塞测试执行,系统无法运行 | 立即修复 |
| P1 | 核心功能异常,影响业务流程 | 24小时内 |
| P2 | 一般功能异常,有替代方案 | 3天内 |
| P3 | 轻微问题,不影响使用 | 下版本 |
---
## 6. 风险与应对
### 6.1 已知风险
| 风险 | 影响 | 应对措施 |
|------|------|----------|
| 服务启动超时 | 测试无法执行 | 增加等待时间,检查日志 |
| 测试数据冲突 | 测试结果不准确 | 使用唯一标识,清理数据 |
| 并发测试不稳定 | 结果不可预测 | 多次运行取稳定结果 |
### 6.2 回归测试触发条件
- 修复任何P0/P1问题后
- 修改API接口后
- 修改权限配置后
- 修改数据库结构后
---
## 7. 输出物
### 7.1 测试报告
- 测试执行报告 (test-report.md)
- 问题清单 (issues.md)
- 测试覆盖率报告 (coverage-report.md)
### 7.2 修复记录
- 代码修改记录
- 配置修改记录
- 数据修改记录