# 整体后端接口性能测试工具说明 ## 概述 这是一个整合了所有后端接口测试的统一工具,将原先的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 文档记录 ## 联系支持 如有问题或建议,请联系开发团队。