mirror of
https://github.com/CJackHwang/ds2api.git
synced 2026-05-05 08:55:28 +08:00
139 lines
2.5 KiB
Markdown
139 lines
2.5 KiB
Markdown
# DS2API 测试文档
|
||
|
||
## 测试文件结构
|
||
|
||
```
|
||
tests/
|
||
├── __init__.py # 测试模块初始化
|
||
├── test_unit.py # 单元测试(不依赖网络)
|
||
├── test_all.py # API 集成测试
|
||
├── test_accounts.py # 账号池测试
|
||
└── run_tests.sh # 测试运行脚本
|
||
```
|
||
|
||
## 快速开始
|
||
|
||
### 运行所有测试
|
||
|
||
```bash
|
||
# 使用脚本
|
||
./tests/run_tests.sh all
|
||
|
||
# 或直接运行
|
||
python3 tests/test_unit.py # 单元测试
|
||
python3 tests/test_all.py # API 测试
|
||
```
|
||
|
||
### 运行单元测试
|
||
|
||
```bash
|
||
python3 tests/test_unit.py
|
||
```
|
||
|
||
测试内容:
|
||
- 配置加载
|
||
- 消息处理(`messages_prepare`)
|
||
- WASM 缓存
|
||
- 模型配置获取
|
||
- 正则表达式模式
|
||
- 流式响应解析
|
||
- **工具调用解析**(`parse_tool_calls`)
|
||
- **Token 估算**
|
||
|
||
### 运行 API 集成测试
|
||
|
||
```bash
|
||
# 完整测试
|
||
python3 tests/test_all.py
|
||
|
||
# 快速测试(跳过耗时测试)
|
||
python3 tests/test_all.py --quick
|
||
|
||
# 指定端点
|
||
python3 tests/test_all.py --endpoint http://your-server.com
|
||
|
||
# 详细输出
|
||
python3 tests/test_all.py --verbose
|
||
```
|
||
|
||
测试覆盖:
|
||
|
||
| 类别 | 测试项 |
|
||
|-----|--------|
|
||
| 基础 | 服务健康检查 |
|
||
| OpenAI | 模型列表、非流式对话、流式对话、无效模型处理、认证错误、Reasoner 模式 |
|
||
| Claude | 模型列表、非流式消息、流式消息、Token 计数 |
|
||
| 高级 | 多轮对话、长输入处理 |
|
||
| **工具调用** | OpenAI 工具调用(流式/非流式)、Claude 工具调用 |
|
||
| **搜索模式** | OpenAI 搜索模式 |
|
||
|
||
### 运行账号测试
|
||
|
||
```bash
|
||
# 测试所有账号登录
|
||
python3 tests/test_accounts.py --login
|
||
|
||
# 测试账号轮换
|
||
python3 tests/test_accounts.py --rotation
|
||
|
||
# 运行所有
|
||
python3 tests/test_accounts.py --all
|
||
```
|
||
|
||
## 配置
|
||
|
||
测试使用 `config.json` 中的配置:
|
||
|
||
```json
|
||
{
|
||
"keys": ["test-api-key-001"],
|
||
"accounts": [
|
||
{"email": "xxx@gmail.com", "password": "xxx", "token": ""}
|
||
]
|
||
}
|
||
```
|
||
|
||
## 预期输出
|
||
|
||
### 单元测试
|
||
|
||
```
|
||
Ran 32 tests in 9.0s
|
||
OK
|
||
```
|
||
|
||
### API 测试
|
||
|
||
```
|
||
📊 测试报告
|
||
总计: 18 个测试
|
||
✅ 通过: 18
|
||
❌ 失败: 0
|
||
⏱️ 耗时: ~60s
|
||
📈 通过率: 100.0%
|
||
```
|
||
|
||
## 故障排除
|
||
|
||
### 服务未运行
|
||
|
||
```
|
||
⚠️ 服务未运行,跳过其他测试
|
||
```
|
||
|
||
解决:先启动服务 `python dev.py`
|
||
|
||
### 认证失败
|
||
|
||
```
|
||
❌ 失败: 状态码: 401
|
||
```
|
||
|
||
解决:检查 `config.json` 中的 API key 和账号配置
|
||
|
||
### 流式测试超时
|
||
|
||
可能是 DeepSeek API 响应慢,可以尝试:
|
||
- 使用 `--quick` 模式
|
||
- 增加测试超时时间
|