123 lines
2.6 KiB
Markdown
123 lines
2.6 KiB
Markdown
|
|
# Viking 检索性能测试套件
|
|||
|
|
|
|||
|
|
本测试套件用于测试火山引擎(Viking)知识库的检索性能,包括延迟、缓存效率、并发吞吐量等指标。
|
|||
|
|
|
|||
|
|
## 目录结构
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
test2/server/tests/
|
|||
|
|
├── viking_retrieval_performance.js # 核心性能测试类
|
|||
|
|
├── quick_test_viking.js # 快速测试脚本
|
|||
|
|
├── test_results/ # 测试结果输出目录
|
|||
|
|
└── README_VIKING_TEST.md # 本文档
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 使用方法
|
|||
|
|
|
|||
|
|
### 前置条件
|
|||
|
|
|
|||
|
|
1. 确保已安装依赖:
|
|||
|
|
```bash
|
|||
|
|
cd test2/server
|
|||
|
|
npm install
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
2. 确保 `.env` 文件配置正确,包含火山引擎相关环境变量:
|
|||
|
|
```
|
|||
|
|
VOLC_ARK_API_KEY=your_api_key
|
|||
|
|
VOLC_ARK_ENDPOINT_ID=your_endpoint_id
|
|||
|
|
VOLC_ARK_KNOWLEDGE_BASE_IDS=your_kb_ids
|
|||
|
|
VOLC_ARK_KNOWLEDGE_ENDPOINT_ID=your_kb_endpoint_id
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 快速测试
|
|||
|
|
|
|||
|
|
运行完整测试套件:
|
|||
|
|
```bash
|
|||
|
|
cd test2/server
|
|||
|
|
node tests/quick_test_viking.js
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
运行特定类型的测试:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 只运行延迟测试
|
|||
|
|
node tests/quick_test_viking.js latency
|
|||
|
|
|
|||
|
|
# 只运行缓存效率测试
|
|||
|
|
node tests/quick_test_viking.js cache
|
|||
|
|
|
|||
|
|
# 只运行并发测试
|
|||
|
|
node tests/quick_test_viking.js concurrency
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 编程使用
|
|||
|
|
|
|||
|
|
在你的代码中集成性能测试:
|
|||
|
|
|
|||
|
|
```javascript
|
|||
|
|
const VikingRetrievalPerformanceTester = require('./tests/viking_retrieval_performance');
|
|||
|
|
|
|||
|
|
const tester = new VikingRetrievalPerformanceTester({
|
|||
|
|
outputDir: './my_test_results',
|
|||
|
|
verbose: true,
|
|||
|
|
warmupRuns: 3
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
// 运行完整测试套件
|
|||
|
|
await tester.runFullSuite();
|
|||
|
|
|
|||
|
|
// 或者单独运行测试
|
|||
|
|
const latencyResults = await tester.testLatency([
|
|||
|
|
{ name: 'My Query', query: '测试查询' }
|
|||
|
|
], 10);
|
|||
|
|
|
|||
|
|
// 生成并保存报告
|
|||
|
|
tester.printSummary();
|
|||
|
|
tester.saveReport('my_test.json');
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 测试类型
|
|||
|
|
|
|||
|
|
### 1. 延迟测试 (Latency Test)
|
|||
|
|
测试不同查询的响应时间,包括:
|
|||
|
|
- 平均延迟
|
|||
|
|
- P50/P95/P99 延迟
|
|||
|
|
- 最小/最大延迟
|
|||
|
|
- 命中率
|
|||
|
|
|
|||
|
|
### 2. 缓存效率测试 (Cache Efficiency Test)
|
|||
|
|
测试缓存命中时的性能提升:
|
|||
|
|
- 首次查询延迟
|
|||
|
|
- 缓存命中延迟
|
|||
|
|
- 加速比(Speedup)
|
|||
|
|
|
|||
|
|
### 3. 并发测试 (Concurrency Test)
|
|||
|
|
测试不同并发级别下的吞吐量:
|
|||
|
|
- 吞吐量(requests/second)
|
|||
|
|
- 成功率
|
|||
|
|
- 总耗时
|
|||
|
|
|
|||
|
|
### 4. 查询类型测试 (Query Types Test)
|
|||
|
|
测试不同类型查询的性能差异。
|
|||
|
|
|
|||
|
|
## 输出结果
|
|||
|
|
|
|||
|
|
测试结果将保存为 JSON 文件,包含:
|
|||
|
|
- 完整的测试数据
|
|||
|
|
- 摘要统计
|
|||
|
|
- 时间戳
|
|||
|
|
|
|||
|
|
控制台会输出格式化的测试摘要。
|
|||
|
|
|
|||
|
|
## 示例测试查询
|
|||
|
|
|
|||
|
|
默认测试查询包括:
|
|||
|
|
- 产品查询(小红、大白)
|
|||
|
|
- 公司信息
|
|||
|
|
- NTC 技术
|
|||
|
|
- 高频问题
|
|||
|
|
- 无结果查询
|
|||
|
|
|
|||
|
|
你可以根据自己的知识库内容自定义测试查询。
|