去年接手一个电商项目,接口数量超过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