115 lines
6.9 KiB
Markdown
115 lines
6.9 KiB
Markdown
|
|
# OPS 第 1 阶段测试计划
|
|||
|
|
|
|||
|
|
## 1. 文档目标
|
|||
|
|
|
|||
|
|
本文定义 OPS 第 1 阶段后端、前端和端到端测试范围。当前仓库尚未初始化 `server/`、`web/`,本文先作为编码前测试规格,后续实现必须按本文补齐测试。
|
|||
|
|
|
|||
|
|
## 2. 测试分层
|
|||
|
|
|
|||
|
|
| 层级 | 目标 | 工具建议 | 数据要求 |
|
|||
|
|
| --- | --- | --- | --- |
|
|||
|
|
| 后端单元测试 | 验证状态机、规则匹配、错误救援、权限判断 | Go `testing` | 不访问外部服务 |
|
|||
|
|
| 后端接口测试 | 验证 REST API、统一响应、鉴权、审计 | Go `httptest` | SQLite 内存库或任务指定测试库 |
|
|||
|
|
| 后端集成测试 | 验证 PostgreSQL 事务语义、时序库适配、通知适配 | Go 测试套件 | 真实 SQLite 内存库或真实测试服务,不 mock 数据库 |
|
|||
|
|
| 前端类型检查 | 验证 TypeScript、API 类型和状态分支 | `pnpm type:check` | 不依赖真实后端 |
|
|||
|
|
| 前端组件/页面测试 | 验证 loading、empty、error、success、partial、forbidden 状态 | 项目模板现有测试工具 | 可使用固定响应夹具 |
|
|||
|
|
| 端到端测试 | 验证资源到告警、通知、工单、报表闭环 | Playwright 或等价工具 | 连接真实后端 API |
|
|||
|
|
|
|||
|
|
开发期 mock 只能用于前端独立调试。联调、验收和端到端测试必须连接真实后端 API。
|
|||
|
|
|
|||
|
|
## 3. 后端测试矩阵
|
|||
|
|
|
|||
|
|
| 能力域 | 必测场景 | 测试类型 | 通过标准 |
|
|||
|
|
| --- | --- | --- | --- |
|
|||
|
|
| 统一响应 | 成功、业务错误、权限错误、系统错误 | 接口测试 | 响应包含 `code`、`message`、`traceId`,错误含建议动作。 |
|
|||
|
|
| 资源模型 | 创建、编辑、停用、退役、非法状态恢复 | 单元 + 接口 | 状态机合法,非法流转拒绝并写审计。 |
|
|||
|
|
| 采集任务 | 成功、部分成功、超时、凭据错误、连续失败 | 单元 + 集成 | 失败原因可见,连续失败生成内部事件。 |
|
|||
|
|
| 时序适配 | 批量写入、范围查询、聚合、降采样、保留策略 | 集成 | 可按 `resource_id + metric_code + 时间范围` 查询。 |
|
|||
|
|
| Trap/Syslog | 解析成功、未解析、补规则重放、屏蔽策略 | 接口 + 集成 | 未解析事件保留原文,重放后状态正确。 |
|
|||
|
|
| 告警规则 | 阈值触发、恢复、去重、压缩、抑制、升级 | 单元 + 接口 | 告警状态机合法,策略命中可追踪。 |
|
|||
|
|
| 通知 | 站内消息、短信、邮件成功和失败 | 集成 | 通知失败不阻塞告警和工单,记录失败原因。 |
|
|||
|
|
| 工单 | 创建、接单、转交、挂起、重启、关闭、并发关闭 | 单元 + 接口 | 非法流转拒绝,并发冲突返回当前状态。 |
|
|||
|
|
| 权限 | 功能权限、数据权限、越权访问 | 接口 | 越权返回 forbidden,不泄露敏感数据。 |
|
|||
|
|
| 报表 | 空范围、大范围、导出、无权限 | 接口 + 集成 | 大范围查询受控,导出写审计。 |
|
|||
|
|
|
|||
|
|
## 4. 前端测试矩阵
|
|||
|
|
|
|||
|
|
| 页面 | 状态覆盖 | 必测动作 |
|
|||
|
|
| --- | --- | --- |
|
|||
|
|
| 首页总览 | loading、empty、error、success、partial、forbidden、stale | 模块配置保存、局部组件失败、无权限模块隐藏。 |
|
|||
|
|
| 综合监控 | loading、empty、error、success、partial、forbidden、stale | 资源筛选、查看详情、采集失败提示、手动刷新。 |
|
|||
|
|
| 告警中心 | loading、empty、error、success、partial、forbidden、operating、operation_failed | 确认、忽略、派单、筛选、导出、查看通知记录。 |
|
|||
|
|
| 策略与模板 | empty、error、success、forbidden、operation_failed | 创建规则、字段校验、禁用策略、模板变量校验。 |
|
|||
|
|
| 通知中心 | loading、empty、error、success、partial、operation_failed | 查看三类渠道记录、失败重发。 |
|
|||
|
|
| 工单管理 | loading、empty、error、success、partial、forbidden、operation_failed | 接单、转交、挂起、重启、关闭、并发冲突提示。 |
|
|||
|
|
| 报表管理 | loading、empty、error、success、partial、forbidden、stale | 生成、导出、空范围、大范围失败提示。 |
|
|||
|
|
| 可视化大屏 | loading、empty、error、success、partial、forbidden、stale | 轮播配置、组件局部失败、刷新时间展示。 |
|
|||
|
|
| 权限管理 | empty、error、success、forbidden、operation_failed | 角色授权、数据权限、越权验证。 |
|
|||
|
|
|
|||
|
|
## 5. 端到端验收测试
|
|||
|
|
|
|||
|
|
### 5.1 主闭环脚本
|
|||
|
|
|
|||
|
|
1. 创建或导入主机、H3C/华三网络设备、数据库、URL/API 样例资源。
|
|||
|
|
2. 配置采集任务和指标阈值。
|
|||
|
|
3. 写入或触发一条可控异常。
|
|||
|
|
4. 在原始事件池查看接收、解析、规则命中记录。
|
|||
|
|
5. 在告警中心确认告警生成、去重、级别和业务上下文。
|
|||
|
|
6. 验证站内消息、短信、邮件三类通知记录。
|
|||
|
|
7. 对告警执行确认并派单。
|
|||
|
|
8. 工单完成接单、处理、关闭。
|
|||
|
|
9. 回到告警详情查看关联工单、处理记录和审计日志。
|
|||
|
|
10. 在首页、大屏、报表查看该故障的统计证据。
|
|||
|
|
|
|||
|
|
### 5.2 失败救援脚本
|
|||
|
|
|
|||
|
|
| 脚本 | 操作 | 通过标准 |
|
|||
|
|
| --- | --- | --- |
|
|||
|
|
| 采集失败 | 使用错误凭据触发采集 | 资源详情显示失败原因,写 `collector_runs` 和审计。 |
|
|||
|
|
| 未解析 Trap | 投递未知 OID 样例 | `raw_events` 状态为 `unparsed`,补规则后可重放。 |
|
|||
|
|
| 通知失败 | 配置不可用短信或邮件测试通道 | 告警可继续处理,通知记录失败,可重试。 |
|
|||
|
|
| 自动派单失败 | 创建无匹配处理人的派单规则 | 告警停留待分派,不创建重复工单。 |
|
|||
|
|
| 权限拒绝 | 普通账号尝试关闭无权工单 | 返回 forbidden,页面不乐观更新。 |
|
|||
|
|
|
|||
|
|
## 6. 本地验证命令
|
|||
|
|
|
|||
|
|
后端初始化后至少运行:
|
|||
|
|
|
|||
|
|
```powershell
|
|||
|
|
Set-Location .\server
|
|||
|
|
go test ./...
|
|||
|
|
go vet ./...
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
前端初始化后至少运行:
|
|||
|
|
|
|||
|
|
```powershell
|
|||
|
|
Set-Location .\web
|
|||
|
|
pnpm type:check
|
|||
|
|
pnpm lint
|
|||
|
|
pnpm build
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
如果因为私有依赖、网络、凭据或环境限制无法运行,需要在交付说明中记录原因、影响范围和替代验证证据。
|
|||
|
|
|
|||
|
|
## 7. 测试数据要求
|
|||
|
|
|
|||
|
|
| 数据 | 最小要求 |
|
|||
|
|
| --- | --- |
|
|||
|
|
| 资源 | 主机、H3C/华三网络设备、数据库、虚拟化、URL/API 各至少 1 类样例。 |
|
|||
|
|
| 指标 | CPU、内存、磁盘、接口状态、接口流量、URL 可用性、响应时间。 |
|
|||
|
|
| Trap/Syslog | 至少 1 条可解析样例、1 条未解析样例、1 条恢复样例。 |
|
|||
|
|
| 告警 | 不同级别至少 3 条,覆盖触发、确认、忽略、恢复、派单。 |
|
|||
|
|
| 通知 | 站内消息、短信、邮件成功和失败各至少 1 条记录。 |
|
|||
|
|
| 工单 | 创建、接单、转交、挂起、重启、关闭全路径样例。 |
|
|||
|
|
| 权限 | 管理员、值班人员、普通只读用户各 1 个。 |
|
|||
|
|
|
|||
|
|
## 8. 质量门禁
|
|||
|
|
|
|||
|
|
- 后端核心状态机和规则逻辑必须有单元测试。
|
|||
|
|
- 所有核心接口必须覆盖成功、失败、无权限、非法状态。
|
|||
|
|
- 前端核心页面必须覆盖 `docs/首期UI状态覆盖.md` 中列出的状态。
|
|||
|
|
- 端到端测试必须能证明主闭环,不得只校验静态页面存在。
|
|||
|
|
- 测试不能使用 mock 数据库替代真实数据库行为。
|
|||
|
|
|