6.6 KiB
6.6 KiB
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 | 生成健康基线 |
快速开始
预备步骤
- 配置数据库连接
# 确保 db_config.json 配置正确
{
"host": "127.0.0.1",
"port": 3306,
"database": "test",
"user": "root",
"password": "123456"
}
- 测试认证接口
# 先测试认证是否正常
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. 缓存性能
- 缓存统计查询
- 缓存清理操作
- 缓存预热测试
故障排查
常见问题
-
连接失败
❌ 错误: 无法连接到服务- 检查服务地址是否正确
- 确认服务是否正在运行
- 检查网络连接
-
认证失败
❌ 401 Unauthorized- 检查客户ID和用户ID是否有效
- 确认API接口权限配置
-
数据查询为空
⚠️ 查询结果为空- 检查时间范围是否合理
- 确认用户是否有健康数据
- 验证分表配置
调试模式
启用详细日志:
export PYTHONPATH=.
python3 -u health_api_test.py --base-url http://localhost:8080 --customer-id 1 --user-id 1001
扩展开发
添加新测试
- 在
HealthAPITester类中添加新的测试方法:
def test_new_feature(self):
\"\"\"测试新功能\"\"\"
result = self.make_request('GET', f"{self.base_url}/new/api")
self.log_test_result("新功能测试", result['success'], ...)
- 在
run_all_tests()方法中调用:
def run_all_tests(self):
# 其他测试...
self.test_new_feature()
自定义配置
修改 health_api_test_config.json 添加新的测试环境或测试场景。
最佳实践
-
测试前准备
- 确保测试环境数据完整性
- 确认测试用户和客户ID有效
- 检查服务健康状态
-
测试执行
- 先在开发环境测试
- 谨慎在生产环境执行
- 关注测试报告和日志
-
结果分析
- 重点关注失败测试的原因
- 监控响应时间趋势
- 验证数据完整性
支持
如遇问题,请检查:
- 测试日志文件
- 系统服务状态
- 网络连接情况
- API接口文档
注意: 本工具设计为安全的只读测试,不会修改生产数据。如需执行数据修改操作,请在确认安全的情况下手动执行。