08ea5fbe98
添加用户管理视图、API和状态管理文件
4.5 KiB
4.5 KiB
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格式)
- 日志记录
- 并行测试支持
- 测试重试机制
快速开始
安装依赖
cd test-tools
poetry install
或者使用pip:
pip install -r requirements.txt
配置环境变量
在项目根目录的.env文件中配置test-tools相关环境变量:
# 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脚本:
npm run test:test-tools
或者直接运行Python脚本:
cd test-tools
python main.py
运行增强版主程序:
cd test-tools
python main_enhanced.py
配置说明
test_config.yaml
配置文件位于config/test_config.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已集成到主测试项目中,可以通过以下命令统一执行:
# 执行所有测试(包括test-tools)
npm test
# 只执行test-tools测试
npm run test:test-tools
# 查看test-tools测试报告
npm run test:test-tools:report
开发指南
添加新的测试用例
- 在
test_cases/目录下创建新的测试用例文件 - 按照现有测试用例的格式编写测试代码
- 使用
main.py或main_enhanced.py运行测试
修改配置
- 修改
config/test_config.yaml文件 - 或者在
.env文件中设置环境变量覆盖配置 - 环境变量优先级高于配置文件
依赖项
主要依赖项:
- 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
故障排除
常见问题
-
依赖安装失败
- 确保Python版本 >= 3.10
- 尝试使用
pip install --upgrade pip升级pip
-
测试执行失败
- 检查API服务是否正常运行
- 检查环境变量配置是否正确
- 查看日志文件获取详细错误信息
-
报告生成失败
- 检查报告输出目录是否有写权限
- 确保磁盘空间充足
贡献指南
欢迎提交问题和改进建议。
许可证
MIT License