# ApiAuto **Repository Path**: liuwenlin2/ApiAuto ## Basic Information - **Project Name**: ApiAuto - **Description**: 基于requests+pytest+allure实现的接口自动化框架,详细说明见文档 - **Primary Language**: Python - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 6 - **Forks**: 1 - **Created**: 2024-06-12 - **Last Updated**: 2025-06-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: pytest, re, pymysql, Allure ## README ## 基于requests+pytest+allure实现的接口自动化框架 ### 一、框架结构介绍  ● configs 项目配置文件目录,管理全局配置  ● data 接口用例文件统一管理目录  ● logs 执行日志输出目录  ● report 测试报告文件存放目录  ● testcase 测试用例执行文件包  ● unit_tools 核心工具包,包括发送请求、执行测试、数据提取、断言、打印日志、输出报告、推送消息等  ● pytest.ini pytest配置文件  ● requirements.txt 项目执行所依赖的所有模块  ● run.py 项目运行主程序 ### 二、框架优势 **适用与各类接口测试**  ● 单接口  ● 关联接口 **参数化,降低代码重复量与耦合性,只需维护接口信息即可**  ● yaml数据参数化 **支持各种断言方式**  ● 响应码断言  ● 相等断言  ● 不相等断言  ● 包含断言  ● 数据库断言 **关联数据提取**  ● 正则表达式提取  ● Json提取 **测试报告**  ● allure可视化报告 **消息推送**  ● 统计测试结果并推送到钉钉 **日志打印:**  ● 执行信息均有日志记录 **持续集成**  ● 使用git进行代码管理  ● jenkins持续集成 ### 三、使用说明 #### 1、YAML接口文件约定格式  ● yaml文件必须包含baseInfo和testCase,最外面 - 表示数据是一个list类型  ● baseInfo下面的关键词     ○ api_name:接口名称     ○ url:接口地址     ○ methond:请求方式     ○ headers(可选):请求头,根据实际接口决定是否填写     ○ cookies(可选):cookie,根据实际项目情况决定是否填写  ● testCase下面的关键词     ○ case_name:测试用例标题     ○ data/json/params(可选):请求体类型,根据你的接口请求决定写什么类型;一般情况下get请求就写params,如果post,这时要跟请求是表单提交就写data,是json格式提交就填 json     ○ files(可选):文件上传,后续file关键字,表示文件上传路径     ○ validation:断言结果,有多种断言模式,如:相等断言(eq)、不相等断言(nq)、包含断言(contain)、数据库断言(db)     ○ extract(可选):提取单个值,提取接口的返回值到全局文件,存放到extract.yaml中,给别的接口使用,达到一个接口之间的上下游参数传递的目的     ○ extract_list(可选):提取多个值,提取接口的返回值到全局文件 #### 2、使用步骤  ● 维护yaml用例文件  ● 在测试用例包目录新建接口用例执行文件  ● 读取测试数据  ● 调用封装好的测试用例执行方法  ● 执行主运行文件 **如果对您有帮助的话,麻烦给作者点个小星星吧!!!**