更新测试报告:加入16个Playwright浏览器UI测试结果(116个测试全部通过)

main
haoliang 5 days ago
parent 5f47164532
commit 0e932b4fad

@ -1,8 +1,8 @@
# CNC机床数据采集系统 - 测试报告
> **报告日期**: 2026-05-01
> **测试版本**: c983c4a
> **测试环境**: Windows 11, MariaDB 11.8, .NET Framework 4.7.2, Node.js 25.9
> **测试版本**: 5f47164
> **测试环境**: Windows 11, MariaDB 11.8, .NET Framework 4.7.2, Node.js 25.9, Chromium 147
---
@ -11,8 +11,9 @@
| 测试类型 | 用例数 | 通过 | 失败 | 跳过 | 耗时 |
|----------|--------|------|------|------|------|
| 单元测试 (xUnit) | 79 | 79 | 0 | 0 | 1m 13s |
| E2E端到端测试 (Playwright) | 21 | 21 | 0 | 0 | 2m 48s |
| **合计** | **100** | **100** | **0** | **0** | **4m 01s** |
| E2E端到端测试 - 采集服务 (Playwright API) | 21 | 21 | 0 | 0 | 2m 48s |
| E2E端到端测试 - 管理后台UI (Playwright 浏览器) | 16 | 16 | 0 | 0 | 55.6s |
| **合计** | **116** | **116** | **0** | **0** | **4m 57s** |
**通过率: 100%**
@ -63,9 +64,7 @@
├── CncSimulator (localhost:9001网关 → 动态端口模拟)
├── CncCollector (localhost:5800 管理API + 工作线程)
└── MariaDB (cnc_business + cnc_log 双库)
```
### 3.2 套件1: 管理API控制测试7个
``` 套件1: 管理API控制测试7个
| # | 测试用例 | 验证点 | 耗时 | 结果 |
|---|---------|--------|------|------|
@ -157,12 +156,87 @@
---
## 六、结论
## 七、Playwright 管理后台UI测试详情16个
### 7.1 测试架构
```
测试脚本 (frontend/e2e/admin-ui.spec.ts)
└── @playwright/test + Chromium浏览器真实渲染
被测系统:
├── Vite Dev Server (localhost:5173, Mock模式)
├── Vue3 + Element Plus (前端框架)
└── 自定义Vite Mock Plugin (拦截/mock-api/*请求,返回模拟数据)
```
### 7.2 测试策略
- **浏览器**: Chromium 147 (headless模式)
- **数据隔离**: 每个测试前调用`POST /mock-api/test/reset-*`重置Mock数据
- **认证绕过**: `addInitScript`预设localStorage token避免路由守卫拦截
- **操作验证**: 勾选checkbox→点击按钮→确认弹窗→验证ElMessage提示→验证表格行数/状态标签变化
### 7.3 套件1: 设备管理页面6个
| # | 测试用例 | 验证点 | 耗时 | 结果 |
|---|---------|--------|------|------|
| 1 | 页面加载 - 表格显示5台机床 | el-table渲染5行 + 5个checkbox | 2.6s | ✅ |
| 2 | 勾选行后 - 批量操作按钮显示 | 未勾选时按钮隐藏,勾选后"批量删除(1)"等按钮出现 | 2.5s | ✅ |
| 3 | 批量删除 - 勾选2行后删除 | 勾选2行→点击批量删除→确认弹窗→"批量删除成功"→行数5→3 | 4.2s | ✅ |
| 4 | 批量停用 - 勾选已启用行 | 勾选第1行→点击批量停用→确认→"操作成功"→状态标签变为"停用" | 4.1s | ✅ |
| 5 | 批量启用 - 勾选已停用行 | 勾选第4行(isEnabled=0)→点击批量启用→确认→状态标签变为"启用" | 4.2s | ✅ |
| 6 | 单个删除 - 行内删除按钮 | 点击第1行"删除"→确认→"已删除"→行数5→4 | 4.0s | ✅ |
### 7.4 套件2: 员工管理页面5个
| # | 测试用例 | 验证点 | 耗时 | 结果 |
|---|---------|--------|------|------|
| 7 | 页面加载 - 表格显示3名员工 | el-table渲染3行 | 2.2s | ✅ |
| 8 | 勾选行后 - 批量操作按钮显示 | 勾选后"批量启用/停用/删除"按钮出现 | 2.3s | ✅ |
| 9 | 批量删除 - 勾选1行后删除 | 勾选第3行(王五,machineCount=0)→确认→行数3→2 | 3.9s | ✅ |
| 10 | 批量停用 - 勾选已启用员工 | 勾选张三→确认→状态标签变为"停用" | 3.9s | ✅ |
| 11 | 批量启用 - 勾选已停用员工 | 勾选王五(isEnabled=0)→确认→状态标签变为"启用" | 3.9s | ✅ |
### 7.5 套件3: 采集地址页面5个
| # | 测试用例 | 验证点 | 耗时 | 结果 |
|---|---------|--------|------|------|
| 12 | 页面加载 - 表格显示3条采集地址 | el-table渲染3行 | 2.1s | ✅ |
| 13 | 勾选行后 - 批量操作按钮显示 | 勾选后"批量启用/停用/删除"按钮出现 | 2.2s | ✅ |
| 14 | 批量删除 - 勾选1行后删除 | 勾选第3行(SIEMENS-C栋,machineCount=0)→确认→行数3→2 | 4.0s | ✅ |
| 15 | 批量停用 - 勾选已启用地址 | 勾选FANUC-A栋→确认→状态标签变为"停用" | 3.9s | ✅ |
| 16 | 批量启用 - 勾选已停用地址 | 勾选SIEMENS-C栋(isEnabled=0)→确认→状态标签变为"启用" | 3.8s | ✅ |
### 7.6 Mock API补充为支持UI测试
| Mock文件 | 新增端点 | 说明 |
|----------|---------|------|
| machine.ts | POST /mock-api/admin/machine/batch-delete | 批量删除机床(从内存数组移除) |
| machine.ts | PUT /mock-api/admin/machine/:id/toggle | 切换启用/停用状态 |
| machine.ts | DELETE /mock-api/admin/machine/:id | 单个删除机床 |
| machine.ts | PUT /mock-api/admin/machine/:id | 编辑更新机床 |
| machine.ts | POST /mock-api/test/reset-machines | 重置mock数据为初始状态 |
| worker.ts | POST /mock-api/admin/worker/batch-delete | 批量删除员工 |
| worker.ts | PUT /mock-api/admin/worker/:id/toggle | 切换启用/停用状态 |
| worker.ts | DELETE /mock-api/admin/worker/:id | 单个删除员工 |
| worker.ts | PUT /mock-api/admin/worker/:id | 编辑更新员工 |
| worker.ts | POST /mock-api/test/reset-workers | 重置mock数据 |
| collect-address.ts | POST /mock-api/admin/collect-address/batch-delete | 批量删除采集地址 |
| collect-address.ts | PUT /mock-api/admin/collect-address/:id/toggle | 切换启用/停用状态 |
| collect-address.ts | DELETE /mock-api/admin/collect-address/:id | 单个删除采集地址 |
| collect-address.ts | PUT /mock-api/admin/collect-address/:id | 编辑更新采集地址 |
| collect-address.ts | POST /mock-api/test/reset-addresses | 重置mock数据 |
---
## 八、结论
1. **100个测试全部通过**,覆盖采集服务的全部核心功能
1. **116个测试全部通过**,覆盖后端采集服务 + 前端管理后台全部核心功能
2. 数据全链路验证通过:模拟器 → HTTP采集 → JSON解析 → 字段映射 → 7张数据库表
3. 产量分段跟踪逻辑正确:程序切换结账、手动清零结账、服务停止结账
4. 异常处理健壮:模拟器不可达时不崩溃,恢复后自动继续采集
5. 心跳上报正常running/stopped状态正确切换
6. **管理后台UI验证通过**:批量删除、批量启用/停用在真实浏览器Chromium中交互正确
**测试结论: 采集服务功能完整,质量达标,可进入集成阶段。**
**测试结论: 后端采集服务 + 前端管理后台功能完整,质量达标,可进入集成阶段。**

Loading…
Cancel
Save