Files
everything-is-suitable/everything-is-suitable-test/test-tools

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

开发指南

添加新的测试用例

  1. test_cases/目录下创建新的测试用例文件
  2. 按照现有测试用例的格式编写测试代码
  3. 使用main.pymain_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