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

本文主要介绍了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命令自动生成和安装。
Pytest项目实战:
第一步、搭建项目框架(创建Gwyc_Api_Script_Pytest项目目录)
依次创建子目录如下:base:存放一些最底层的方法封装,协议,请求发送等。common:存放一些公共方法。config:存放配置文件。data:存放测试数据。 log:存放日志。report:存放报告。tests:存放用例。utils:存放公共类。 readme:用于说明文档。requirements.txt: 用于记录所有依赖包极其版本号,便于环境部署,可以通过pip命令自动生成和安装。
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)
日志在自动化测试中起到的参考作用相对较小以测试报告为准,直接按相应规则配置好直接调用即可。

到此这篇关于Python+Requests+PyTest+Excel+Allure 接口自动化测试实战的文章就介绍到这了。
最后
如果你想学习自动化测试,那么下面这套视频应该会帮到你很多
如何逼自己1个月学完自动化测试,学完即就业,小白也能信手拈来,拿走不谢,允许白嫖....
最后我这里给你们分享一下我所积累和整理的一些文档和学习资料,有需要直接领取就可以了!

以上内容,对于软件测试的朋友来说应该是最全面最完整的备战仓库了,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你。

相关文章:
Python+Requests+PyTest+Excel+Allure 接口自动化测试实战
本文主要介绍了PythonRequestsPyTestExcelAllure 接口自动化测试实战,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 Unittest是Python标准库中自带的单元测试框架…...
日志分析系统——ELK
目录 一、ELK概述 ELK的组成 1、ElasticSearch 2、Logstash 3、Kiabana 完整日志采集系统基本特征 ELK的工作原理 二、ELK的部署 1、环境准备 2、部署ElasticSearch软件 3、安装Elasticsearch-head插件 4、Logstash部署 5、Kibana部署 三、FilebeatELK部署 1、安…...
Ubuntu小知识总结
Ubuntu相关的小知识总结 一、Ubuntu系统下修改用户开机密码二、Vmware虚拟机和主机之间复制、粘贴内容、拖拽文件的详细方法问题描述Vmware tools灰色不能安装解决方法小知识点:MarkDown的空格 三、Ubuntu虚拟机网络无法连接的几种解决方法1.重启网络编辑器2. 重启虚…...
2023年全球市场新能源汽车车载充电器总体规模、主要生产商、主要地区、产品和应用细分研究报告
按收入计,2022年全球新能源汽车车载充电器收入大约 百万美元,预计2029年达到 百万美元,2023至2029期间,年复合增长率CAGR为 %。同时2022年全球新能源汽车车载充电器销量大约 ,预计2029年将达到 。2022年中国市场规模大…...
基于stm32控制的ESP8266在设备模式下通讯
一、文章中要用的指令 指令作用ATUART115200,8,1,0,0之前的51通讯是9600,这里的321用的是115200,需要改一下波特率ATCWMODEXX是1代表station(设备)模式 ,X是2代表AP(路由)模式 ,X是…...
用PHP组合数组,生成笛卡尔积。写几个例子
#创作灵感# [红色,白色,黄色,蓝色] [128G,256G,512G] [国行,港版,美版,韩版] 用PHP组合数组,生成笛卡尔积。写几个例子 你可以使用嵌套的循环来生成这些数组的笛卡尔积。以下是一些示例代码: // 示例…...
软设上午题错题知识点7
软设上午题错题知识点7 1、数据流图摆脱系统的物理内容,在逻辑上描述系统的功能、输入、输出和数据存储等,是系统逻辑模型的重要组成部分。 2、HTTPS(Secure Hypertext Transfer Protocol)安全超文本传输协议。 它是一个安全通信…...
让uniGUI支持https
今天在专家的帮助下,成功的让uniGUI支持https了。 首先,去申请个**的证书。我同事去阿里申请的,申请回是一个zip文件,里面有两个文件,一个扩展是per,一个key 然后,把这两个证书文件放到uniGUI…...
iPhone怎么导出微信聊天记录?3个值得收藏的方法
随着时间的推移,微信占用的内存空间会“膨胀”得越来越大。当手机内存不足时,清理微信中的聊天记录是一个可行的方法。但是很多小伙伴觉得有些重要的聊天记录还有用,可能以后需要进行查看。 因此,他们想将一些聊天记录进行导出或…...
【Proteus仿真】【STM32单片机】自动饲养控制系统
文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真STM32单片机控制器,使用LCD1604显示模块、红外传感器、有害气体检测模块、PCF8591 ADC模块,蜂鸣器、DHT11温湿度、SG90舵机、风扇加热加湿等。 主要功能&a…...
【设计模式】模板方法模式
模板方法模式 1. 什么是模板方法 模板方法模式:定义一个操作中的算法骨架(父类),而将一些步骤延迟到子类中。 模板方法使得子类可以不改变一个算法的结构来重定义该算法的 2. 什么时候使用模板方法 实现一些操作时,…...
c语言进制的转换二进制转换10进制
c语言进制的转换之二进制转换10进制 c语言的进制的转换 c语言进制的转换之二进制转换10进制一、二进制转换10进制的方法二、10进制程序打印 一、二进制转换10进制的方法 二进制: 二进制逢二进一,所有的数组是0、1组成 十进制转二进制: 除二反…...
C++ 纠错题总结2
1、for循环中的判断语句: 要注意初始赋值、< 还是 < for(int i 0; i < n; i) 2、cin.getline(char[], int, char) 注意:第二个参数为不是char[]的有效元素个数,因为最后一个元素位置要用来存储 \0 3、函数形参有默认值的,有默认…...
Jmeter性能 —— 事务控制器
统计性能测试结果一定会关注TPS,TPS表示:每秒处理事务数,JMeter默认每个事务对应一个请求。我们可以用逻辑控制器中的事务控制器将多个请求统计为一个事务。 1、添加事务控制器 2、事务控制器参数说明 Generate parent sample:如…...
Android C/C++ native编程NDK开发中logcat的使用
Android C/C native编程NDK开发中logcat的使用 前言具体用法 前言 在NDK开发过程中,C/C层,需要对代码进行一些调试,日志打印是我们解决异常或崩溃的重要手段,这里我就简单介绍下日志打印三步走。 首先我们先看下官方文档关于日志…...
什么是美颜SDK?深入了解直播实时美颜SDK
美颜已经成为了现代社交媒体和直播应用中的重要元素,它使用户能够在拍摄自拍照片或进行直播时改善其外貌特征。美颜技术的普及离不开美颜SDK(软件开发工具包),特别是在直播应用中,直播实时美颜SDK正变得越来越流行。在…...
TensorFlow2从磁盘读取图片数据集的示例(tf.data.Dataset.list_files)
import os import warnings warnings.filterwarnings("ignore") import tensorflow as tf from tensorflow.keras.optimizers import Adam from tensorflow.keras.applications.resnet import ResNet50 from pathlib import Path import numpy as np#数据所在文件夹 …...
Jmeter(九):jmeter_逻辑控制器与HTTP Cookie管理器详解
Jmeter:jmeter_逻辑控制器_事务控制器 事务 性能测试中,事务指的是从端到端,一个完整的操作过程,比如一次登录、一次 筛选条件查询,一次支付等;技术上讲:事务就是由1个或多个请求组成的 事务…...
CVPR2023优秀论文 | AIGC伪造图像鉴别算法泛化性缺失问题分析
作者 | 搜索内容技术部 导读 深度伪造检测算法无法检出未知伪造算法生成的攻击数据。以往算法采取手动建模伪造特征的方式提升模型泛化性,然而这种方式限制了算法可行域,影响了模型泛化性进一步提升,同时这类方法参数量巨大,无法满…...
ISP Pipeline典型场景要点SAT、Bokeh、MFNR、HDR
目录 一、概述 二、通用流程 三、典型场景 1. SAT 2. Bokeh背景虚化 MFNR 3. HDR(DOL、DCG等) 一、概述 本文解释isp pipeline的一些非常典型的场景,不同厂商对pipeline的连接及node的port口设计可能不同,但核心的思想相同…...
Mysql的行级锁到底是怎么加的?醒
1. 架构背景与演进动力 1.1 从单体到碎片化:.NET 的开源征程 在.NET Framework 时代,构建系统主要围绕 Windows 操作系统紧密集成,采用传统的封闭式开发模式。然而,随着.NET Core 的推出,微软开启了彻底的开源与跨平台…...
RePKG终极指南:Wallpaper Engine资源解包与纹理转换完整方案
RePKG终极指南:Wallpaper Engine资源解包与纹理转换完整方案 【免费下载链接】repkg Wallpaper engine PKG extractor/TEX to image converter 项目地址: https://gitcode.com/gh_mirrors/re/repkg 你是否曾经面对Wallpaper Engine的PKG文件束手无策…...
2025 年十大机器学习会议
随着机器学习市场以每年 38.8% 的速度增长,对于企业领导者和数据岗位员工而言,及时了解最新趋势变得愈发重要。虽然阅读机器学习文章和参加人工智能基础等课程是保持知识更新的绝佳途径,但参加机器学习会议也能让许多人受益匪浅。 机器学习会议优势众多,通常包括教程、海报…...
somo完全指南:从零开始配置你的网络监控系统
somo完全指南:从零开始配置你的网络监控系统 【免费下载链接】somo A human-friendly alternative to netstat for socket and port monitoring on Linux and macOS. 项目地址: https://gitcode.com/gh_mirrors/somo/somo somo是一款人性化的网络监控工具&am…...
从钓鱼邮件到Web后门:一次完整的攻击链流量分析复盘(基于BUUCTF案例)
从钓鱼邮件到Web后门:一次完整的攻击链流量分析实战 当企业内网突然出现异常流量时,安全团队往往需要像侦探一样从海量数据包中拼凑出攻击者的完整行动轨迹。这次我们以BUUCTF案例为蓝本,还原一个真实攻击场景:攻击者如何通过邮件…...
Galaxy平台在生物信息学工作流构建中的实战指南
1. Galaxy平台入门:零代码玩转生物信息学 第一次接触生物信息学分析的人,往往会被命令行和编程门槛劝退。我刚开始做基因组数据分析时,光是安装软件依赖就折腾了一周。直到发现了Galaxy这个神器——它把复杂的生信工具封装成可视化模块&#…...
怎么查询MongoDB中数组长度大于N的文档_基于索引的额外长度字段方案
MongoDB中用$expr$size查数组长度大于N的文档虽原生支持,但无法走索引,适合中小集合或配合其他可索引条件使用;而维护tags_length字段并建索引可实现高效范围查询,前提是严格保证写时一致性。用 $expr $size 直接查数组长度大于 …...
Keil5工程瘦身指南:除了`.bat`脚本,还有哪些清理工作空间的高效方法?
Keil5工程瘦身实战:从脚本到系统化管理的进阶指南 当你第17次面对Keil5工程因临时文件堆积导致的编译卡顿,或是发现版本控制仓库被数十MB的中间文件塞满时,或许该重新思考工程管理的本质了。真正的工程瘦身不是简单的文件删除,而…...
Andee101库详解:Arduino 101低功耗BLE人机交互开发指南
1. Andee101 库概述:面向 Arduino 101 的低功耗蓝牙人机交互框架Andee101 是专为 Intel Arduino 101(即 Curie-based 开发板)设计的嵌入式通信库,其核心目标是实现 Arduino 101 硬件与 iOS/Android 平台上的 Annikken Andee 移动应…...
QTableWidget 表格组件攘
7.1 初识三维模型 7.1.1 三维模型的数据载体 随着计算机图形技术的发展,我们或多或少都会见过或者听说过三维模型。笔者始终记得小时候第一次在电视上看到三维动画《变形金刚:超能勇士》的震撼感受;而现在我们已经可以在手机上玩三维游戏《王…...
