Files

Everything is Suitable API Test

黑盒API测试工具,用于对Everything is Suitable API系统执行发布前的质量评估与验证。

功能特性

  • 测试数据管理:支持JSON、CSV等多种格式的测试用例与测试数据存储
  • 内存数据存储:使用内存数据结构管理测试数据,无需数据库
  • API测试功能:支持RESTful API的所有HTTP方法(GET、POST、PUT、DELETE等)
  • 请求构造:支持请求参数构造、请求头配置、认证授权处理
  • 响应验证:支持状态码检查、响应体断言、响应时间阈值验证
  • 依赖处理:支持API依赖关系处理与测试用例执行顺序控制
  • 测试报告:支持HTML和JSON格式的测试报告,包含可视化图表
  • 命令行接口:提供完整的命令行接口,支持测试套件指定和过滤
  • 日志记录:实现详细的日志记录系统

技术栈

  • Python 3.10+
  • Poetry(依赖管理)
  • requests/httpxHTTP客户端)
  • pytest(测试框架)
  • Jinja2(模板引擎)
  • PyYAML(配置文件解析)
  • Click(命令行框架)

安装

前置要求

  • Python 3.10+
  • Poetry 1.6.0+

安装步骤

  1. 克隆项目
git clone <repository-url>
cd api-test-tool
  1. 安装依赖
poetry install
  1. 配置环境变量(可选)
export TEST_USERNAME=admin
export TEST_PASSWORD=admin123

使用

基本命令

# 查看版本
apitest --version

# 查看帮助
apitest --help

# 运行所有测试
apitest run --suite all

# 运行指定模块的测试
apitest run --suite user

# 运行高优先级的测试用例
apitest run --suite all --filter priority=high

# 并发执行测试
apitest run --suite all --parallel --threads 4

# 列出所有测试用例
apitest list --suite all

# 生成测试报告
apitest report --format html --output reports/test.html

# 设置配置
apitest config --set test.parallel=true

# 获取配置
apitest config --get test.parallel

# 验证配置
apitest config --validate

配置文件

配置文件位于 config/config.yaml,包含以下配置项:

  • target: 目标系统配置(base_url、timeout、max_retries
  • auth: 认证配置(login_endpoint、username、password、token_storage
  • test: 测试配置(data_dir、test_cases_dir、parallel、retry_count
  • report: 报告配置(output_dir、formats、include_details
  • logging: 日志配置(level、file、format、console
  • data: 数据管理配置(load_on_startup、auto_refresh、cache_enabled

项目结构

api-test-tool/
├── src/apitest/          # 源代码
│   ├── models/           # 数据模型
│   ├── client/           # HTTP客户端
│   ├── utils/            # 工具类
│   ├── config/           # 配置管理
│   ├── core/             # 核心功能
│   ├── data/             # 数据管理
│   ├── report/           # 报告生成
│   └── cli/              # 命令行接口
├── data/                 # 测试数据
├── test_cases/           # 测试用例
├── reports/              # 测试报告
├── logs/                 # 日志文件
├── config/               # 配置文件
├── tests/                # 测试代码
│   ├── unit/             # 单元测试
│   └── integration/      # 集成测试
├── examples/             # 示例代码
├── docs/                 # 文档
│   ├── api/              # API文档
│   ├── user/             # 用户手册
│   └── developer/        # 开发指南
├── pyproject.toml        # Poetry配置
├── README.md             # 项目说明
└── .gitignore            # Git忽略文件

开发

代码规范

  • 遵循PEP 8代码规范
  • 使用类型注解
  • 使用Google风格文档字符串
  • 代码格式化使用black
  • 代码检查使用flake8
  • 类型检查使用mypy

运行测试

# 运行所有测试
poetry run pytest

# 运行单元测试
poetry run pytest tests/unit/

# 运行集成测试
poetry run pytest tests/integration/

# 生成覆盖率报告
poetry run pytest --cov=apitest --cov-report=html

代码格式化

# 格式化代码
poetry run black src/ tests/

# 检查代码风格
poetry run flake8 src/ tests/

# 类型检查
poetry run mypy src/

贡献

欢迎贡献代码!请阅读 CONTRIBUTING.md 了解贡献指南。

许可证

MIT License

联系方式