survey/validate_system.py
朱潮 99796408cf Initial commit: Add survey system with enhanced features
- Complete survey management system with web interface
- Question generation tools and prompts
- Report generation and analysis capabilities
- Docker configuration for deployment
- Database initialization scripts

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-28 20:28:57 +08:00

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://localhost:5678/")
print(" 2. 点击'开始新的测评'")
print(" 3. 填写信息并答题")
print(" 4. 查看AI生成的报告")
else:
print(f"\n⚠️ 系统存在问题,请检查失败的组件。")
if __name__ == "__main__":
validate_system()