|
|
|
|
@ -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)中交互正确
|
|
|
|
|
|
|
|
|
|
**测试结论: 采集服务功能完整,质量达标,可进入集成阶段。**
|
|
|
|
|
**测试结论: 后端采集服务 + 前端管理后台功能完整,质量达标,可进入集成阶段。**
|
|
|
|
|
|