压力测试框架
用于测试 AXBlade 后端系统的稳定性、性能和 Hummingbot 兼容性的综合测试框架。
安装
cd backend/tests/stress
pip install -r requirements.txt
测试模式
1. 压力测试 (Stress Test)
测试系统在高负载下的性能表现。
# 快速测试 (5分钟)
python -m stress.run_tests stress quick
# 标准测试 (30分钟)
python -m stress.run_tests stress standard
# 扩展测试 (2小时)
python -m stress.run_tests stress extended
# Hummingbot 配置测试 (1小时)
python -m stress.run_tests stress hummingbot
2. 撮合引擎测试 (Matching Engine Test)
测试撮合引擎的核心功能和稳定性。
python -m stress.run_tests matching
测试场景:
- 价格时间优先 (price_time_priority)
- 部分成交 (partial_fill)
- 自成交防护 (self_trade_prevention)
- 订单簿深度 (order_book_depth)
- 快速取消重下 (rapid_cancel_replace)
- 大单处理 (large_order_handling)
- 价格档位合并 (price_level_consolidation)
3. Hummingbot 集成测试
验证与 Hummingbot 做市机器人的兼容性。
python -m stress.run_tests hummingbot
测试内容:
- API 兼容性验证
- 订单生命周期
- WebSocket 连接
- 做市策略模拟
- 高频订单处理
- 订单簿同步
4. 耐久测试 (Endurance Test)
长时间运行测试,验证系统长期稳定性。
# 1小时测试
python -m stress.run_tests endurance 1
# 24小时测试
python -m stress.run_tests endurance 24
5. 运行所有测试
python -m stress.run_tests all
配置
环境变量
# API 地址
export ZTDX_API_URL="http://localhost:8080"
# WebSocket 地址
export ZTDX_WS_URL="ws://localhost:8080/ws"
# 测试账户私钥
export TEST_PRIVATE_KEY="0xac0974bec..."
命令行参数
python -m stress.run_tests <mode> [submode] [options]
选项:
--url API 地址 (默认: http://localhost:8080)
--output 结果输出目录 (默认: ./test_results)
-v 详细输出
测试结果
测试结果保存在 ./test_results/ 目录:
test_results/
├── stress_test_quick_20231210_120000.json # 压力测试报告
├── stress_test_quick_20231210_120000.log # 测试日志
├── matching_engine_20231210_120000.json # 撮合引擎报告
├── hummingbot_test_20231210_120000.json # Hummingbot 测试报告
├── endurance_final_20231210_120000.json # 耐久测试报告
└── endurance_checkpoint_*.json # 耐久测试检查点
性能指标
通过标准
| 指标 | 阈值 |
|---|---|
| 成功率 | ≥ 95% |
| 错误率 | ≤ 1% |
| P99 延迟 | ≤ 1000ms |
| 最小吞吐量 | ≥ 30 ops/s |
报告内容
- 吞吐量统计 (总请求、成功/失败、每秒请求)
- 延迟统计 (平均、P50、P95、P99、最大)
- 错误分类和计数
- 时间序列数据
- 异常记录