PCM_Report/test_client_environment.py

148 lines
3.8 KiB
Python
Raw Permalink Normal View History

2025-12-11 14:32:31 +08:00
#!/usr/bin/env python3
"""
测试客户机器环境和依赖包
"""
import sys
import os
from pathlib import Path
def test_python_version():
"""测试Python版本"""
print(f"Python版本: {sys.version}")
print(f"Python路径: {sys.executable}")
def test_influxdb_client():
"""测试InfluxDB客户端"""
try:
import influxdb_client
print(f"✓ influxdb_client 已安装,版本: {influxdb_client.__version__}")
return True
except ImportError as e:
print(f"✗ influxdb_client 未安装: {e}")
return False
def test_pandas():
"""测试pandas"""
try:
import pandas as pd
print(f"✓ pandas 已安装,版本: {pd.__version__}")
return True
except ImportError as e:
print(f"✗ pandas 未安装: {e}")
return False
def test_other_dependencies():
"""测试其他依赖"""
dependencies = [
'json',
'datetime',
'logging',
'os',
'sys'
]
for dep in dependencies:
try:
__import__(dep)
print(f"{dep} 可用")
except ImportError as e:
print(f"{dep} 不可用: {e}")
def test_environment_variables():
"""测试环境变量"""
required_vars = [
'INFLUX_URL',
'INFLUX_ORG',
'INFLUX_TOKEN',
'INFLUX_BUCKET',
'INFLUX_MEASUREMENT',
'EXPERIMENT_START',
'EXPERIMENT_END'
]
print("\n环境变量检查:")
all_set = True
for var in required_vars:
value = os.environ.get(var)
if value:
# 隐藏敏感信息
if 'TOKEN' in var and len(value) > 8:
display_value = f"{value[:4]}****"
else:
display_value = value
print(f"{var} = {display_value}")
else:
print(f"{var} 未设置")
all_set = False
return all_set
def create_mock_temperature_data():
"""创建模拟温度数据用于测试"""
mock_data = {
"tables": [{
"token": "scriptTable1",
"startRow": 0,
"startCol": 0,
"cells": [
{"row": 1, "col": 1, "value": "2025-11-27 11:30:00"},
{"row": 1, "col": 3, "value": "2025-11-27 15:00:00"},
{"row": 0, "col": 1, "value": "25.5"}, # 模拟环境温度
{"row": 4, "col": 0, "value": "45.2"}, # 模拟主轴承温度
{"row": 4, "col": 1, "value": "46.1"},
{"row": 5, "col": 0, "value": "44.8"},
]
}]
}
import json
print("\n模拟数据 (用于测试报告生成):")
print(json.dumps(mock_data, ensure_ascii=False, indent=2))
return mock_data
def main():
print("客户机器环境测试")
print("=" * 50)
# 测试Python环境
test_python_version()
print()
# 测试依赖包
print("依赖包检查:")
influx_ok = test_influxdb_client()
pandas_ok = test_pandas()
test_other_dependencies()
print()
# 测试环境变量
env_ok = test_environment_variables()
print()
# 创建模拟数据
mock_data = create_mock_temperature_data()
# 总结
print("\n" + "=" * 50)
print("总结:")
if not influx_ok:
print("❌ 需要安装 influxdb-client:")
print(" pip install influxdb-client==1.43.0")
if not pandas_ok:
print("❌ 需要安装 pandas:")
print(" pip install pandas")
if not env_ok:
print("❌ 需要设置所有必需的环境变量")
if influx_ok and pandas_ok and env_ok:
print("✅ 环境配置正确可以运行temperature_table.py")
else:
print("⚠️ 环境配置不完整,但可以使用模拟数据测试报告生成")
if __name__ == "__main__":
main()