超详细从入门到精通,pytest自动化测试框架实战-测试运行钩子(七)

news2025/3/1 3:56:19

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

pytest中用例执行相关的钩子函数,所有与运行测试相关的钩子都会接收一个pytest.Item对象。

Pytest自动化测试框架:https://www.bilibili.com/video/BV18K411m7FH/

1、pytest_runtestloop

收集完成后执行主运行测试循环的钩子函数。
参数
session:pytest 会话对象

触发时机:用例收集完后执行

默认钩子实现对会话 ( ) 中收集的所有项目执行 runtest 协议session.items,除非收集失败或collectonly设置了 pytest 选项。

如果在任何时候pytest.exit()调用,循环将立即终止。如果在任何点session.shouldfail或session.shouldstop设置,循环在当前项目的运行测试协议完成后终止。

2、pytest_runtest_protocol

这个钩子函数是用来执行单个用例的,对单个测试项执行
runtest 协议

参数
Item:执行的用例
nextitem: 指定的下一条执行的测试用例

pytest默认的runtest协议为如下三个阶段:
设置阶段:
这个阶段主要执行用例:前置夹具

call = pytest_runtest_setup(item)
report = pytest_runtest_makereport(item, call)
pytest_runtest_logreport(report)
pytest_exception_interact(call, report)

调用阶段
这个阶段负责执行测试用例

call = pytest_runtest_call(item)
report = pytest_runtest_makereport(item, call)
pytest_runtest_logreport(report)
pytest_exception_interact(call, report)

拆解阶段
这个阶段主要执行用例:后置夹具

call = pytest_runtest_teardown(item, nextitem)
report = pytest_runtest_makereport(item, call)
pytest_runtest_logreport(report)
pytest_exception_interact(call, report)

3、pytest_runtest_logstart

在单个项目运行
runtest 协议开始时调用

参数
nodeid : 完整的节点ID
location :包含如下三个值的元组(filename, lineno, testname) ,分别为文件名、行号、用例名称

4、 pytest_runtest_logfinish

在单个项目运行
runtest 协议结束时调用

参数
nodeid : 完整的节点ID
location :包含如下三个值的元组(filename, lineno, testname) ,分别为文件名、行号、用例名称

5、pytest_runtest_setup

在运行runTest协议时
设置阶段执行的钩子函数。该钩子函数默认实现的行为是负责执行前置的测试夹具,以及获取前置夹具中yeild返回的数据。

参数
Item:执行的用例

6、pytest_runtest_call

在运行runTest协议时,调用阶段执行的钩子函数,该钩子函数的默认实现的行为是执行:item.runtest()

参数
Item:执行的用例

7、pytest_runtest_teardown

在运行runTest协议时
拆卸阶段 执行的钩子函数。该钩子函数默认实现的行为是负责执行后置的测试夹具。

参数
Item:执行的用例
nextitem: 执行的下一条用例。

8、pytest_runtest_makereport

该钩子函数,在用例执行
runTest协议的过程中,每个阶段都会调用一次。期作用是为了创建测试执行记录器,记录每个阶段执行的结果。

参数
Item:执行的用例
call: 用例执行的阶段。

9、pytest_pyfunc_call

该钩子函数的作用是为了调用底层的测试执行函数。

参数
pyfuncitem: 最终执行的用例函数

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

只有在经历挫折和迷茫的过程中,才能更加坚定地走向成功。让我们不畏困难,勇往直前,为了梦想不断奋斗!

只有奋斗,才会有收获;只有拼搏,才可实现梦想。无论前路多么坎坷,我们都要勇往直前,永不放弃。唯有不断超越自己,才能成就辉煌的人生。

不管你身处何地,不管你面对什么困难,只要你肯努力,就一定能够取得成功。不要放弃你的梦想,勇往直前,付出永远比收获来得晚。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/412525.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据的表示和存储——

目录 浮点数的编码表示 浮点数类型 ​编辑 浮点数的表示 (1)浮点数(Float Point)的表示范围 (2)规格化数形式 (3)IEEE 754标准 其他形式的机器数表示 个人总结 浮点数的编码表…

深度学习_Learning Rate Scheduling

我们在训练模型时学习率的设置非常重要。 学习率的大小很重要。如果它太大,优化就会发散,如果它太小,训练时间太长,否则我们最终会得到次优的结果。其次,衰变率同样重要。如果学习率仍然很大,我们可能会简…

MySQL NDB Cluster使用docker compose一键部署

本文主要用来学习MySQL NDB Cluster 解决学习过程中的痛点:需要开启N台VMware虚拟机,电脑不堪重负 使用docker部署,完美解决 本文使用的docker image: mysql/mysql-cluster:8.0 创建mysql_cluster目录,后续操作都在这个目录下 …

基于html+css的盒子展示7

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

系统集成项目管理工程师软考第三章习题(每天更新)

第一章指路:系统集成项目管理工程师软考第一章习题(已完结)_程序猿幼苗的博客-CSDN博客 第二章指路:系统集成项目管理工程师软考第二章习题(已完结)_程序猿幼苗的博客-CSDN博客 第3章信息系统集成专业技术…

基于密集学习的半监督目标检测

文章目录Dense Learning based Semi-Supervised Object Detection摘要本文方法实验结果Dense Learning based Semi-Supervised Object Detection 摘要 提出了一种基于密集学习(DSL)的无锚点的半监督目标检测算法用于分配多层级和精确的密集像素伪标签的自适应过滤器用于生成稳…

C++13:搜索二叉树

目录 搜索二叉树概念 模拟实现搜索二叉树 插入函数实现 插入函数实现(递归) 查找函数实现 删除函数实现 删除函数实现(递归) 中序遍历实现 拷贝构造函数实现 析构函数实现 赋值重载 我们在最开始学习二叉树的时候,…

【网络】Internet 协议版本 6 (IPv6)

文章目录IPv6 寻址文本表示形式地址类型IPv6 路由邻居发现IPv6 自动配置自动配置类型IPv6 移动性禁用或启用 IPv6配置步骤代码启用操作系统启用来源Internet 协议版本 6 (IPv6) 是 Internet 的网络层的标准协议套件。 IPv6 旨在解决当前版本的 Internet 协议套件(称…

二叉树前中后层遍历(递归/非递归)(简单易懂(*^ー^))

文章目录二叉树的遍历1 先序遍历1.1 递归1.2 非递归2 中序遍历2.1 递归2.2 非递归3 后序遍历3.1 递归3.2 非递归4 层序遍历5 前中后层序完整可运行代码(C)二叉树的遍历 1 先序遍历 1.1 递归 先序遍历(Preorder Traversal),即根左右的顺序遍…

Anaconda3安装配置/创建删除虚拟环境/在特定虚拟环境下安装库

1. Anaconda3彻底卸载 先说Anaconda3的卸载,在Anaconda3安装路径下有一个Uninstall-Anaconda3.exe,右键以“管理员身份运行”,可执行完全卸载 2. 下载与安装Anaconda3 官网地址https://repo.anaconda.com/ 点击Anaconda Distribution&…

自学大数据第14天NoSQL~MongoDB及其命令

这几天主要是看了一下mongodb的一些知识,网上也有一些教程,今天主要是复习一下mongodb 启动mongodb 在连接mongodb前首先要创建数据存放目录与日志存放目录,还得保证当前用户对这两个目录有相应的读写操作 mongod --dbpath/usr/local/mongodb/data/db/ --logpath/usr/lcoal/mon…

(四)【软件设计师】计算机系统—基础单位进制

文章目录一、计算机基础单位二、进制1.进制表示符号2.进制之间的转换:(1)十进制转换为二进制(例子:173)(2)十进制转换为八进制(3)十进制转换为十六进制(4)二进制转换为十进制&#x…

Linux入门 - 最常用基础指令汇总

目录 ls指令 pwd指令 cd指令 touch指令 mkdir指令 rmdir指令 && rm 指令 man指令(重要) cp指令(重要) mv指令(重要) cat指令 more指令 less指令(重要) head指令…

交换机PCB板布局布线注意事项

由于板卡在工作中会受到各种各样的干扰,这些干扰不仅影响系统运行的稳定性,同时也有可能带来误差,因此考虑如何抑制干扰,提高电磁兼容性是PCB布局布线时的一项重要任务。海翎光电的小编现将PCB布局布线中需要主要考虑的因素列在下…

银行数字化转型导师坚鹏:深度解读《中华人民共和国数据安全法》

深度解读《中华人民共和国数据安全法》 ——中国数据安全立法 助力企业稳健发展课程背景: 很多金融机构存在以下问题: 不清楚数据安全法立法背景? 不知道如何理解数据安全法相关政策? 不清楚如何数据安全进行合规建设&#xf…

【前端之旅】Vue入门笔记

一名软件工程专业学生的前端之旅,记录自己对三件套(HTML、CSS、JavaScript)、Jquery、Ajax、Axios、Bootstrap、Node.js、Vue、小程序开发(Uniapp)以及各种UI组件库、前端框架的学习。 【前端之旅】Web基础与开发工具 【前端之旅】手把手教你安装VS Code并附上超实用插件…

计算机组成原理第二章数据的表示与运算(中)

提示:且行且忘且随风,且行且看且从容 文章目录前言2.2.0 奇偶校验码(大纲已删)2.2.1 电路的基本原理 加法器设计2.2.2 并行进位加法器2.2.3 补码加减运算器2.2.4 标志位的生成2.2.5 定点数的移位运算2.2.62.2.6.1 原码的乘法运算2.2.6.2 补码的乘法运算2…

Linux下异步socket客户端

文章目录socket 客户端1. 创建socketsocket()函数返回值2. 设置socket的属性connect函数sockaddr_in结构体inet_pton函数3. fcntl设置非阻塞4. recv函数socket 客户端 1. 创建socket socket()函数 #include <sys/socket.h> int socket(int domain, int type, int proto…

四、线程安全,synchronized,volatile(JMM)【4/12 5/12 6/12】【多线程】

4. 多线程带来的的风险-线程安全 (重点) 4.1 观察线程不安全 static class Counter {public int count 0;void increase() {count;} } public static void main(String[] args) throws InterruptedException {final Counter counter new Counter();Thread t1 new Thread(()…

数据结构——排序(4)

作者&#xff1a;几冬雪来 时间&#xff1a;2023年4月12日 内容&#xff1a;数据结构排序内容讲解 目录 前言&#xff1a; 1.快速排序中的递归&#xff1a; 2.小区间优化&#xff1a; 3.递归改非递归&#xff1a; 4.归并排序&#xff1a; 5.归并排序的非递归形式&…