112 lines
4.2 KiB
Python
112 lines
4.2 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import requests
|
|
import json
|
|
|
|
def validate_system():
|
|
"""验证系统各组件是否正常"""
|
|
base_url = "http://localhost:5678"
|
|
|
|
print("🔍 系统组件验证")
|
|
print("=" * 50)
|
|
|
|
tests = []
|
|
|
|
# 1. 测试主页面
|
|
try:
|
|
response = requests.get(base_url, timeout=5)
|
|
if response.status_code == 200:
|
|
tests.append(("✅ 主页面", "访问正常"))
|
|
else:
|
|
tests.append(("❌ 主页面", f"HTTP {response.status_code}"))
|
|
except Exception as e:
|
|
tests.append(("❌ 主页面", str(e)))
|
|
|
|
# 2. 测试测评配置页
|
|
try:
|
|
response = requests.get(f"{base_url}/survey.html", timeout=5)
|
|
if response.status_code == 200:
|
|
tests.append(("✅ 测评配置页", "访问正常"))
|
|
else:
|
|
tests.append(("❌ 测评配置页", f"HTTP {response.status_code}"))
|
|
except Exception as e:
|
|
tests.append(("❌ 测评配置页", str(e)))
|
|
|
|
# 3. 测试题库文件
|
|
try:
|
|
response = requests.get(f"{base_url}/public/questions.json", timeout=5)
|
|
if response.status_code == 200:
|
|
data = response.json()
|
|
basic_count = len(data.get("基础题", []))
|
|
advanced_count = len(data.get("进阶题", []))
|
|
contest_count = len(data.get("竞赛题", []))
|
|
tests.append(("✅ 题库文件", f"基础题:{basic_count} 进阶题:{advanced_count} 竞赛题:{contest_count}"))
|
|
else:
|
|
tests.append(("❌ 题库文件", f"HTTP {response.status_code}"))
|
|
except Exception as e:
|
|
tests.append(("❌ 题库文件", str(e)))
|
|
|
|
# 4. 测试创建会话API
|
|
try:
|
|
create_data = {
|
|
"name": "验证测试",
|
|
"school": "测试学校",
|
|
"grade": "五年级",
|
|
"selectedTag": "五年级上册1-光",
|
|
"questionsConfig": {"基础题": 1, "进阶题": 1, "竞赛题": 1}
|
|
}
|
|
|
|
response = requests.post(f"{base_url}/api/create-session",
|
|
json=create_data,
|
|
timeout=5)
|
|
if response.status_code == 200:
|
|
result = response.json()
|
|
session_id = result['sessionId']
|
|
tests.append(("✅ 创建会话API", f"SessionID: {session_id[:8]}..."))
|
|
|
|
# 5. 测试答题页面
|
|
response = requests.get(f"{base_url}/quiz/{session_id}", timeout=5)
|
|
if response.status_code == 200:
|
|
tests.append(("✅ 答题页面", f"访问正常"))
|
|
else:
|
|
tests.append(("❌ 答题页面", f"HTTP {response.status_code}"))
|
|
else:
|
|
tests.append(("❌ 创建会话API", f"HTTP {response.status_code}"))
|
|
except Exception as e:
|
|
tests.append(("❌ 创建会话API", str(e)))
|
|
|
|
# 6. 测试报告列表API
|
|
try:
|
|
response = requests.get(f"{base_url}/api/reports", timeout=5)
|
|
if response.status_code == 200:
|
|
data = response.json()
|
|
tests.append(("✅ 报告列表API", f"共 {data.get('total', 0)} 个报告"))
|
|
else:
|
|
tests.append(("❌ 报告列表API", f"HTTP {response.status_code}"))
|
|
except Exception as e:
|
|
tests.append(("❌ 报告列表API", str(e)))
|
|
|
|
# 显示结果
|
|
print("\n📊 验证结果:")
|
|
for status, description in tests:
|
|
print(f" {status} {description}")
|
|
|
|
# 统计
|
|
success_count = sum(1 for status, _ in tests if status.startswith("✅"))
|
|
total_count = len(tests)
|
|
|
|
print(f"\n📈 系统状态: {success_count}/{total_count} 组件正常")
|
|
|
|
if success_count == total_count:
|
|
print("\n🎉 系统完全正常!可以开始使用。")
|
|
print("\n🚀 快速开始:")
|
|
print(" 1. 访问: http://your-server-domain/")
|
|
print(" 2. 点击'开始新的测评'")
|
|
print(" 3. 填写信息并答题")
|
|
print(" 4. 查看AI生成的报告")
|
|
else:
|
|
print(f"\n⚠️ 系统存在问题,请检查失败的组件。")
|
|
|
|
if __name__ == "__main__":
|
|
validate_system() |