5.6 KiB
5.6 KiB
RAG 系统并发测试指南
本项目提供了完整的并发测试套件,用于验证 RAG 系统在高并发环境下的性能和稳定性。
📁 测试文件结构
tests/
├── __init__.py # 测试包初始化
├── config.py # 测试配置参数
├── utils.py # 测试工具和辅助函数
├── test_api.py # 基础 API 功能测试(同步版本)
├── test_concurrent.py # 完整的异步并发测试套件
├── quick_test.py # 快速功能验证脚本
└── performance_monitor.py # 性能监控工具
🚀 快速开始
1. 安装依赖
在 VS Code 中按 Ctrl+Shift+P
,然后选择 Tasks: Run Task
→ Install Test Dependencies
或者手动安装:
pip install aiohttp requests psutil
2. 启动服务器
选择 Tasks: Run Task
→ Start RAG Service
启动后台服务
3. 运行测试
基础功能测试
python tests/test_api.py
快速验证测试
python tests/quick_test.py
完整并发测试
python tests/test_concurrent.py
性能监控测试
python tests/performance_monitor.py
🎯 VS Code 任务
通过 VS Code 的任务系统,您可以轻松运行各种测试:
基础任务
Setup RAG Environment
- 设置 Python 环境Start RAG Service
- 启动 RAG 服务(后台)Start RAG Service (Foreground)
- 启动 RAG 服务(前台)Check Server Health
- 检查服务器状态
测试任务
Run API Tests
- 运行基础 API 测试Run Concurrent Tests
- 运行完整并发测试Run Light Concurrent Tests
- 运行轻量级并发测试Run Stress Tests
- 运行压力测试Run Quick Test
- 运行快速验证测试Run Performance Monitor
- 运行性能监控
维护任务
Clean Test Data
- 清理测试数据Install Test Dependencies
- 安装测试依赖
📊 测试类型详解
1. 健康检查测试
- 验证服务器基本可用性
- 测试并发健康检查请求
- 评估响应时间和成功率
2. 文档上传测试
- 测试并发文档上传
- 验证文件处理能力
- 检查向量化和存储性能
3. 聊天查询测试
- 测试并发问答功能
- 验证检索和生成性能
- 评估响应质量和速度
4. 混合操作测试
- 同时进行多种操作
- 测试系统综合处理能力
- 验证资源竞争处理
5. 性能监控
- 实时监控 CPU 和内存使用
- 生成性能报告
- 识别性能瓶颈
📈 测试参数说明
并发级别配置
- 轻量级测试: 2-5 个并发请求
- 标准测试: 10-15 个并发请求
- 压力测试: 20-50 个并发请求
测试参数
num_uploads
: 并发上传文档数量num_queries
: 并发查询请求数量top_k
: 检索文档数量 (默认 3)temperature
: LLM 温度参数 (默认 0.7)
🔍 结果分析
成功率指标
- >95%: 优秀
- 90-95%: 良好
- 80-90%: 可接受
- <80%: 需要优化
响应时间指标
- 文档上传: < 5 秒
- 聊天查询: < 3 秒
- 健康检查: < 100ms
- 文档列表: < 500ms
性能指标
- CPU 使用率: 平均 < 80%
- 内存使用率: < 85%
- QPS: 根据硬件配置而定
📝 生成的报告文件
测试完成后会生成以下文件:
concurrent_test_report.md
- 并发测试报告performance_metrics_YYYYMMDD_HHMMSS.json
- 性能数据performance_chart.png
- 性能图表(如果安装了 matplotlib)
🛠️ 故障排除
常见问题
-
连接错误
ConnectionError: 无法连接到服务器
解决方案:确保 RAG 服务器正在运行
-
依赖缺失
ModuleNotFoundError: No module named 'aiohttp'
解决方案:运行
Install Test Dependencies
任务 -
内存不足
MemoryError
解决方案:减少并发数量或增加系统内存
-
超时错误
TimeoutError
解决方案:检查网络连接和服务器性能
调试模式
在测试文件中添加调试信息:
import logging
logging.basicConfig(level=logging.DEBUG)
🎨 自定义测试
创建自定义测试脚本
import asyncio
import sys
import os
sys.path.append(os.path.dirname(__file__))
from tests.test_concurrent import ConcurrentRAGTester
async def my_custom_test():
async with ConcurrentRAGTester() as tester:
# 自定义测试逻辑
result = await tester.chat_query("我的问题")
print(f"回答: {result['answer']}")
asyncio.run(my_custom_test())
使用测试工具
from tests.utils import TestReporter, TestDataGenerator, PerformanceAnalyzer
from tests.config import CONCURRENT_CONFIG, PERFORMANCE_THRESHOLDS
# 生成测试数据
docs = TestDataGenerator.generate_test_documents(5)
questions = TestDataGenerator.generate_test_questions(10)
# 分析性能
analyzer = PerformanceAnalyzer()
time_stats = analyzer.analyze_response_times(results)
# 生成报告
reporter = TestReporter()
report_files = reporter.generate_report(test_results, "my_test")
修改测试参数
编辑 tests/config.py
中的配置:
# 增加并发数量
CONCURRENT_CONFIG["custom"] = {
"health_checks": 15,
"uploads": 8,
"queries": 20,
"doc_lists": 4
}
📞 支持
如果遇到问题或需要帮助,请:
- 检查服务器日志
- 查看测试输出的错误信息
- 确认所有依赖已正确安装
- 验证系统资源充足
注意: 请在充足的系统资源环境下运行压力测试,避免影响其他应用程序。