#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ 测试避免重复初始化功能 """ import requests import time import json def test_avoid_duplicate_initialization(): """ 测试避免重复初始化功能 """ base_url = "http://localhost:5000" print("=== 测试避免重复初始化功能 ===") # 1. 获取初始设备状态 print("\n1. 获取初始设备状态") try: response = requests.get(f"{base_url}/api/devices/status") if response.status_code == 200: data = response.json() print(f"设备状态: {json.dumps(data, indent=2, ensure_ascii=False)}") else: print(f"获取设备状态失败: {response.status_code}") except Exception as e: print(f"请求失败: {e}") # 2. 第一次启动设备数据推送 print("\n2. 第一次启动设备数据推送") try: response = requests.post(f"{base_url}/api/devices/start_push") if response.status_code == 200: data = response.json() print(f"第一次启动结果: {json.dumps(data, indent=2, ensure_ascii=False)}") else: print(f"第一次启动失败: {response.status_code}") except Exception as e: print(f"请求失败: {e}") # 等待一段时间 print("\n等待5秒...") time.sleep(5) # 3. 第二次启动设备数据推送(应该避免重复初始化) print("\n3. 第二次启动设备数据推送(测试避免重复初始化)") try: response = requests.post(f"{base_url}/api/devices/start_push") if response.status_code == 200: data = response.json() print(f"第二次启动结果: {json.dumps(data, indent=2, ensure_ascii=False)}") else: print(f"第二次启动失败: {response.status_code}") except Exception as e: print(f"请求失败: {e}") # 4. 再次获取设备状态 print("\n4. 获取最终设备状态") try: response = requests.get(f"{base_url}/api/devices/status") if response.status_code == 200: data = response.json() print(f"最终设备状态: {json.dumps(data, indent=2, ensure_ascii=False)}") else: print(f"获取设备状态失败: {response.status_code}") except Exception as e: print(f"请求失败: {e}") print("\n=== 测试完成 ===") print("请查看终端日志,确认第二次启动时是否显示'已连接,跳过初始化'的消息") if __name__ == "__main__": test_avoid_duplicate_initialization()