# IoT设备日志和轨迹功能测试脚本 ## 测试环境 - 应用地址: http://localhost:8080 - 数据库: MySQL (xq_client_log表已包含device_id字段) ## 测试步骤 ### 1. 等待应用启动 等待Spring Boot应用完全启动,查看控制台日志确认: - 数据库连接成功 - 定时任务已注册 - 所有API接口已加载 ### 2. 测试智能项圈日志查询 **API**: `POST /api/deliveryDevice/getCollarLogs` **测试数据**: ```json { "deviceId": "24075000139", "deliveryId": 86 } ``` **预期结果**: - 返回60分钟间隔的日志数据 - 包含设备电量、温度、步数、经纬度等信息 - 控制台输出查询日志 ### 3. 测试智能项圈运动轨迹 **API**: `POST /api/deliveryDevice/getCollarTrajectory` **测试数据**: ```json { "deviceId": "24075000139", "deliveryId": 86 } ``` **预期结果**: - 返回60分钟间隔的轨迹点数据 - 包含经纬度和时间戳 - 可用于地图轨迹绘制 ### 4. 测试设备日志同步功能 **API**: `POST /api/deliveryDevice/manualSyncDeviceLogs` **预期结果**: - 从iot_device_data表同步数据到三个日志表 - 控制台输出同步统计信息 - 返回成功状态 ### 5. 测试日志统计信息 **API**: `GET /api/deliveryDevice/getLogSyncStatistics` **预期结果**: ```json { "code": 200, "msg": "获取统计信息成功", "data": { "hostLogCount": 5, "earTagLogCount": 8, "collarLogCount": 35, "totalLogCount": 48 } } ``` ### 6. 验证数据库数据 **检查xq_client_log表数据**: ```sql SELECT device_id, device_voltage, device_temp, latitude, longitude, walk_steps, create_time, update_time FROM xq_client_log WHERE device_id = '24075000139' ORDER BY update_time DESC LIMIT 10; ``` **预期结果**: - 显示设备24075000139的最近10条日志记录 - 包含完整的设备信息字段 ## 测试命令 ### 使用curl测试 ```bash # 测试项圈日志查询 curl -X POST http://localhost:8080/api/deliveryDevice/getCollarLogs \ -H "Content-Type: application/json" \ -d '{"deviceId": "24075000139", "deliveryId": 86}' # 测试项圈轨迹查询 curl -X POST http://localhost:8080/api/deliveryDevice/getCollarTrajectory \ -H "Content-Type: application/json" \ -d '{"deviceId": "24075000139", "deliveryId": 86}' # 测试手动同步 curl -X POST http://localhost:8080/api/deliveryDevice/manualSyncDeviceLogs # 测试统计信息 curl -X GET http://localhost:8080/api/deliveryDevice/getLogSyncStatistics ``` ### 使用Postman测试 1. **创建新的Collection**: "IoT设备日志测试" 2. **添加环境变量**: - baseUrl: http://localhost:8080 - deviceId: 24075000139 - deliveryId: 86 3. **创建测试请求**: - 项圈日志查询 - 项圈轨迹查询 - 手动同步 - 统计信息 ## 成功指标 ### ✅ 功能验证 1. **API响应正常**: 所有接口返回200状态码 2. **数据格式正确**: 返回JSON格式的日志和轨迹数据 3. **60分钟分组**: 数据按小时时间分组显示 4. **日志记录完整**: 控制台输出详细的查询和同步日志 ### ✅ 数据验证 1. **设备信息完整**: 包含电量、温度、步数、位置等字段 2. **轨迹点有效**: 经纬度数据不为0且格式正确 3. **时间戳准确**: 创建和更新时间字段正确 4. **同步功能正常**: 数据能正确同步到日志表 ### ✅ 性能验证 1. **响应时间**: API响应时间在可接受范围内 2. **数据量**: 能正确处理大量历史数据 3. **内存使用**: 应用运行稳定,无内存泄漏 ## 故障排除 ### 常见问题 1. **应用启动失败**: 检查数据库连接和端口占用 2. **API返回500**: 查看控制台错误日志 3. **数据为空**: 检查设备ID和订单ID是否正确 4. **字段映射错误**: 确认数据库表结构与实体类匹配 ### 调试方法 1. **查看控制台日志**: 关注SQL查询和错误信息 2. **检查数据库**: 直接查询表数据验证 3. **使用Postman**: 测试API接口的请求和响应 4. **分步测试**: 先测试单个功能,再测试完整流程 ## 下一步计划 测试成功后,可以: 1. **前端集成**: 在前端页面测试日志和轨迹显示 2. **定时任务**: 验证60分钟自动同步功能 3. **性能优化**: 根据实际使用情况优化查询性能 4. **功能扩展**: 添加更多设备类型和查询条件