Skip to content

Latest commit

 

History

History
88 lines (74 loc) · 2.15 KB

File metadata and controls

88 lines (74 loc) · 2.15 KB

快速测试错误处理修复

问题描述

之前快速测试中失败的端点仍然显示响应时间(几十毫秒),但实际上这些端点不应该被选中使用。

修复内容

1. 🚨 改进的错误日志

现在快速测试会清楚地区分成功和失败的情况:

成功的测试:

level=DEBUG msg="⚡ Fast test completed successfully" endpoint=hk status_code=200 response_time_ms=120 success=true

网络错误:

level=WARN msg="❌ Fast test failed with network error" endpoint=cn2 response_time_ms=45 error="connection refused" reason="Network or connection error"

HTTP状态错误:

level=WARN msg="❌ Fast test failed with bad status" endpoint=sg status_code=503 response_time_ms=230 success=false reason="Invalid HTTP status code"

2. 📊 详细的测试总结

现在会显示所有测试结果的总结:

{
  "msg": "⚡ Fast test results summary:"
}
{
  "msg": "🧪 Fast test result",
  "test_order": 1,
  "endpoint": "hk",
  "response_time_ms": 120,
  "success": true,
  "status": "SUCCESS",
  "emoji": ""
}
{
  "msg": "🧪 Fast test result", 
  "test_order": 2,
  "endpoint": "cn2",
  "response_time_ms": 45,
  "success": false,
  "status": "FAILED",
  "emoji": ""
}
{
  "msg": "📊 Fast test summary",
  "total_tested": 4,
  "successful": 2,
  "failed": 2
}

3. 🏆 最终端点排名

只显示通过测试的端点:

{
  "msg": "🏆 Final endpoint ranking (successful only):"
}
{
  "msg": "🥇 Ranked endpoint",
  "final_rank": 1,
  "endpoint": "hk", 
  "response_time_ms": 120
}

4. ⚠️ 失败处理

  • 所有端点都失败: 回退到健康检查结果
  • 部分端点失败: 只使用通过测试的端点
  • 失败原因显示: 区分网络错误和HTTP状态错误

使用效果

现在当你看到日志时,能清楚地知道:

  • ✅ 哪些端点测试成功
  • ❌ 哪些端点测试失败
  • 🔄 失败的具体原因
  • 📊 测试成功率
  • 🥇 最终选择的端点排名

几十毫秒的响应时间如果伴随着错误信息,说明是快速失败(如连接拒绝、DNS解析失败等),这些端点不会被选中使用。