基于 Python + Pytest 的接口自动化测试框架。
本项目是一个面向测试开发学习和实际接口测试场景的自动化测试平台。
通过 Python 搭建接口自动化测试框架,实现了接口请求封装、测试数据管理、配置管理、日志记录以及自动化测试报告生成。
项目采用分层设计,提高代码复用性和可维护性。
- Python
- Pytest
- Requests
- PyYAML
- Allure Report
interface-test-platform
│
├── app
│ └── main.py # 模拟接口服务
│
├── common
│ ├── request.py # HTTP请求封装
│ ├── logger.py # 日志模块
│ └── __init__.py
│
├── config
│ └── config.yaml # 环境配置文件
│
├── data
│ └── login.yaml # 测试数据文件
│
├── testcases
│ └── test_login.py # 登录接口测试用例
│
├── logs
│ └── test.log # 测试日志
│
├── reports
│ ├── allure-results # Allure测试数据
│ └── allure-report # 测试报告
│
├── requirements.txt # 项目依赖
│
└── README.md # 项目说明
对 Requests 进行二次封装,实现统一的 HTTP 请求调用。
支持:
- GET请求
- POST请求
- 请求参数传递
- 返回结果处理
使用 YAML 文件管理测试数据,实现:
- 测试数据与代码分离
- 参数化测试
- 多场景测试
基于 Pytest 实现:
- 测试用例管理
- 参数化执行
- 断言校验
实现测试过程日志记录,包括:
- 请求地址
- 请求参数
- 返回结果
- 异常信息
集成 Allure,实现:
- 测试结果可视化
- 测试步骤展示
- 测试通过率统计
Python >= 3.10
安装依赖:
pip install -r requirements.txt运行:
python app/main.py启动成功后:
Running on http://127.0.0.1:5000
运行:
pytestpytest --alluredir=reports/allure-resultsallure generate reports/allure-results -o reports/allure-report --cleanallure open reports/allure-report当前已完成登录接口自动化测试:
- 测试接口:登录接口
- 测试场景:正常登录
- 测试用例数量:3
- 测试结果:全部通过
- 采用接口自动化测试分层设计
- 实现测试代码与测试数据分离
- 封装公共请求方法,提高代码复用率
- 集成日志系统,方便问题定位
- 集成 Allure 生成可视化测试报告
- 增加更多业务接口测试
- 增加异常场景测试
- 增加数据库校验
- 集成 Jenkins 持续集成
- 接入接口定时自动化执行