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