a2bb6be0b9
- 前端用户 ID 类型从 number 改为 string,与后端保持一致 - 后端用户服务添加 phone 字段处理 - 更新权限相关代码以适配新的 ID 类型 - E2E 测试中添加 phone 字段
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+
快速开始
环境准备
# 安装依赖
pip install -r requirements.txt
# 复制环境变量示例
cp .env.example .env
# 根据实际情况修改 .env 文件
运行测试
# 运行所有测试
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)
# 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 中添加:
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]
最佳实践
- 测试隔离: 每个测试使用独立的数据
- 清理机制: 测试后自动清理创建的数据
- 重试机制: 网络请求失败自动重试
- 覆盖率: 确保 API 覆盖率 > 80%
- 报告: 生成详细的测试报告和覆盖率报告