# PythonInterfaceFrame **Repository Path**: kang-kang520/PythonInterfaceFrame ## Basic Information - **Project Name**: PythonInterfaceFrame - **Description**: 这是python 中基于 requests 库来写的接口测试框架 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-10-12 - **Last Updated**: 2026-01-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # PythonInterfaceFrame ## 介绍 这是python 中基于 requests 库来写的接口测试框架 ,这个框架并非市面上傻瓜式填充,只是提供封装搭建跨框架的思路,因此,你可以在此框架中了解到一些封装,书写的思想,如果对你有用,你可以按照此思想搭建自己的框架。 大致的框架核心流程想必都是大差不差的,最重要的就是封装解耦。 在这里你可以了解到大致这个流程。 - 将常见的请求,工具类进行封装,供调用 - 自动统计测试用例运行结果,并且发送到企业微信/钉钉/飞书平台 ## 软件架构 Python + Request + Pytest + Allure + (钉钉/企业微信/飞书)通知 (你可以后续自己集成Jenkins,或者自己写定时任务都可以) ## 项目目录结构 ~~~~ ├─api 存放接口请求函数 ├─data 存放参数构造数据文件 ├─log 存放系统日志 ├─testcases 测试用例 └─utils 工具类 └─.env 配置文件 └─conftest pytest的钩子(hook)配置文件 └─pytest.ini pytest运行配置文件 └─requirements.txt 安装第三方库的描述文件 └─run_pytest 定时执行文件 ~~~~ ## 安装环境 在终端中执行 ~~~~ pip install -r requirements.txt ~~~~ ## 运行 终端执行 ~~~~ pytest ~~~~ 下面例子为钉钉消息通知例子 ![image-20250717163008811](./images/image-20250717163008811.png) ![image-20250717163035641](./images/image-20250717163035641.png) ## 具体配置解释 ### env文件 首先需要简单配置一下env文件中的内容,这里是控制我们发送消息通知的一些配置 ~~~~ # 被测地址 BASE_URL=http://www.httpbin.org # 系统cookie SESSION=de9116ea-cceb-4246-8191-90d6165f3d7e # 消息通知的 webhook 的 标识 支持 企业微信 钉钉 飞书 WEBHOOK=xxxxxxx # 是否开启消息人员通知 默认false OPEN_OFFICER_NOTIFICATION=true # 被艾特的人员 NOTIFIER_OFFICER=@all,张成龙 # 发送人员通知的标题 DESCRIPTION=xxxx项目接口自动化数据汇总 # 访问测试报告的地址 根据自己公司的实际情况来 没有就不写 DOCUMENT_CENTER=http://192.168.43.222:8080/job/DEMO/allure/ ~~~~ #### 详细解释env文件的作用 ##### BASE_URL 首先是被测试地址 BASE_URL 为什么我将被测试地址写在了这里,因为被测试地址前边大多数都是一致的,只有后面具体请求不一致, 比如:http://www.httpbin.org/user/ 或者 http://www.httpbin.org/user/1 这种形式。 因此为了避免重复书写相同部分,所以我将它提取了出来,放在了env文件配置当中,你可以根据这个思想,放在你想放置的地方,作为统一请求头变量,这样写的好处就是,不用重复去书写前部部分。 你可以看到我在代码的api 初始化文件中提取了这个变量,供后续去使用 ![image-20250717165023283](./images/image-20250717165023283.png) ![image-20250717165138090](./images/image-20250717165138090.png) ##### 系统cookie 场景解决:在接口自动化过程当中,我们会遇到先登录,然后获取系统的session或者cookie,然后后续接口需要携带此用户身份信息,作为后续的请求头携带。因此,在这里提供一种解决办法如下: - 请求登录接口,然后保存到env文件中 - 后续接口请求头读取env文件中的cookie或者session,作为请求头携带 备注:需确保登录接口为第一个运行的测试用例。