Files
novalon-manage-system/test-suite/README.md
T
张翔 1e3dc11d59 refactor(test): 重构测试套件结构并优化测试配置
feat(test-suite): 新增测试套件模块,包含API测试客户端和测试配置
fix(api): 修复数据库实体和仓库的删除操作返回值
style(api): 统一数据库表名和字段命名
perf(api): 添加缓存注解提升配置查询性能
test(api): 添加H2测试数据库配置支持
chore: 清理旧的测试文件和脚本
2026-04-01 20:57:24 +08:00

2.6 KiB

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]

最佳实践

  1. 测试隔离: 每个测试使用独立的数据
  2. 清理机制: 测试后自动清理创建的数据
  3. 重试机制: 网络请求失败自动重试
  4. 覆盖率: 确保 API 覆盖率 > 80%
  5. 报告: 生成详细的测试报告和覆盖率报告