框架设计思路
做接口自动化,第一步不是急着写测试,而是先把输入、输出和验证方式理顺。接口文档里能确定的内容其实就几样:URL、请求方式、入参、预期返回,以及哪些结果需要查库确认。框架要解决的也是这些事。

我把实施过程拆成四块:
1)先看需求。 先弄清楚接口到底在做什么,别一上来就铺目录。
2)准备数据。 根据开发文档整理接口信息,通常会放进配置文件里;测试数据可以用 Excel 或 YAML,具体选哪种主要看团队习惯。这里还要留出读取配置、读取测试数据、组装参数化数据的能力。如果预期结果要靠数据库校验,再补一层 SQL 执行。
3)生成并执行测试。 这一步才进入 pytest。参数化逻辑放到 conftest.py,测试文件负责调用接口和断言。requests 再封一层,统一输入输出格式,后面维护起来省很多事。日志也别省,不然失败了很难追。
4)看结果。 断言过了就是通过,没过就回到接口、数据或预期结果上排查。
框架跑起来后的顺序大概就是下面这样:

框架基本结构

目录划分不复杂,核心是别把职责混在一起。
1. 测试数据文件
每个文件对应一个接口的数据,文件名可以按 nameA.xlsx 或 nameA.yaml 这类方式来命名,nameA 就是接口名。文件里一般放调用参数、cookie 和预期结果。数据结构越稳定,后面参数化就越轻松。

2. 核心脚本文件
assertion.py:封装断言方法,用来比对返回值和预期结果;config.py:读取配置文件;get_caseparams.py:把测试数据加工成接口需要的参数格式;log.py:记录日志;request.py:封装 HTTPS 请求,主要支持 POST 和 GET;selectDB.py:执行 SQL,并把结果整理成列表,列表里的每条数据是一个字典;testcasetemplate.py:根据caseparams里的测试数据,在 目录下自动生成测试文件。






