You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
moxun-1/test_api_integration.py

113 lines
3.7 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#!/usr/bin/env python3
"""
测试前后端API集成的脚本
"""
import requests
import json
import time
# API基础URL
BASE_URL = "http://127.0.0.1:8000/api"
def test_health_check():
"""测试健康检查端点"""
try:
response = requests.get(f"{BASE_URL}/health/")
print(f"✓ 健康检查: {response.status_code} - {response.json()}")
return response.status_code == 200
except Exception as e:
print(f"✗ 健康检查失败: {e}")
return False
def test_preprocess():
"""测试预处理端点"""
try:
data = {"test": "data"}
response = requests.post(f"{BASE_URL}/preprocess/", json=data)
result = response.json()
print(f"✓ 预处理: {response.status_code} - {result.get('message', '无消息')}")
return response.status_code == 200 or response.status_code == 400 # 400可能是数据为空
except Exception as e:
print(f"✗ 预处理失败: {e}")
return False
def test_merge():
"""测试格式合并端点"""
try:
data = {"test": "data"}
response = requests.post(f"{BASE_URL}/merge/", json=data)
result = response.json()
print(f"✓ 格式合并: {response.status_code} - {result.get('message', '无消息')}")
return response.status_code == 200 or response.status_code == 400
except Exception as e:
print(f"✗ 格式合并失败: {e}")
return False
def test_correct():
"""测试单词纠错端点"""
try:
data = {"test": "data"}
response = requests.post(f"{BASE_URL}/correct/", json=data)
result = response.json()
print(f"✓ 单词纠错: {response.status_code} - {result.get('message', '无消息')}")
return response.status_code == 200 or response.status_code == 400
except Exception as e:
print(f"✗ 单词纠错失败: {e}")
return False
def test_analyze():
"""测试大模型分析端点"""
try:
data = {"test": "data"}
response = requests.post(f"{BASE_URL}/analyze/", json=data)
result = response.json()
print(f"✓ 大模型分析: {response.status_code} - {result.get('message', '无消息')}")
return response.status_code == 200 or response.status_code == 400
except Exception as e:
print(f"✗ 大模型分析失败: {e}")
return False
def test_data_endpoint():
"""测试数据获取端点"""
try:
response = requests.get(f"{BASE_URL}/data/")
result = response.json()
print(f"✓ 数据获取: {response.status_code} - {result.get('message', '无消息')}")
return True
except Exception as e:
print(f"✗ 数据获取失败: {e}")
return False
def main():
"""运行所有测试"""
print("开始测试前后端API集成...")
print("=" * 50)
tests = [
("健康检查", test_health_check),
("数据获取", test_data_endpoint),
("预处理", test_preprocess),
("格式合并", test_merge),
("单词纠错", test_correct),
("大模型分析", test_analyze),
]
passed = 0
total = len(tests)
for name, test_func in tests:
print(f"\n测试 {name}...")
if test_func():
passed += 1
time.sleep(0.5) # 避免请求过快
print("=" * 50)
print(f"测试完成: {passed}/{total} 通过")
if passed == total:
print("🎉 所有API端点测试通过前后端集成成功。")
else:
print("⚠️ 部分测试失败,请检查后端服务状态。")
if __name__ == "__main__":
main()