# python_接口自动化测试框架 **Repository Path**: skying0527/api_test_framework ## Basic Information - **Project Name**: python_接口自动化测试框架 - **Description**: 基于 Python + pytest + requests 搭建的接口自动化测试框架,适用于 Web 项目后端接口的批量回归测试。 ## 项目简介 这个框架主要用来做接口的自动化回归测试,把写好的测试用例跑一遍,自动检查接口返回的状态码、响应内容、响应时间等是否符合预期。支持多环境切换(开发/测试/生产),用例可以按标记筛选执行,跑完之后会自动生成测试报告,方便查看哪些用例通过了、哪些失败了。 - **Primary Language**: Unknown - **License**: BSD-3-Clause - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-07-10 - **Last Updated**: 2026-07-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 接口自动化测试框架 基于 Python + pytest + requests 搭建的接口自动化测试框架,适用于 Web 项目后端接口的批量回归测试。 ## 项目简介 这个框架主要用来做接口的自动化回归测试,把写好的测试用例跑一遍,自动检查接口返回的状态码、响应内容、响应时间等是否符合预期。支持多环境切换(开发/测试/生产),用例可以按标记筛选执行,跑完之后会自动生成测试报告,方便查看哪些用例通过了、哪些失败了。 ## 功能模块 | 模块 | 说明 | |------|------| | config | 环境配置,管理不同环境的接口地址、超时时间、请求头等参数 | | api | 接口封装层,把每个模块的接口封装成类,测试用例直接调用方法就行 | | common/request_handler | 请求引擎,基于 requests.Session 做了二次封装,统一处理请求发送、token 管理、日志记录和异常捕获 | | common/assertions | 断言工具,提供状态码校验、响应时间校验、JSON 字段校验等十几个常用断言方法 | | common/data_utils | 数据工具,支持读取 JSON/CSV 测试数据,随机生成手机号、邮箱等测试数据,还有模板变量替换功能 | | testcases | 测试用例目录,按模块划分,一个文件对应一个业务模块 | | conftest.py | pytest 公共配置,管理 token 获取、测试实例初始化、用例前后置处理 | | run.py | 测试运行入口,支持按环境、标记、关键字筛选执行,一键生成测试报告 | ## 项目结构 ``` api_test_framework/ ├── config/ # 环境配置 │ └── settings.py # 多环境地址、日志、超时配置 ├── api/ # 接口封装层 │ ├── user_api.py # 用户相关接口 │ └── article_api.py # 文章相关接口 ├── common/ # 公共组件 │ ├── request_handler.py # HTTP 请求封装 │ ├── assertions.py # 断言工具类 │ └── data_utils.py # 测试数据工具 ├── data/ # 测试数据文件 │ ├── test_data.json # JSON 格式测试数据 │ └── login.csv # CSV 批量测试数据 ├── testcases/ # 测试用例 │ ├── test_login.py # 登录模块测试 │ └── test_article.py # 文章模块测试 ├── reports/ # 测试报告输出目录 ├── allure-results/ # Allure 原始数据 ├── conftest.py # pytest fixtures 和公共配置 ├── pytest.ini # pytest 运行参数配置 ├── run.py # 测试运行脚本 └── requirements.txt # 项目依赖 ``` ## 快速开始 ### 1. 安装依赖 ```bash pip install -r requirements.txt ``` ### 2. 修改配置 编辑 `config/settings.py`,把 `BASE_URL` 改成你自己的接口地址。 ### 3. 运行测试 ```bash # 跑全部用例 python run.py # 只跑冒烟测试 python run.py -m smoke # 只跑登录模块 python run.py -m login # 指定测试环境 python run.py -e test # 按关键字过滤 python run.py -k "login" # 生成报告(HTML + Allure) python run.py -r ``` ## 测试报告 - **HTML 报告**:`reports/report_xxx.html`,双击直接打开,发给谁都行 - **Allure 报告**:`reports/allure-report/`,功能更全,支持按步骤、严重级别、时间线等维度查看,适合做详细分析 ## 添加新接口 1. 在 `api/` 下新建接口文件,继承 `RequestHandler` 封装接口调用 2. 在 `testcases/` 下新建测试文件,写测试方法 3. 用 `self.assertion` 调断言方法校验结果 4. 在 `conftest.py` 的 `setup` fixture 里初始化接口实例 ## 技术栈 - Python 3.14 - pytest(测试框架) - requests(HTTP 请求) - allure-pytest(测试报告) - pytest-html(HTML 报告) - pytest-rerunfailures(失败重试)