# 搜索API对接指南-10-接口级压测脚本

原文第 10 章：压测脚本与用例。

## 10. 接口级压测脚本

仓库提供统一压测脚本：`benchmarks/perf_api_benchmark.py`，用于对以下接口做并发压测：

- 后端搜索：`POST /search/`
- 搜索建议：`GET /search/suggestions`
- 向量服务：`POST /embed/text`
- 翻译服务：`POST /translate`
- 重排服务：`POST /rerank`

说明：脚本对 `embed_text` 场景会校验返回向量内容有效性（必须是有限数值，不允许 `null/NaN/Inf`），不是只看 HTTP 200。

### 10.1 快速示例

```bash
# suggest 压测（tenant 162）
python benchmarks/perf_api_benchmark.py \
  --scenario backend_suggest \
  --tenant-id 162 \
  --duration 30 \
  --concurrency 50

# search 压测
python benchmarks/perf_api_benchmark.py \
  --scenario backend_search \
  --tenant-id 162 \
  --duration 30 \
  --concurrency 20

# 全链路压测（search + suggest + embedding + translate + rerank）
python benchmarks/perf_api_benchmark.py \
  --scenario all \
  --tenant-id 162 \
  --duration 60 \
  --concurrency 30 \
  --output perf_reports/all.json
```

### 10.2 自定义用例

可通过 `--cases-file` 覆盖默认请求模板。示例文件：

```bash
benchmarks/perf_cases.json.example
```

执行示例：

```bash
python benchmarks/perf_api_benchmark.py \
  --scenario all \
  --tenant-id 162 \
  --cases-file benchmarks/perf_cases.json.example \
  --duration 60 \
  --concurrency 40
```
