90 lines
3.8 KiB
Python
90 lines
3.8 KiB
Python
#!/usr/bin/env python3
|
||
"""
|
||
测试模型详情端点
|
||
"""
|
||
import urllib.request
|
||
import json
|
||
|
||
def test_model_details_endpoint():
|
||
try:
|
||
print("=== 测试模型详情端点 ===")
|
||
|
||
# 首先获取模型列表,找到可用的模型
|
||
print("1. 获取模型列表...")
|
||
url = 'http://localhost:5000/api/models'
|
||
with urllib.request.urlopen(url) as response:
|
||
data = response.read().decode('utf-8')
|
||
result = json.loads(data)
|
||
|
||
models = result.get('data', [])
|
||
print(f"找到 {len(models)} 个模型")
|
||
|
||
if not models:
|
||
print("❌ 没有可用模型,无法测试详情端点")
|
||
return
|
||
|
||
# 测试每个模型的详情端点
|
||
for i, model in enumerate(models):
|
||
model_type = model.get('model_type', '')
|
||
product_id = model.get('product_id', '')
|
||
|
||
print(f"\n2.{i+1} 测试模型详情:")
|
||
print(f" 模型类型: {model_type}")
|
||
print(f" 产品ID: {product_id}")
|
||
|
||
if not model_type or not product_id:
|
||
print(" ❌ 缺少必要参数,跳过")
|
||
continue
|
||
|
||
# 构造详情端点URL
|
||
details_url = f'http://localhost:5000/api/models/{model_type}/{product_id}/details'
|
||
print(f" 请求URL: {details_url}")
|
||
|
||
try:
|
||
with urllib.request.urlopen(details_url) as details_response:
|
||
details_data = details_response.read().decode('utf-8')
|
||
details_result = json.loads(details_data)
|
||
|
||
print(f" ✓ 状态码: {details_response.status}")
|
||
|
||
if details_result.get('status') == 'success':
|
||
data = details_result.get('data', {})
|
||
model_info = data.get('model_info', {})
|
||
training_metrics = data.get('training_metrics', {})
|
||
|
||
print(f" ✓ 返回状态: success")
|
||
print(f" ✓ 模型信息: {len(model_info)} 个字段")
|
||
print(f" ✓ 训练指标: {len(training_metrics)} 个")
|
||
|
||
if training_metrics:
|
||
print(f" - 指标包含: {list(training_metrics.keys())}")
|
||
else:
|
||
print(f" ❌ 返回错误: {details_result.get('message', '未知错误')}")
|
||
|
||
except urllib.error.HTTPError as e:
|
||
print(f" ❌ HTTP错误: {e.code} - {e.reason}")
|
||
|
||
# 尝试读取错误响应
|
||
try:
|
||
error_data = e.read().decode('utf-8')
|
||
error_result = json.loads(error_data)
|
||
print(f" 错误详情: {error_result.get('message', '无详情')}")
|
||
except:
|
||
print(f" 无法解析错误响应")
|
||
|
||
except Exception as e:
|
||
print(f" ❌ 请求异常: {e}")
|
||
|
||
# 3. 测试CORS
|
||
print(f"\n3. CORS配置检查:")
|
||
print(f" 当前CORS设置: origins='*'")
|
||
print(f" 如果前端仍有CORS错误,可能需要:")
|
||
print(f" - 检查前端请求头")
|
||
print(f" - 确认API服务器地址")
|
||
print(f" - 检查浏览器开发者工具网络面板")
|
||
|
||
except Exception as e:
|
||
print(f"测试失败: {e}")
|
||
|
||
if __name__ == "__main__":
|
||
test_model_details_endpoint() |