PCM_Report/test_temperature_table_with...

100 lines
3.0 KiB
Python
Raw Permalink Normal View History

2025-12-11 14:32:31 +08:00
#!/usr/bin/env python3
"""
测试temperature_table.py脚本设置正确的环境变量
"""
import os
import json
import subprocess
import sys
from datetime import datetime
def load_influx_config():
"""从default.json加载InfluxDB配置"""
config_path = os.path.join(os.path.dirname(__file__), "default.json")
try:
with open(config_path, 'r', encoding='utf-8') as f:
config = json.load(f)
return config.get('influx', {})
except Exception as e:
print(f"加载配置文件失败: {e}")
return {}
def test_temperature_table():
"""测试temperature_table.py脚本"""
print("测试 temperature_table.py 脚本")
print("=" * 50)
# 加载InfluxDB配置
influx_config = load_influx_config()
if not influx_config:
print("无法加载InfluxDB配置")
return
print("InfluxDB配置:")
print(f" URL: {influx_config.get('url', 'N/A')}")
print(f" ORG: {influx_config.get('org', 'N/A')}")
print(f" BUCKET: {influx_config.get('bucket', 'N/A')}")
print(f" MEASUREMENT: {influx_config.get('measurement', 'N/A')}")
print()
# 设置环境变量
env = os.environ.copy()
env.update({
'INFLUX_URL': influx_config.get('url', ''),
'INFLUX_ORG': influx_config.get('org', ''),
'INFLUX_TOKEN': influx_config.get('token', ''),
'INFLUX_BUCKET': influx_config.get('bucket', 'PCM'),
'INFLUX_MEASUREMENT': influx_config.get('measurement', 'PCM_Measurement'),
'EXPERIMENT_START': '2025-11-27T11:30:00Z',
'EXPERIMENT_END': '2025-11-27T12:00:00Z',
'TABLE_LOG_LEVEL': 'DEBUG',
'TABLE_LOG_FILE': 'temperature_test.log'
})
print("运行 temperature_table.py 脚本...")
print(f" 实验时间: {env['EXPERIMENT_START']}{env['EXPERIMENT_END']}")
print()
# 运行脚本
script_path = os.path.join(os.path.dirname(__file__), "temperature_table.py")
try:
result = subprocess.run(
[sys.executable, script_path],
env=env,
capture_output=True,
text=True,
timeout=30
)
print("脚本输出:")
if result.stdout:
print("STDOUT:")
print(result.stdout)
if result.stderr:
print("STDERR:")
print(result.stderr)
print(f"返回码: {result.returncode}")
# 检查日志文件
log_file = "temperature_test.log"
if os.path.exists(log_file):
print(f"\n日志文件 ({log_file}) 最后10行:")
with open(log_file, 'r', encoding='utf-8') as f:
lines = f.readlines()
for line in lines[-10:]:
print(f" {line.strip()}")
except subprocess.TimeoutExpired:
print("脚本运行超时")
except Exception as e:
print(f"运行脚本失败: {e}")
def main():
test_temperature_table()
if __name__ == "__main__":
main()