复制示例配置文件并修改:
cp config.json.example config.json编辑 config.json,填入你的 API 信息:
{
"api": "openai",
"url": "https://your-api-url.com",
"api_key": "YOUR_API_KEY_HERE", // ⚠️ 替换为你的 API Key
"model": "your-model-name",
"parallel": 8,
"number": 50,
"test_schedule": {
"total_tests": 48, // 测试次数
"interval_seconds": 1800, // 间隔时间(秒)
"description": "24小时测试,每30分钟一次"
}
}./run_all.shpython3 run_test.py --config config.jsonpython3 api_perf_test.py \
--url "https://your-api-url.com" \
--api-key "YOUR_API_KEY" \
--model "your-model" \
--tests 48 \
--interval 1800测试完成后,自动或手动生成 HTML 报告:
python3 generate_report.py --json-file test_results.json --output report.htmlHTML 报告包含以下可视化图表:
- 延迟趋势图 - 平均延迟和 P99 延迟随时间变化
- TTFT 趋势图 - 首字延迟(Time To First Token)
- RPS 趋势图 - 每秒请求数
- 生成速度图 - Token 生成速度
- TPOT 趋势图 - 每 Token 时间
- 成功率图 - 请求成功率
验证工具是否正常工作:
./quick_test.sh这将创建模拟数据并生成测试报告。
stability_test.log- 详细测试日志test_results.json- 结构化测试结果report.html- 可视化 HTML 报告
nohup python3 run_test.py --config config.json > test_output.log 2>&1 &# 快速测试(5次,间隔1分钟)
python3 api_perf_test.py \
--url "https://api.example.com" \
--api-key "sk-xxxx" \
--model "gpt-3.5-turbo" \
--tests 5 \
--interval 60
# 高并发测试
python3 api_perf_test.py \
--url "https://api.example.com" \
--api-key "sk-xxxx" \
--model "gpt-3.5-turbo" \
--parallel 16 \
--number 100| 指标 | 全称 | 说明 |
|---|---|---|
| Latency | Latency | 请求总延迟(从发送到接收完整响应) |
| TTFT | Time To First Token | 首字延迟(从发送到接收第一个 token) |
| TPOT | Time Per Output Token | 每 token 时间(生成速度的倒数) |
| RPS | Requests Per Second | 每秒请求数 |
| Gen. toks/s | Generated Tokens/s | Token 生成速度 |
| Success Rate | Success Rate | 请求成功率 |
解决方案:安装 evalscope
pip install evalscope解决方案:检查 config.json 中的 api_key 是否正确
解决方案:查看日志文件 stability_test.log 获取详细错误信息
⚠️ API Key 安全:不要将包含真实 API Key 的config.json提交到版本控制- 💾 磁盘空间:长时间测试会产生大量日志,注意磁盘空间
- 🌐 网络连接:HTML 报告需要网络连接加载 Chart.js
- ⏰ 测试时间:长时间测试建议使用
nohup或screen
查看完整文档:
python3 api_perf_test.py --help
python3 generate_report.py --helpMIT License