去年接手一个电商项目,接口数量超过200个,手动测试已经撑不住了。我决定搭建一个可落地的接口自动化测试框架,目标是让团队成员能快速编写用例、数据驱动、自动生成报告。今天分享整个搭建过程,附带可运行的代码示例。
场景和目标
假设我们测试一个用户管理模块,包括登录、获取用户列表、创建用户等接口。框架需要支持:
- 统一请求封装(GET/POST/PUT/DELETE)
- 数据驱动(Excel或YAML)
- 断言封装(状态码、JSON字段)
- 报告集成(Allure)
- CI集成(命令行运行)
环境准备
Python 3.8+,安装以下库:
pip install requests pytest pytest-xdist allure-pytest pyyaml openpyxl步骤1:项目结构
api_test_framework/ ├── common/ # 公共模块 │ ├── client.py # 请求封装 │ ├── assert_util.py # 断言封装 │ └── read_data.py # 数据读取 ├── config/ # 配置 │ └── config.yaml ├── data/ # 测试数据 │ └── user_data.yaml ├── testcases/ # 测试用例 │ └── test_user.py ├── reports/ # 报告输出 ├── conftest.py # pytest fixtures ├── pytest.ini └── run.py # 运行入口步骤2:封装请求客户端
common/client.py:统一处理session、超时、日志和异常。
import requests import logging logger = logging.getLogger(__name__) class APIClient: def __init__(self, base_url): self.base_url = base_url self.session = requests.Session() self.session.headers.update({"Content-Type": "application/json