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