Files
cattleTransportation/tradeCattle/IOT_DEVICE_LOG_SYNC_TEST_GUIDE.md

178 lines
4.3 KiB
Markdown
Raw Normal View History

2025-10-24 17:32:42 +08:00
# IoT设备日志同步功能测试脚本
## 测试步骤
### 1. 检查应用启动状态
等待应用启动完成,查看控制台日志确认:
- Spring Boot应用启动成功
- 数据库连接正常
- 定时任务已注册
### 2. 手动触发日志同步测试
**API接口**: `POST http://localhost:8080/api/deliveryDevice/manualSyncDeviceLogs`
**测试命令**:
```bash
curl -X POST http://localhost:8080/api/deliveryDevice/manualSyncDeviceLogs \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN"
```
**预期结果**:
```json
{
"code": 200,
"msg": "设备日志同步完成",
"data": null
}
```
### 3. 查看日志同步统计信息
**API接口**: `GET http://localhost:8080/api/deliveryDevice/getLogSyncStatistics`
**测试命令**:
```bash
curl -X GET http://localhost:8080/api/deliveryDevice/getLogSyncStatistics \
-H "Authorization: Bearer YOUR_TOKEN"
```
**预期结果**:
```json
{
"code": 200,
"msg": "获取统计信息成功",
"data": {
"hostLogCount": 5,
"earTagLogCount": 8,
"collarLogCount": 3,
"totalLogCount": 16
}
}
```
### 4. 验证数据库数据
**检查iot_device_data表**:
```sql
SELECT device_id, device_type, device_name, voltage, temperature, steps, latitude, longitude, update_time
FROM iot_device_data
ORDER BY device_type, device_id;
```
**检查日志表数据**:
```sql
-- 主机日志
SELECT COUNT(*) as host_count FROM jbq_server_log;
-- 耳标日志
SELECT COUNT(*) as ear_tag_count FROM jbq_client_log;
-- 项圈日志
SELECT COUNT(*) as collar_count FROM xq_client_log;
```
**检查最新同步的日志记录**:
```sql
-- 查看最新的主机日志
SELECT device_id, device_voltage, device_temp, latitude, longitude, create_time
FROM jbq_server_log
ORDER BY create_time DESC LIMIT 5;
-- 查看最新的耳标日志
SELECT device_id, device_voltage, device_temp, latitude, longitude, create_time
FROM jbq_client_log
ORDER BY create_time DESC LIMIT 5;
-- 查看最新的项圈日志
SELECT device_id, device_voltage, device_temp, latitude, longitude, create_time
FROM xq_client_log
ORDER BY create_time DESC LIMIT 5;
```
### 5. 验证定时任务
**等待60分钟后检查**:
- 查看应用日志,确认定时任务自动执行
- 检查日志表是否有新的数据插入
- 验证数据同步的准确性
### 6. 测试日志查询功能
**测试耳标日志查询**:
```bash
curl -X POST http://localhost:8080/api/deliveryDevice/getEarTagLogs \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"deviceId": "2404401569",
"deliveryId": 1
}'
```
**测试项圈日志查询**:
```bash
curl -X POST http://localhost:8080/api/deliveryDevice/getCollarLogs \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"deviceId": "2404401569",
"deliveryId": 1
}'
```
**测试主机日志查询**:
```bash
curl -X POST http://localhost:8080/api/deliveryDevice/getHostLogs \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_TOKEN" \
-d '{
"deviceId": "2404401569",
"deliveryId": 1
}'
```
## 预期结果
### 成功指标
1. **编译成功**: 无编译错误
2. **应用启动**: Spring Boot正常启动
3. **手动同步**: API返回成功状态
4. **数据同步**: 日志表中有对应设备类型的数据
5. **定时任务**: 60分钟后自动执行同步
6. **日志查询**: 能正确查询到设备日志数据
### 数据验证要点
1. **设备类型映射正确**:
- device_type=1 → jbq_server_log
- device_type=2 → jbq_client_log
- device_type=4 → xq_client_log
2. **字段映射正确**:
- voltage → device_voltage
- temperature → device_temp
- steps → walk_steps
- same_day_steps → y_walk_steps
3. **时间字段正确**:
- create_time = 当前同步时间
- update_time = 当前同步时间
- create_by = "SYSTEM"
- update_by = "SYSTEM"
## 故障排除
### 常见问题
1. **编译错误**: 检查import语句和语法
2. **数据库连接失败**: 检查数据库配置
3. **权限错误**: 检查API权限配置
4. **数据为空**: 检查iot_device_data表是否有数据
5. **定时任务不执行**: 检查@Scheduled注解和Spring配置
### 调试方法
1. 查看应用日志输出
2. 检查数据库表结构和数据
3. 使用Postman或curl测试API
4. 验证定时任务配置