news 2026/5/6 12:41:14

Python+Requests+PyTest+Excel+Allure 接口自动化测试实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python+Requests+PyTest+Excel+Allure 接口自动化测试实战

Unittest是Python标准库中自带的单元测试框架,Unittest有时候也被称为PyUnit,就像JUnit是Java语言的标准单元测试框架一样,Unittest则是Python语言的标准单元测试框架。

Pytest是Python的另一个第三方单元测试库。它的目的是让单元测试变得更容易,并且也能扩展到支持应用层面复杂的功能测试。

两者对比:

Pytest项目实战:

第一步、搭建项目框架(创建Gwyc_Api_Script_Pytest项目目录)

依次创建子目录如下:base:存放一些最底层的方法封装,协议,请求发送等。common:存放一些公共方法。config:存放配置文件。data:存放测试数据。 log:存放日志。report:存放报告。tests:存放用例。utils:存放公共类。 readme:用于说明文档。requirements.txt: 用于记录所有依赖包极其版本号,便于环境部署,可以通过pip命令自动生成和安装。

第二步、封装请求方法(base目录下面创建method.py)

封装有两种方法:

第一种:直接调用requests库下面的request方法,并将所有需要用到的参数定义进去,分为实参和行参,实参调用必须要传参,行参可给默认值,调用时可重新赋值也可以使用默认值。这种方法代码量少,不用做判断,request会自动根据传入的参数进行发送请求到服务器。

第二种:分别对各个请求方式按函数的形式封装,分别调用requests进行发送请求。以get和post为例:put,delete请求按一样方法封装,各个请求方式封装完成以后再定义一个主方法,直接调用主方法会自动根据请求方式进行判断调用各个请求函数,这里也可以不对请求方式汇总封装,直接调用各个函数进行发送请求也是可以的。这种方法封装涉及代码量较多,也没有能够很好的用上requests库,因此推荐使用第一种方法。

第三步、封装读取文件的方法(common目录下创建public.py):

1、这里需要用到python的os库,os 库是Python标准库,包含几百个函数,常用的有路径操作、进程管理、环境参数等。

2、分别对获取目录和获取目录下文件进行了封装,直接调用并传入相应的参数即可使用。如下图:

第四步、准备数据(data目录下创建data.xlsx)

将接口写入excel表,将接口需要用到的字段都写进excel然后直接进行读取。

第五步、封装读取文件方法(utils目录下面创建operationExcel.py)

定义一个文件类分别再定义一个方法获取Sheet表,定义一个方法获取出所有数据存放进列表。

第六步、封装登录方法(common目录下面创建login.py)

获取token提供给接口使用,使用@pytest.fixture装饰器每次执行所有用例前执行一遍登录方法获取到token并返回。

第七步、对表头定义全局变量,可以定义在utils目录下面的operationExcel.py文件中

第八步、封装用例(tests目录下面创建test_gwyc_api_all.py)

需要用到@pytest.mark.parametrize()装饰器进行封装用例,调用getExceldatas()将读取出来的用例存放进装饰器,"data"为别名。如下图,分别请求头和参数做了为空判断,并将token插入到headers里面,这样每一个接口都能使用到登录返回的token,不用每次都去调用获取token。

第九步、利用allure生成测试报告。

allure是Pytest的插件包需要下载安装,并将allure里面的bin目录所在的路径配置到PATH环境变量中就可以直接使用报告。

将生成的json文件存放到用例所在的目录下面执行完成以后会在tests目录下面生成一个report目录,下面包含result目录和html目录,前者是存放json文件,后者存放读取后生成的html报告

第十步、封装日志方法(log目录下面创建log.py)

日志在自动化测试中起到的参考作用相对较小以测试报告为准,直接按相应规则配置好直接调用即可。

实战结束

便于自己记忆也能帮上需要帮助的一部分人,何乐而不为! 哈哈

最后作为一位过来人也是希望大家少走一些弯路,在这里我给大家分享一些软件测试的学习资料和我花了3个月整理的软件测试自学全栈,这些资料希望能给你前进的路上带来帮助。

视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/2 22:27:07

儿童食品品牌如何做到70%复购率?

在当前同质化严重的儿童食品市场,一个新品牌要杀出重围有多难?传统玩法是砸钱投广告、铺渠道、做促销,但结果往往是获客成本高企,客户忠诚度低下。 业内有一家新兴儿童食品品牌却走了一条截然不同的路:不依赖大规模广…

作者头像 李华
网站建设 2026/5/6 5:37:59

什么是跨浏览器测试?

跨浏览器测试是在不同的浏览器和操作系统上测试网站或基于网络的应用程序的整体稳定性的过程。这种测试的目的是确保网站或应用程序的功能和性能在各种浏览器和操作系统上都是一致的,从而提供良好的用户体验。 跨浏览器测试包括检查网站或应用程序在不同浏览器上的…

作者头像 李华
网站建设 2026/5/1 8:52:38

4.3 Langfuse 集成实战:追踪 OpenAI、LangChain 和 LangGraph 应用

4.3 Langfuse 集成实战:追踪 OpenAI、LangChain 和 LangGraph 应用 导语:在上一章,我们已经成功地在本地运行了 Langfuse,并初步领略了其强大的追踪能力。现在,是时候将这项能力应用到我们之前构建的各种 AI 应用中了。本章将是一次聚焦于“集成”的实战演练。我们将分别针…

作者头像 李华
网站建设 2026/5/2 20:37:49

5.1 LoRA 微调,YYDS!一文带你入门低成本优化垂直领域大模型

LoRA 微调,YYDS!一文带你入门低成本优化垂直领域大模型 导语:欢迎来到课程的最后一周!在前四周,我们如同“装备大师”,学会了使用 Prompt、工具、框架、评估体系等“外功”来武装我们的 Agent。但面对某些高度专业的垂直领域(如医疗、法律、金融),我们发现,即使是 GP…

作者头像 李华
网站建设 2026/5/5 16:16:31

基于单片机的前照灯随动系统设计

基于单片机的前照灯随动系统设计 第一章 引言 夜间行车时,传统汽车前照灯照射方向固定,车辆转弯时易产生照明盲区,导致驾驶员无法及时发现弯道内侧障碍物,成为引发交通事故的重要隐患。随着汽车智能化发展,前照灯随动调…

作者头像 李华
网站建设 2026/5/3 5:00:31

1.2 AI+产品的新机遇:AI Embedded、Copilot、Agent三大模式详解

1.2 AI产品的新机遇:AI Embedded、Copilot、Agent三大模式详解 随着AIGC技术的快速发展,AI在产品中的应用也越来越成熟。作为产品经理,我们需要理解不同的AI应用模式及其特点,以便在产品设计中做出合适的选择。今天我们就来详细解…

作者头像 李华