测试快速入门指南
最后更新: 2026-01-20 适用对象: QA 工程师, 测试人员, 前端开发人员
本指南将帮助您快速开始测试 AXBlade 平台 API。所有测试脚本均已准备就绪,仅需简单设置即可运行。
快速开始 (5 分钟)
1. 安装依赖
cd backend/tests
pip3 install aiohttp eth-account certifi web3 python-dotenv requests
2. 运行所有核心测试
# 全面 API 测试 (44 个测试)
python3 test_api_comprehensive.py
# 场景和边界情况测试 (21 个测试)
python3 test_scenarios_and_edge_cases.py
3. 检查结果
Total tests: 65
Pass: 65
Fail: 0
Pass rate: 100.0%
测试环境
| 环境 | API Base URL | WebSocket | 链 (Chain) |
|---|---|---|---|
| 测试网 (Testnet) | https://api.8a27.xyz | wss://ws.8a27.xyz | Arbitrum Sepolia (421614) |
测试套件概览
可用测试文件
| 测试文件 | 测试数 | 时长 | 描述 |
|---|---|---|---|
test_api_comprehensive.py | 44 | ~30s | API 全面覆盖 |
test_scenarios_and_edge_cases.py | 21 | ~45s | 交易场景测试 |
test_limit_orders.py | 20 | ~60s | 限价单生命周期 |
test_liquidation.py | 9 | ~30s | 清算机制 |
test_points_phase1.py | 16 | ~30s | 积分系统 |
test_earn_e2e.py | 10 | ~120s | EARN 产品生命周期 |
test_stress_10k.py | 8 阶段 | ~90s | 1万并发压力测试 |
快速测试命令
# 运行特定测试
python3 test_limit_orders.py
# 运行并显示详细输出
python3 -v test_api_comprehensive.py
# 顺序运行所有测试
./run_api_tests.sh
测试账户设置
默认测试账户
所有测试文件均使用预配置的测试账户:
ADDRESS = "0x29F721B203A9fC9c5DDe35A739d8b8E0E4605489"
PRIVATE_KEY = "0x9b7f11c9a5c41fc4a62ab0aa767a3a18018a16f3bd012b2ca78d3a12ae947041"
使用自己的账户
- 生成新钱包或使用现有钱包
- 获取测试 USDT (仅限测试网)
- 更新测试文件:
ADDRESS = "0xYourAddress"
PRIVATE_KEY = "0xYourPrivateKey"
测试账户充值
对于测试网,请向团队申请或使用水龙头:
- Arbitrum Sepolia ETH: Arbitrum 水龙头
- 测试 USDT: 联系团队管理员
API 测试指南
身份验证流程
所有需要身份验证的请求都需要 EIP-712 签名:
# 1. 获取 nonce
GET /api/v1/auth/nonce/{address}
# 2. 对类型化数据进行签名
typed_data = response['typed_data']
signature = sign_typed_data(typed_data, private_key)
# 3. 登录
POST /api/v1/auth/login
{
"address": "0x...",
"signature": "0x...",
"timestamp": 1234567890
}
# 4. 在 Header 中使用 Token
Authorization: Bearer {token}
常用 API 端点
| 类别 | 端点 | 认证 | 描述 |
|---|---|---|---|
| 市场 | GET /api/v1/markets | 否 | 列出所有市场 |
GET /api/v1/markets/{symbol}/price | 否 | 当前价格 | |
GET /api/v1/markets/{symbol}/ticker | 否 | 24小时行情 | |
GET /api/v1/markets/{symbol}/orderbook | 否 | 订单簿深度 | |
| 仓位 | POST /api/v1/positions | 是 | 开仓 |
GET /api/v1/positions | 是 | 列出仓位 | |
POST /api/v1/positions/{id}/close | 是 | 平仓 | |
| 订单 | POST /api/v1/orders | 是 | 创建订单 |
GET /api/v1/orders | 是 | 列出订单 | |
DELETE /api/v1/orders/{id} | 是 | 取消订单 | |
| 账户 | GET /api/v1/account/balance | 是 | 获取余额 |
GET /api/v1/account/positions | 是 | 仓位历史 | |
| 积分 | GET /api/v1/points | 是 | 用户积分 |
GET /api/v1/leaderboard | 否 | 排行榜 | |
GET /api/v1/epochs | 否 | Epoch 列表 |
测试类别
1. API 全面测试 (44 个测试)
文件: test_api_comprehensive.py
测试跨 11 个模块的所有 API 端点:
| 模块 | 测试数 | 覆盖范围 |
|---|---|---|
| 身份验证 | 3 | Nonce, 登录, 无效签名 |
| 账户 | 7 | 个人资料, 余额, 仓位, 订单, 历史 |
| 市场数据 | 7 | 市场列表, 订单簿, 行情, 价格, K线 |
| 仓位 | 4 | 开仓, 获取, 预估强平价, 平仓 |
| 资金费率 | 4 | 所有费率, 单个费率, 历史 |
| 清算 | 4 | 事件, 配置, 保险基金 |
| ADL | 3 | 排名, 配置, 历史 |
| 推荐系统 | 3 | 状态, 面板, 日志 |
| 积分系统 | 3 | 用户积分, 排行榜, Epoch |
| Earn | 3 | 域名, 产品, 订阅 |
| 充值/提现 | 3 | 准备, 历史 |
2. 场景与边界情况测试 (21 个测试)
文件: test_scenarios_and_edge_cases.py