BodyBalanceEvaluation/backend/test_avoid_duplicate_init.py

75 lines
2.6 KiB
Python
Raw Normal View History

#!/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()