脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - Python - Python+Requests+PyTest+Excel+Allure 接口自动化测试实战

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

2023-03-01 13:14测试界的吴彦祖 Python

本文主要介绍了Python+Requests+PyTest+Excel+Allure 接口自动化测试实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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

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

两者对比:

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

 

Pytest项目实战:

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

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

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

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

封装有两种方法:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

到此这篇关于Python+Requests+PyTest+Excel+Allure 接口自动化测试实战的文章就介绍到这了,更多相关Requests PyTest Excel Allure自动化测试内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/myh919/article/details/129124115

 

延伸 · 阅读

精彩推荐
  • Pythonpython Selenium实现付费音乐批量下载的实现方法

    python Selenium实现付费音乐批量下载的实现方法

    这篇文章主要介绍了python Selenium实现付费音乐批量下载的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,...

    1treeS8552021-05-21
  • Pythondjango加载本地html的方法

    django加载本地html的方法

    今天小编就为大家分享一篇django加载本地html的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    lixiaodaoaaa12062021-02-25
  • Pythonpython中leastsq函数的使用方法

    python中leastsq函数的使用方法

    这篇文章主要介绍了python中leastsq函数的使用方法,leastsq作用是最小化一组方程的平方和,下面文章举例说明详细内容,具有一的参考价值,需要的小伙伴...

    开始King4842022-11-03
  • Pythonpython实践项目之监控当前联网状态详情

    python实践项目之监控当前联网状态详情

    介绍一个利用Python监控当前联网状态情况的python代码,它可以清楚地知道,你的电脑网络是否是链接成功或失败,下面小编带大家来一起学习它...

    杜明峰6102021-06-29
  • Pythonpython sklearn库实现简单逻辑回归的实例代码

    python sklearn库实现简单逻辑回归的实例代码

    Scikit-learn(sklearn)是机器学习中常用的第三方模块,对常用的机器学习方法进行了封装,这篇文章主要介绍了python sklearn库实现简单逻辑回归的实例代码,需要...

    wwxy2619722021-07-28
  • Python用python写一个windows下的定时关机脚本(推荐)

    用python写一个windows下的定时关机脚本(推荐)

    由于本人经常使用笔记本共享WiFi,但是又不想笔记本开机一夜,每次都是使用dos命令关机,感觉好麻烦,然后小编想到用python写一个定时关机的脚本,具体...

    Mysotflips4332020-09-24
  • Pythonpython将一组数分成每3个一组的实例

    python将一组数分成每3个一组的实例

    今天小编就为大家分享一篇python将一组数分成每3个一组的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    Mr-Cat踏雪三郎11512021-04-19
  • Python十行Python3代码实现把情书写到图片中

    十行Python3代码实现把情书写到图片中

    这篇文章主要为大家介绍了如何利用Python语言实现将情书写到照片中,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起了解一下...

    Carl_奕然10452022-12-05