本指南将帮助您验证COMPASS服务的所有改进功能。
方法1:使用批处理文件(推荐)
start_service_for_test.bat方法2:手动启动
cd E:\Qinchaojun\AIDD-TRAIN
set PYTHONPATH=%CD%
python compass\service_main.py --host 0.0.0.0 --port 8080 --registry-url http://localhost:8500方法3:使用项目启动脚本
start_compass_safe.bat在另一个终端窗口中运行:
python test_service_practice.py测试脚本将验证以下功能:
- 验证服务是否正常运行
- 检查服务状态和版本信息
- 验证CORS头是否正确设置
- 检查跨域请求是否被正确处理
- 验证安全响应头:
X-Content-Type-Options: nosniffX-Frame-Options: DENYContent-Security-Policy
- 测试XSS攻击防护
- 验证危险输入是否被正确清理
- 测试速率限制功能
- 验证是否在超过限制时返回429状态码
- 测试无效输入的错误处理
- 验证错误消息格式是否正确
- 验证
/metrics端点是否可访问 - 检查速率限制统计信息
- 验证Swagger文档是否可访问
- 检查API文档地址:http://localhost:8080/docs
curl http://localhost:8080/healthcurl -H "Origin: http://localhost:8501" -v http://localhost:8080/healthcurl -I http://localhost:8080/health# 快速发送多个请求
for i in {1..15}; do curl http://localhost:8080/api/v1/training/tasks; done# 测试无效的task_id
curl http://localhost:8080/api/v1/training/tasks/invalid-idcurl http://localhost:8080/metrics在浏览器中打开:
http://localhost:8080/docs
- ✅ 所有测试通过
- ✅ 服务正常响应请求
- ✅ 安全头正确设置
- ✅ CORS配置正确
- ✅ 速率限制正常工作
- ✅ 错误处理正确
问题1:连接被拒绝
- 确保服务正在运行
- 检查端口8080是否被占用
- 验证防火墙设置
问题2:CORS测试失败
- 检查环境变量
CORS_ORIGINS设置 - 验证CORS中间件是否正确加载
问题3:速率限制未触发
- 速率限制可能设置较高(默认100请求/分钟)
- 可以设置环境变量降低限制进行测试:
set RATE_LIMIT_TRAINING=5 set RATE_LIMIT_DEFAULT=10
问题4:安全头缺失
- 检查安全头中间件是否正确加载
- 验证中间件顺序
# 禁用认证(用于测试)
set AUTH_ENABLED=false
set FORCE_AUTH_CRITICAL=false
# 降低速率限制(用于测试)
set RATE_LIMIT_TRAINING=5
set RATE_LIMIT_DEFAULT=10
# CORS配置
set CORS_ORIGINS=http://localhost:8501,http://127.0.0.1:8501
# 日志级别
set LOG_LEVEL=INFO- 服务成功启动
- 健康检查返回200
- CORS头正确设置
- 安全头全部存在
- XSS防护正常工作
- 速率限制功能正常
- 错误处理正确
- 指标端点可访问
- API文档可访问
测试通过后,您可以:
- 查看API文档:http://localhost:8080/docs
- 测试实际功能(创建任务、上传数据等)
- 检查日志文件了解服务运行情况
- 监控指标端点了解服务性能
如果遇到问题,请检查:
- 服务日志文件
- 端口占用情况
- 环境变量配置
- 依赖项是否正确安装
更多信息请参考:
README.md- 项目主文档ROBUSTNESS_IMPROVEMENTS.md- 改进总结FINAL_TEST_SUMMARY.md- 测试总结