223 lines
7.0 KiB
Markdown
223 lines
7.0 KiB
Markdown
# 整体后端接口性能测试工具说明
|
||
|
||
## 概述
|
||
|
||
这是一个整合了所有后端接口测试的统一工具,将原先的10个独立测试脚本合并为一个,方便统一管理和执行。
|
||
|
||
## 整合的模块
|
||
|
||
1. **基础接口** - 根路径、健康检查、404处理
|
||
2. **认证接口** - 统一登录、员工登录、登出
|
||
3. **工作台接口** - 概览、最近发布、热门产品
|
||
4. **企业接口** - 企业列表、统计、信息、修改密码
|
||
5. **图片接口** - 图片列表、仪表盘、标签管理
|
||
6. **日志接口** - 操作日志、日志文件列表、文件内容
|
||
7. **文章接口** - 文章列表、仪表盘、详情
|
||
8. **员工接口** - 员工列表、统计
|
||
9. **作者接口** - 作者列表、科室列表、搜索
|
||
10. **搜索服务接口** - 独立搜索服务(需单独启动)
|
||
|
||
## 配置说明
|
||
|
||
### 基础配置
|
||
|
||
在脚本顶部可配置:
|
||
|
||
```python
|
||
# API配置
|
||
API_BASE_URL = "http://127.0.0.1:8216" # 主服务地址
|
||
SEARCH_API_BASE_URL = "http://127.0.0.1:8321" # 搜索服务地址
|
||
USERNAME = "13621242430" # 登录用户名
|
||
PASSWORD = "admin123" # 登录密码
|
||
```
|
||
|
||
### 模块开关配置
|
||
|
||
可以根据需要开启或关闭特定模块的测试:
|
||
|
||
```python
|
||
TEST_MODULES = {
|
||
'basic': True, # 基础接口
|
||
'auth': True, # 认证接口
|
||
'dashboard': True, # 工作台
|
||
'enterprise': True, # 企业
|
||
'image': True, # 图片
|
||
'log': True, # 日志
|
||
'article': True, # 文章
|
||
'employee': True, # 员工
|
||
'author': True, # 作者
|
||
'search': False, # 搜索服务(默认关闭)
|
||
}
|
||
```
|
||
|
||
## 使用方法
|
||
|
||
### 基本使用
|
||
|
||
```bash
|
||
# 直接运行
|
||
python 测试整体后端接口性能.py
|
||
```
|
||
|
||
### 自定义配置
|
||
|
||
1. **只测试特定模块**
|
||
|
||
修改 `TEST_MODULES` 字典,将不需要测试的模块设为 `False`
|
||
|
||
2. **修改服务地址**
|
||
|
||
修改 `API_BASE_URL` 和 `SEARCH_API_BASE_URL`
|
||
|
||
3. **修改登录账号**
|
||
|
||
修改 `USERNAME` 和 `PASSWORD`
|
||
|
||
## 输出结果
|
||
|
||
测试完成后会生成两个CSV文件:
|
||
|
||
1. **性能测试结果文件**
|
||
- 文件名格式:`整体后端接口性能测试_YYYYMMDD_HHMMSS.csv`
|
||
- 包含字段:
|
||
- module: 所属模块
|
||
- endpoint: 接口路径
|
||
- method: HTTP方法
|
||
- status_code: 状态码
|
||
- elapsed_time_ms: 耗时(毫秒)
|
||
- success: 是否成功
|
||
- error: 错误信息
|
||
|
||
2. **接口文档文件**
|
||
- 文件名格式:`整体后端接口文档_YYYYMMDD_HHMMSS.csv`
|
||
- 包含字段:
|
||
- module: 所属模块
|
||
- endpoint: 接口路径
|
||
- method: HTTP方法
|
||
- description: 接口描述
|
||
- auth: 是否需要认证
|
||
|
||
## 控制台输出
|
||
|
||
测试过程中会显示:
|
||
|
||
1. **测试配置** - 显示启用/禁用的模块
|
||
2. **登录信息** - 登录结果和耗时
|
||
3. **各模块测试进度** - 实时显示每个接口的测试状态
|
||
4. **整体测试摘要** - 总体统计信息
|
||
5. **各模块统计** - 按模块分组的统计信息
|
||
|
||
示例输出:
|
||
```
|
||
================================================================================
|
||
整合后端接口性能测试工具
|
||
测试时间: 2024-12-29 15:30:00
|
||
主服务地址: http://127.0.0.1:8216
|
||
搜索服务地址: http://127.0.0.1:8321
|
||
================================================================================
|
||
测试配置:
|
||
--------------------------------------------------------------------------------
|
||
启用的模块 (9个): basic, auth, dashboard, enterprise, image, log, article, employee, author
|
||
禁用的模块 (1个): search
|
||
--------------------------------------------------------------------------------
|
||
|
||
================================================================================
|
||
正在登录...
|
||
✓ 登录成功,耗时: 156.23ms
|
||
|
||
================================================================================
|
||
[1/10] 基础接口测试
|
||
================================================================================
|
||
...
|
||
|
||
================================================================================
|
||
整体测试摘要
|
||
================================================================================
|
||
总测试数: 45
|
||
成功: 42 (93.3%)
|
||
失败: 3 (6.7%)
|
||
平均耗时: 45.67ms
|
||
最大耗时: 234.56ms
|
||
最小耗时: 12.34ms
|
||
================================================================================
|
||
|
||
各模块统计:
|
||
--------------------------------------------------------------------------------
|
||
基础接口 | 测试: 7 | 成功: 7 | 成功率: 100.0% | 平均耗时: 23.45ms
|
||
认证接口 | 测试: 3 | 成功: 3 | 成功率: 100.0% | 平均耗时: 156.78ms
|
||
工作台 | 测试: 5 | 成功: 5 | 成功率: 100.0% | 平均耗时: 34.56ms
|
||
...
|
||
--------------------------------------------------------------------------------
|
||
|
||
✓ 性能测试结果已保存到: 整体后端接口性能测试_20241229_153000.csv
|
||
✓ 接口文档已保存到: 整体后端接口文档_20241229_153000.csv
|
||
|
||
✓ 测试完成!
|
||
- 性能数据: 整体后端接口性能测试_20241229_153000.csv
|
||
- 接口文档: 整体后端接口文档_20241229_153000.csv
|
||
```
|
||
|
||
## 优势
|
||
|
||
相比原先的10个独立脚本,整合后的优势:
|
||
|
||
1. **统一管理** - 一个脚本管理所有接口测试
|
||
2. **配置灵活** - 可以快速开启/关闭特定模块
|
||
3. **结果集中** - 所有测试结果汇总到一个文件
|
||
4. **统计完善** - 提供整体和分模块的详细统计
|
||
5. **易于维护** - 修改配置和代码更方便
|
||
6. **执行高效** - 避免重复登录,一次性完成所有测试
|
||
|
||
## 注意事项
|
||
|
||
1. **搜索服务** - 搜索服务模块默认关闭,因为它需要单独启动(端口8321)
|
||
2. **登录账号** - 确保使用的账号有足够的权限访问所有接口
|
||
3. **网络环境** - 确保能访问配置的服务地址
|
||
4. **超时设置** - 所有请求默认30秒超时,如需调整可修改 `timeout=30` 参数
|
||
|
||
## 与原脚本的对应关系
|
||
|
||
| 整合脚本模块 | 原始脚本文件 |
|
||
|------------|-------------|
|
||
| basic | 测试基础接口性能.py |
|
||
| auth | 测试认证接口性能.py |
|
||
| dashboard | 测试工作台接口性能.py |
|
||
| enterprise | 测试企业接口性能.py |
|
||
| image | 测试图片接口性能.py |
|
||
| log | 测试日志接口性能.py |
|
||
| article | 测试文章接口性能.py |
|
||
| employee | 测试员工接口性能.py |
|
||
| author | 测试作者接口性能.py |
|
||
| search | 测试搜索服务接口性能.py |
|
||
|
||
## 故障排查
|
||
|
||
### 登录失败
|
||
- 检查用户名和密码是否正确
|
||
- 检查服务是否正常运行
|
||
- 检查网络连接
|
||
|
||
### 某些接口失败
|
||
- 查看错误信息了解具体原因
|
||
- 检查账号权限
|
||
- 检查数据库连接
|
||
- 检查企业ID绑定(图片、文章等接口需要)
|
||
|
||
### 搜索服务无法连接
|
||
- 确认搜索服务已启动(flask_wht_server_search.py)
|
||
- 确认端口8321未被占用
|
||
- 将 `TEST_MODULES['search']` 设为 `True`
|
||
|
||
## 扩展建议
|
||
|
||
如需添加新的测试模块:
|
||
|
||
1. 在 `TEST_MODULES` 中添加新模块开关
|
||
2. 创建对应的 `test_xxx_apis(token)` 函数
|
||
3. 在 `main()` 函数中调用新函数
|
||
4. 添加对应的 API 文档记录
|
||
|
||
## 联系支持
|
||
|
||
如有问题或建议,请联系开发团队。
|