1e3dc11d59
feat(test-suite): 新增测试套件模块,包含API测试客户端和测试配置 fix(api): 修复数据库实体和仓库的删除操作返回值 style(api): 统一数据库表名和字段命名 perf(api): 添加缓存注解提升配置查询性能 test(api): 添加H2测试数据库配置支持 chore: 清理旧的测试文件和脚本
128 lines
2.6 KiB
Markdown
128 lines
2.6 KiB
Markdown
# API Integration Test Suite
|
|
|
|
企业级后台管理系统 API 集成测试套件
|
|
|
|
## 项目结构
|
|
|
|
```
|
|
test-suite/
|
|
├── api/ # API 测试
|
|
│ ├── __init__.py
|
|
│ ├── base_api.py # 基础 API 客户端
|
|
│ ├── auth_api.py # 认证相关测试
|
|
│ ├── config_api.py # 配置管理测试
|
|
│ ├── audit_api.py # 审计日志测试
|
|
│ └── ...
|
|
├── fixtures/ # 测试数据固定装置
|
|
├── helpers/ # 辅助工具
|
|
├── reports/ # 测试报告输出
|
|
├── .env.example # 环境变量示例
|
|
└── README.md # 本文件
|
|
```
|
|
|
|
## 技术栈
|
|
|
|
- Python 3.10+
|
|
- pytest 7.0+
|
|
- requests 2.28+
|
|
- allure-pytest 2.9+
|
|
- pytest-cov 4.0+
|
|
|
|
## 快速开始
|
|
|
|
### 环境准备
|
|
|
|
```bash
|
|
# 安装依赖
|
|
pip install -r requirements.txt
|
|
|
|
# 复制环境变量示例
|
|
cp .env.example .env
|
|
|
|
# 根据实际情况修改 .env 文件
|
|
```
|
|
|
|
### 运行测试
|
|
|
|
```bash
|
|
# 运行所有测试
|
|
pytest tests/ -v
|
|
|
|
# 运行特定测试文件
|
|
pytest tests/api/auth_api.py -v
|
|
|
|
# 生成覆盖率报告
|
|
pytest tests/ --cov=. --cov-report=html --cov-report=term-missing
|
|
|
|
# 生成 Allure 报告
|
|
pytest tests/ --alluredir=allure-results
|
|
allure serve allure-results
|
|
```
|
|
|
|
## 测试分类
|
|
|
|
### 1. 认证测试 (auth_api.py)
|
|
- 用户登录/登出
|
|
- Token 生成与验证
|
|
- 权限验证
|
|
- JWT 令牌管理
|
|
|
|
### 2. 配置管理测试 (config_api.py)
|
|
- 系统配置 CRUD
|
|
- 字典管理 CRUD
|
|
- 配置项验证
|
|
|
|
### 3. 审计日志测试 (audit_api.py)
|
|
- 登录日志查询
|
|
- 操作日志查询
|
|
- 异常日志查询
|
|
- 日志过滤与分页
|
|
|
|
## 配置说明
|
|
|
|
### 环境变量 (.env)
|
|
|
|
```bash
|
|
# API 基础 URL
|
|
BASE_URL=http://localhost:8084
|
|
|
|
# 测试用户凭证
|
|
ADMIN_USERNAME=admin
|
|
ADMIN_PASSWORD=admin123
|
|
|
|
# 测试数据库配置(可选)
|
|
TEST_DB_HOST=localhost
|
|
TEST_DB_PORT=5432
|
|
TEST_DB_NAME=manage_system_test
|
|
TEST_DB_USER=test
|
|
TEST_DB_PASSWORD=test
|
|
|
|
# 测试超时配置
|
|
REQUEST_TIMEOUT=30
|
|
RETRY_COUNT=3
|
|
```
|
|
|
|
## CI/CD 集成
|
|
|
|
在 `.woodpecker.yml` 中添加:
|
|
|
|
```yaml
|
|
test-api:
|
|
image: python:3.11
|
|
commands:
|
|
- pip install -r test-suite/requirements.txt
|
|
- cd test-suite
|
|
- pytest tests/ -v --cov=. --cov-report=html --alluredir=allure-results
|
|
- echo "✅ API 测试完成"
|
|
when:
|
|
event: [push, pull_request]
|
|
```
|
|
|
|
## 最佳实践
|
|
|
|
1. **测试隔离**: 每个测试使用独立的数据
|
|
2. **清理机制**: 测试后自动清理创建的数据
|
|
3. **重试机制**: 网络请求失败自动重试
|
|
4. **覆盖率**: 确保 API 覆盖率 > 80%
|
|
5. **报告**: 生成详细的测试报告和覆盖率报告
|