Files
张翔 08ea5fbe98 feat(admin): 添加用户管理相关文件
添加用户管理视图、API和状态管理文件
2026-03-28 14:37:29 +08:00

205 lines
4.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# test-tools - API测试工具
## 概述
test-tools是一个基于Python的API测试工具模块,提供完整的API测试功能,包括认证、测试用例执行、报告生成等功能。
## 目录结构
```
test-tools/
├── config/ # 配置文件目录
│ ├── test_config.yaml # 测试配置文件
│ └── settings.py # 配置管理模块
├── core/ # 核心功能模块
├── data/ # 测试数据目录
├── utils/ # 工具函数目录
├── test_cases/ # 测试用例目录
├── interfaces/ # 接口定义目录
├── main.py # 主程序入口
├── main_enhanced.py # 增强版主程序
├── requirements.txt # Python依赖
├── pyproject.toml # Poetry配置文件
└── README.md # 本文档
```
## 功能特性
- API测试自动化
- 支持多种认证方式
- 测试用例管理
- 测试报告生成(JSON、HTML格式)
- 日志记录
- 并行测试支持
- 测试重试机制
## 快速开始
### 安装依赖
```bash
cd test-tools
poetry install
```
或者使用pip
```bash
pip install -r requirements.txt
```
### 配置环境变量
在项目根目录的`.env`文件中配置test-tools相关环境变量:
```bash
# test-tools API测试配置
TEST_TOOLS_API_BASE_URL=http://127.0.0.1:8080/api
TEST_TOOLS_API_TIMEOUT=30
TEST_TOOLS_API_MAX_RETRIES=3
TEST_TOOLS_AUTH_LOGIN_ENDPOINT=/sys/auth/login
TEST_TOOLS_AUTH_USERNAME=admin
TEST_TOOLS_AUTH_PASSWORD=admin123
TEST_TOOLS_AUTH_TOKEN_STORAGE=memory
TEST_TOOLS_REPORT_OUTPUT_DIR=test-results/test-tools/reports
TEST_TOOLS_LOGGING_LEVEL=INFO
TEST_TOOLS_LOGGING_FILE=test-results/test-tools/logs/test.log
TEST_TOOLS_LOGGING_CONSOLE=true
```
### 运行测试
使用npm脚本:
```bash
npm run test:test-tools
```
或者直接运行Python脚本:
```bash
cd test-tools
python main.py
```
运行增强版主程序:
```bash
cd test-tools
python main_enhanced.py
```
## 配置说明
### test_config.yaml
配置文件位于`config/test_config.yaml`,支持环境变量覆盖:
```yaml
api:
base_url: ${TEST_TOOLS_API_BASE_URL:http://127.0.0.1:8080/api}
timeout: ${TEST_TOOLS_API_TIMEOUT:30}
max_retries: ${TEST_TOOLS_API_MAX_RETRIES:3}
auth:
login_endpoint: ${TEST_TOOLS_AUTH_LOGIN_ENDPOINT:/sys/auth/login}
username: ${TEST_TOOLS_AUTH_USERNAME:admin}
password: ${TEST_TOOLS_AUTH_PASSWORD:admin123}
token_storage: ${TEST_TOOLS_AUTH_TOKEN_STORAGE:memory}
report:
output_dir: ${TEST_TOOLS_REPORT_OUTPUT_DIR:../test-results/test-tools/reports}
formats:
- json
- html
logging:
level: ${TEST_TOOLS_LOGGING_LEVEL:INFO}
file: ${TEST_TOOLS_LOGGING_FILE:../test-results/test-tools/logs/test.log}
console: ${TEST_TOOLS_LOGGING_CONSOLE:true}
```
## 测试报告
测试报告将生成在`test-results/test-tools/reports/`目录下,支持以下格式:
- JSON格式:`test_results.json`
- HTML格式:`test_results.html`
日志文件将生成在`test-results/test-tools/logs/`目录下。
## 集成到主测试项目
test-tools已集成到主测试项目中,可以通过以下命令统一执行:
```bash
# 执行所有测试(包括test-tools)
npm test
# 只执行test-tools测试
npm run test:test-tools
# 查看test-tools测试报告
npm run test:test-tools:report
```
## 开发指南
### 添加新的测试用例
1.`test_cases/`目录下创建新的测试用例文件
2. 按照现有测试用例的格式编写测试代码
3. 使用`main.py``main_enhanced.py`运行测试
### 修改配置
1. 修改`config/test_config.yaml`文件
2. 或者在`.env`文件中设置环境变量覆盖配置
3. 环境变量优先级高于配置文件
## 依赖项
主要依赖项:
- Python >= 3.10
- requests >= 2.31.0
- httpx >= 0.25.0
- pyyaml >= 6.0
- bcrypt >= 4.0.0
- psycopg2-binary >= 2.9.0
- python-dotenv >= 1.0.0
开发依赖项:
- pytest >= 7.4.0
- pytest-asyncio >= 0.21.0
- pytest-cov >= 4.1.0
- black >= 23.0.0
- flake8 >= 6.0.0
- mypy >= 1.5.0
## 故障排除
### 常见问题
1. **依赖安装失败**
- 确保Python版本 >= 3.10
- 尝试使用`pip install --upgrade pip`升级pip
2. **测试执行失败**
- 检查API服务是否正常运行
- 检查环境变量配置是否正确
- 查看日志文件获取详细错误信息
3. **报告生成失败**
- 检查报告输出目录是否有写权限
- 确保磁盘空间充足
## 贡献指南
欢迎提交问题和改进建议。
## 许可证
MIT License