# 氧化测试仪器控制系统测试指南

## 测试环境准备

### 硬件要求
1. ESP32开发板
2. DWIN触摸屏
3. 温度传感器 × 4
4. 流量计 × 12
5. RS485转换器
6. 4G模块
7. 电源系统

### 软件要求
1. MicroPython环境
2. 串口调试工具
3. MQTT客户端工具
4. Modbus调试工具

## 功能测试清单

### 1. 基础功能测试

#### 1.1 系统启动
```python
# 验证步骤
1. 上电自检
2. 显示屏初始化
3. 网络连接
4. 传感器检测

# 预期结果
- 所有LED指示灯正常
- 显示屏显示主界面
- 4G网络连接成功
- 系统进入待机状态
```

#### 1.2 温度控制
```python
# 测试步骤
1. 设置目标温度（如80.0℃）
2. 启动加热
3. 监控温度变化
4. 记录稳定时间

# 验收标准
- 升温速度：≤ 5℃/分钟
- 温度精度：±0.1℃
- 稳定时间：≤ 5分钟
```

#### 1.3 流量控制
```python
# 测试步骤
1. 分别设置12路流量
2. 监控流量稳定性
3. 验证流量精度
4. 测试流量联动

# 验收标准
- 流量精度：±1%
- 响应时间：≤ 2秒
- 无串扰现象
```

### 2. 通信测试

#### 2.1 Modbus通信
```python
from modbus import modbus_host

# 测试代码
def test_modbus():
    modbus = modbus_host(port=2, baudrate=9600)
    
    # 读取测试
    values = modbus.H03_read_hold_register(1, 0, 4)
    print(f"Read values: {values}")
    
    # 写入测试
    status = modbus.H06_write_single_register(1, 0, 100)
    print(f"Write status: {status}")
```

#### 2.2 MQTT通信
```python
from mqtt import init_mqtt

# 测试代码
def test_mqtt():
    mqtt_client = init_mqtt()
    
    # 发送测试数据
    test_data = {
        "Temperature": 25.5,
        "Flow01": 45.3
    }
    mqtt_client.update(test_data)
```

### 3. 控制算法测试

#### 3.1 PID控制
```python
# 测试场景
1. 小幅温度变化（±5℃）
2. 大幅温度变化（±50℃）
3. 外部干扰响应
4. 长时间稳定性

# 性能指标
- 超调量：≤ 1%
- 稳态误差：≤ 0.1℃
- 调节时间：≤ 300秒
```

#### 3.2 流量校准
```python
# 校准步骤
1. 零点校准
2. 满量程校准
3. 线性度验证
4. 重复性测试

# 校准标准
- 零点误差：≤ 0.1%
- 线性度：≤ 0.5%
- 重复性：≤ 0.2%
```

### 4. 界面测试

#### 4.1 显示测试
```python
# 测试项目
1. 数值显示准确性
2. 刷新率
3. 图表显示
4. 报警提示

# 验收标准
- 显示延迟：≤ 100ms
- 数值准确性：100%
- 报警响应：≤ 1秒
```

#### 4.2 触控测试
```python
# 测试项目
1. 按键响应
2. 参数设置
3. 页面切换
4. 长按功能

# 验收标准
- 触控响应：≤ 50ms
- 误触率：≤ 0.1%
- 功能准确性：100%
```

### 5. 异常测试

#### 5.1 断电保护
```python
# 测试场景
1. 正常运行时断电
2. 参数设置时断电
3. 校准过程中断电

# 验收标准
- 参数保持完整
- 恢复后自动继续
- 无数据丢失
```

#### 5.2 通信异常
```python
# 测试场景
1. 网络断开
2. RS485通信中断
3. 传感器故障

# 期望响应
- 自动重连
- 错误提示
- 安全保护动作
```

## 测试报告模板

### 基本信息
- 测试日期：
- 测试人员：
- 软件版本：
- 硬件版本：

### 测试结果
| 测试项目 | 测试内容 | 预期结果 | 实际结果 | 是否通过 |
|---------|---------|----------|----------|----------|
| 启动测试 | 系统上电 | 正常启动 |          |          |
| 温度控制 | 设定80℃ | 稳定±0.1℃|          |          |
| 流量控制 | 12路测试| 精度±1%  |          |          |

### 问题记录
1. 问题描述：
   - 现象：
   - 原因：
   - 解决方案：

2. 改进建议：
   - 功能建议：
   - 性能优化：
   - 界面改进：

## 自动化测试

### 单元测试
```python
import unittest

class TestOxygenCtrl(unittest.TestCase):
    def setUp(self):
        self.ctrl = Oxygen_Ctrl()
        
    def test_temperature_control(self):
        self.ctrl.SetTempra = 800
        # 测试代码
        
    def test_flow_control(self):
        self.ctrl.Flow01 = 1000
        # 测试代码
```

### 性能测试
```python
@measure_time(unit='ms')
def performance_test():
    # 执行测试内容
    pass
```

## 测试工具

### 1. 硬件工具
- 温度校准器
- 标准流量计
- 示波器
- 万用表

### 2. 软件工具
- 串口调试助手
- Modbus调试工具
- MQTT客户端
- 数据记录软件

## 注意事项

1. 测试安全
   - 遵守安全规程
   - 注意高温防护
   - 确保通风良好

2. 数据记录
   - 完整记录过程
   - 保存原始数据
   - 定期备份结果

3. 环境要求
   - 温度：20-25℃
   - 湿度：40-60%
   - 电源稳定
