Files
java-template/utils/README_health_api_test.md
T
2025-09-08 21:27:32 +08:00

6.6 KiB
Raw Blame History

ljwx-boot 健康系统API自动化测试工具

概述

这是一套完整的ljwx-boot健康系统API自动化测试工具,用于验证以下核心功能:

  • ✅ 统一健康数据查询 - 分表查询、快慢表查询、指标配置验证
  • ✅ 健康基线生成 - 个人基线、群体基线、职位风险基线
  • ✅ 健康评分计算 - 多维度健康评分算法
  • ✅ 健康画像生成 - 智能健康画像系统
  • ✅ 健康建议生成 - 个性化健康建议
  • ✅ 健康预测功能 - 健康趋势预测
  • ✅ 任务管理监控 - 定时任务执行状态监控

测试覆盖的API接口

1. 统一健康数据查询 (/health/unified)

接口 方法 功能
/query POST 统一健康数据查询
/query/simple GET 简化健康数据查询
/metrics/supported GET 获取支持的健康指标
/metrics/config GET 获取健康指标配置
/metrics/filter GET 过滤支持的健康指标
/cache/clear POST 清除配置缓存
/table/info GET 获取分表信息

2. 健康任务管理 (/api/health/task)

接口 方法 功能
/status GET 查询任务执行状态
/statistics GET 查询健康数据统计
/tables GET 查询分表信息
/department/{id}/overview GET 获取部门健康概览
/department/ranking GET 获取部门健康排名
/cache/statistics GET 获取缓存统计
/cache/clear/{userId} POST 清理用户缓存
/cache/warmup POST 缓存预热

3. 健康画像 (/health/profile)

接口 方法 功能
/test GET 测试接口
/baseline/generate POST 生成健康基线

快速开始

预备步骤

  1. 配置数据库连接
# 确保 db_config.json 配置正确
{
  "host": "127.0.0.1",
  "port": 3306,
  "database": "test", 
  "user": "root",
  "password": "123456"
}
  1. 测试认证接口
# 先测试认证是否正常
python3 test_auth.py

方式1: 使用Shell脚本 (推荐)

# 基本测试 (使用默认认证URL)
./health_api_test.sh --base-url http://localhost:8080

# 指定认证服务地址
./health_api_test.sh \
  --base-url http://192.168.1.83:8080 \
  --auth-url http://192.168.1.83:3333/proxy-default/auth/user_name

方式2: 直接使用Python脚本

# 安装依赖
pip3 install requests mysql-connector-python

# 执行测试
python3 health_api_test.py \
  --base-url http://localhost:8080 \
  --auth-url http://192.168.1.83:3333/proxy-default/auth/user_name

参数说明

参数 必需 默认值 描述
--base-url ✅ - API服务基础URL
--auth-url ❌ http://192.168.1.83:3333/proxy-default/auth/user_name 认证服务URL

认证配置

测试工具会自动进行身份认证:

  • 用户名: admin
  • 密码: 80a3d119ee1501354755dfc3c4638d74c67c801689efbed4f25f06cb4b1cd776
  • 认证成功后自动在所有请求中携带Bearer Token

注意: 测试工具会自动从数据库加载真实的客户、用户、设备数据。

测试环境配置

测试工具支持多环境配置,详见 health_api_test_config.json:

{
  "test_environments": {
    "local": {
      "base_url": "http://localhost:8080",
      "customer_id": 1,
      "user_id": 1001
    },
    "staging": {
      "base_url": "http://staging.ljwx.com:8080", 
      "customer_id": 2,
      "user_id": 2001
    }
  }
}

测试报告

测试完成后会生成以下文件:

  • 📄 health_api_test.log - 详细测试日志
  • 📊 health_api_test_report_YYYYMMDD_HHMMSS.json - JSON格式测试报告

报告示例

{
  "summary": {
    "base_url": "http://localhost:8080",
    "total_tests": 15,
    "passed_tests": 13,
    "failed_tests": 2,
    "pass_rate": 86.7,
    "total_time": 45.32,
    "avg_response_time": 234.5
  },
  "test_results": [...]
}

安全特性

🔒 安全保护机制:

  • ✅ 自动跳过可能影响数据的破坏性操作
  • ✅ 性能测试需要用户确认
  • ✅ 仅执行读取和查询操作
  • ✅ 保护生产环境数据

性能基准

指标 优秀 良好 可接受 需优化
响应时间 <200ms <500ms <1000ms >2000ms
成功率 >99% >95% >90% <80%

测试场景

1. 基础健康数据查询

  • 统一查询接口
  • 简化查询接口
  • 健康指标配置
  • 分表信息查询

2. 任务管理功能

  • 任务状态监控
  • 数据统计查询
  • 缓存管理操作

3. 部门健康分析

  • 部门健康概览
  • 部门健康排名
  • 组织数据聚合

4. 缓存性能

  • 缓存统计查询
  • 缓存清理操作
  • 缓存预热测试

故障排查

常见问题

  1. 连接失败

    ❌ 错误: 无法连接到服务
    
    • 检查服务地址是否正确
    • 确认服务是否正在运行
    • 检查网络连接
  2. 认证失败

    ❌ 401 Unauthorized
    
    • 检查客户ID和用户ID是否有效
    • 确认API接口权限配置
  3. 数据查询为空

    ⚠️ 查询结果为空
    
    • 检查时间范围是否合理
    • 确认用户是否有健康数据
    • 验证分表配置

调试模式

启用详细日志:

export PYTHONPATH=.
python3 -u health_api_test.py --base-url http://localhost:8080 --customer-id 1 --user-id 1001

扩展开发

添加新测试

  1. 在 HealthAPITester 类中添加新的测试方法:
def test_new_feature(self):
    \"\"\"测试新功能\"\"\"
    result = self.make_request('GET', f"{self.base_url}/new/api")
    self.log_test_result("新功能测试", result['success'], ...)
  1. 在 run_all_tests() 方法中调用:
def run_all_tests(self):
    # 其他测试...
    self.test_new_feature()

自定义配置

修改 health_api_test_config.json 添加新的测试环境或测试场景。

最佳实践

  1. 测试前准备

    • 确保测试环境数据完整性
    • 确认测试用户和客户ID有效
    • 检查服务健康状态
  2. 测试执行

    • 先在开发环境测试
    • 谨慎在生产环境执行
    • 关注测试报告和日志
  3. 结果分析

    • 重点关注失败测试的原因
    • 监控响应时间趋势
    • 验证数据完整性

支持

如遇问题,请检查:

  • 测试日志文件
  • 系统服务状态
  • 网络连接情况
  • API接口文档

注意: 本工具设计为安全的只读测试,不会修改生产数据。如需执行数据修改操作,请在确认安全的情况下手动执行。