# ApiAutoTestProject **Repository Path**: senior-boxer/api-auto-test-project ## Basic Information - **Project Name**: ApiAutoTestProject - **Description**: 这是一个完整的api接口自动化测试框架项目,本框架主要是基于 Python + pytest + allure + log + yaml + mysql + redis + 钉钉通知 + Jenkins 实现的接口自动化框架。 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-02-19 - **Last Updated**: 2025-01-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ApiAutoTestProject #### 介绍 这是一个完整的api接口自动化测试框架项目,本框架主要是基于 Python + pytest + allure + yaml + mysql + 各种APP通知 + Jenkins 实现的接口自动化框架。 #### 前言 1. 项目参与者: 高级拳师 1. 个人博客地址: https://blog.csdn.net/qq350146607 1. 请仔细阅读博客,可以帮你避免很多的问题 1. **可以添加微信: clownish-HEP, 添加微信会将你拉倒自动化交流群中,群内有很多热心的小伙伴,但是前提是希望你已经阅读了博客中的所有内容** 1. 你也可以请作者为你解答,当然我不是免费的 **如果对您有帮助,请点亮 小星星 以表支持,谢谢!** #### 项目架构 ``` ├── common // 配置 │ ├── conf.yaml // 公共配置 │ ├── setting.py // 环境路径存放区域 ├── data // 测试用例数据 ├── File // 上传文件接口所需的文件存放区域 ├── logs // 日志层 ├── report // 测试报告层 ├── test_case // 测试用例代码 ├── utils // 工具类 │ └── assertion │ └── assert_control.py // 断言 │ └── assert_type.py // 断言类型 │ └── cache_process // 缓存处理模块 │ └── cacheControl.py │ └── redisControl.py │ └── logUtils // 日志处理模块 │ └── logControl.py │ └── logDecoratrol.py // 日志装饰器 │ └── runTimeDecoratrol.py // 统计用例执行时长装饰器 │ └── mysqlUtils // 数据库模块 │ └── get_sql_data.py │ └── mysqlControl.py │ └── noticUtils // 通知模块 │ └── dingtalkControl.py // 钉钉通知 │ └── feishuControl.py // 飞书通知 │ └── sendmailControl.py // 邮箱通知 │ └── weChatSendControl.py // 企业微信通知 │ └── otherUtils // 其他工具类 │ └── allureDate // allure封装 │ └── allure_report_data.py // allure报告数据清洗 │ └── allure_tools.py // allure 方法封装 │ └── error_case_excel.py // 收集allure异常用例,生成excel测试报告 │ └── localIpControl.py // 获取本地IP │ └── threadControl.py // 定时器类 │ └── readFilesUtils // 文件操作 │ └── caseAutomaticControl.py // 自动生成测试代码 │ └── clean_files.py // 清理文件 │ └── excelControl.py // 读写excel │ └── get_all_files_path.py // 获取所有文件路径 │ └── get_yaml_data_analysis.py // yaml用例数据清洗 │ └── regularControl.py // 正则 │ └── yamlControl.py // yaml文件读写 │ └── recordingUtils // 代理录制 │ └── mitmproxyContorl.py │ └── requestsUtils │ └── dependentCase.py // 数据依赖处理 │ └── requestControl.py // 请求封装 │ └── timeUtils ├── Readme.md // help ├── pytest.ini ├── run.py // 运行入口 ``` #### 安装教程 首先,执行本框架之后,需要搭建好 python、jdk、 allure环境 - 搭建python教程:http://c.biancheng.net/view/4161.html - 搭建jdk环境:https://www.cnblogs.com/zll-wyf/p/15095664.html - 安装allure:https://blog.csdn.net/m0_49225959/article/details/117194318 如上环境如都搭建好,则安装本框架的所有第三方库依赖,执行如下命令: `pip3 install -r requirements.txt` 如果在安装过程中出现如下 Could not find a version 类似的异常, 不用担心,可能是因为你安装的python环境 版本和我不一致导致的,直接 pip install 库名称,不指定版本安装就可以了。 #### 功能说明 - 测试数据隔离, 实现数据驱动 - 支持多接口数据依赖: 如A接口需要同时依赖B、C接口的响应数据作为参数 - 数据库断言: 直接在测试用例中写入查询的sql即可断言,无需编写代码 - 动态多断言: 如接口需要同时校验响应数据和sql校验,支持多场景断言 - 自动生成用例代码: 测试人员在yaml文件中填写好测试用例, 程序可以直接生成用例代码,纯小白也能使用 - 代理录制: 支持代理录制,生成yaml格式的测试用例 - 统计接口的运行时长: 拓展功能,订制开关,可以决定是否需要使用 - 日志模块: 打印每个接口的日志信息,同样订制了开关,可以决定是否需要打印日志 - 钉钉、企业微信通知: 支持多种通知场景,执行成功之后,可选择发送钉钉、或者企业微信、邮箱通知 - 自定义拓展字段: 如用例中需要生成的随机数据,可直接调用 - 多线程执行 - 支持swagger接口文档转成yaml用例,节省用例编写时间