# 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. **报告**: 生成详细的测试报告和覆盖率报告
