web自动化3-pytest前后夹具

news2024/11/14 12:11:31

 一、pytest前后置(夹具)-fixture

夹具的作用:在用例执行之前和之后,需要做的准备工作之前和收尾工作。

用于固定测试环境,以及清理回收资源。

举个例子:访问一个被测页面-登录页面,执行测试用例过程中,上来就输入账户、密码、验证码吗,实际上是先获取浏览器的驱动,有了驱动才去执行用例的执行,用例执行完后关闭页面。

夹具要做的事情就是在执行用例之前,把驱动获取到,用例执行完之后,页面需要关闭就放到固定的测试环境之后。

pytest内部提供了多种类型的夹具

1、已经定义好的夹具类型一共有以下几种类型:

  • 函数
  • 方法
  • 模块

2、自定义夹具:fixture

使用fixture灵活调度固定的测试环境

1.1、fixture基本介绍

是pytest当中的一个装饰器

@pytest.fixture(夹具的作用域、参数化、自动使用)

@pytest.fixture(scope="function",autouse=True)
def go_shop():
    print("使用自动保持登录的id")  # 代码段1
    yield  # 不需要返回任何的内容
    print("登录成功之后的用户id")  # 代码段2

每一个函数级别的用例,它都会在你用例执行之前执行代码段1,用例执行之后执行代码段2

1、自动调用夹具

2、不自动调用夹具 

1.2、项目中的使用

fixture一般在项目中集中管理-封装成一个模块。

  • 整个项目中会定义一个py模块:conftest.py专门用来放置自定义的fixture,文件名固定而且不能修改。
  • 在使用fixture不需要进行导包,可以直接使用。不管是在项目根目录还是用例目录都会自动识别进行调用。
  • 执行顺序:多个fixture-从最外边到最里边以及从最上边到最下边,定位fixture然后执行。有相同的名字的,根据ASCII编码进行筛选选中,然后进行一个集中使用。

也就是将定义fixture的那段代码放在conftest.py文件中即可。

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

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

相关文章

my2sql —— go语言版binlog解析及闪回工具

之前学习过python语言版binlog解析及闪回工具 MySQL闪回工具简介 及 binlog2sql工具用法 最近听同事介绍有了新的go语言版的my2sql。优点是不需要安装一大堆依赖包,直接可以安装使用,并且解析更高效,试用一下。 一、 下载安装 1. 软件下载 …

React函数组件Hook

问题: 相对于类组件, 函数组件的编码更简单, 效率也更高, 但函数组件不能有state (旧版) 解决: React 16.8版本设计了一套新的语法来让函数组件也可以有state Hook 是 React 16.8 的新增特性。它可以让你在不编写 class 的情况下使用 state 以及其他的 React 特性 Hook也叫钩子…

从边缘设备丰富你的 Elasticsearch 文档

作者:David Pilato 我们在之前的文章中已经了解了如何丰富 Elasticsearch 本身和 Logstash 中的数据。 但如果我们可以从边缘设备中做到这一点呢? 这将减少 Elasticsearch 要做的工作。 让我们看看如何从具有代理处理器的 Elastic 代理中执行此操作。 E…

Introduction to Data Mining 数据挖掘

Why Data Mining? • The Explosive Growth of Data: from terabytes to petabytes — Data collection and data availability ◦ Automated data collection tools, database systems, Web, computerized society — Major sources of abundant data ◦ Business: Web, e-co…

Linux-shell中变量的引用($变量名,${变量名})

1. 背景 最近写脚本时,发现有个变量在某个地方生效,某个地方又不生效,引用方式为 $变量名。 2. 方法 其实 shell 脚本中对变量的引用有两种方式: $变量名${变量名} 用下面的脚步,去测试效果: a100 b2…

excel处理_多个excel文件合并

data文件夹内,有多个xls文件。每个xls文件格式一致, 表头占两行,表位汇总数据占一行。 表头两行,拼接前第二行设置为表头,且删除第二行。 在python读入的dataframe中,游轮成本表是表头,第一行是…

Python 深度学习第二版(GPT 重译)(四)

九、高级计算机视觉深度学习 本章涵盖 计算机视觉的不同分支:图像分类、图像分割、目标检测 现代卷积神经网络架构模式:残差连接、批量归一化、深度可分离卷积 可视化和解释卷积神经网络学习的技术 上一章通过简单模型(一堆Conv2D和MaxP…

【鸿蒙HarmonyOS开发笔记】通知模块之为通知添加行为意图

概述 WantAgent提供了封装行为意图的能力,这里所说的行为意图主要是指拉起指定的应用组件及发布公共事件等能力。HarmonyOS支持以通知的形式,将WantAgent从发布方传递至接收方,从而在接收方触发WantAgent中指定的意图。例如,在通…

js【详解】深拷贝

什么是深拷贝? 对于引用类型的数据,才有深浅拷贝的说法 浅拷贝 :执行拷贝的变量只复制被拷贝变量内存的引用数据的地址。 被拷贝变量内地址指向的数据发生变化时,执行拷贝的变量也会同步改变 深拷贝: 在堆内存中开…

迁移学习的技术突破与应用前景

目录 前言1 迁移学习技术1.1 原理与分类1.2 主要挑战 2 迁移学习应用2.1 计算机视觉2.2 医疗健康 3 未来展望3.1 推动各领域发展3.2 提高模型泛化能力和效果3.3 在新兴领域中广泛应用 结语 前言 迁移学习作为机器学习领域的重要技术之一,以其能够将从一个任务中学到…

[C语言]——内存函数

目录 一.memcpy使用和模拟实现(内存拷贝) 二.memmove 使用和模拟实现 三.memset 函数的使用(内存设置) 四.memcmp 函数的使用 C语言中规定: memcpy拷贝的就是不重叠的内存memmove拷贝的就是重叠的内存但是在VS202…

腾讯和香港中文大学发布文字生成视频AI模型DynamiCrafter

前言 在数字化时代,视觉内容的创造和动态化已成为创意表达和信息传递的重要工具。最近由香港中文大学、腾讯AI Lab联合研发的视频AI模型DynamiCrafter,这一模型能够将静态图像转化为逼真的动态视频,开创了文本到视频生成技术的新纪元。 Hugg…

Nexus介绍

1.什么是Nexus Nexus是一个强大的仓库管理器,主要用于搭建和管理公司内部的软件构件仓库。 以下是一些关于Nexus的重要信息: 功能:Nexus可以作为Maven、NuGet、npm等工具的仓库服务器,允许用户在本地网络中共享和管理依赖项和构…

计算机三级——网络技术(综合题第二题)

路由器工作模式 用户模式 当通过Console或Telnet方式登录到路由器时,只要输入的密码正确,路由器就直接进入了用户模式。在该模式下,系统提示符为一个尖括号(>)。如果用户以前为路由器输入过名称,则该名称将会显示在尖指号的前…

目标检测——YOLOX算法解读

论文:YOLOX: Exceeding YOLO Series in 2021(2021.7.18) 作者:Zheng Ge, Songtao Liu, Feng Wang, Zeming Li, Jian Sun 链接:https://arxiv.org/abs/2107.08430 代码:https://github.com/Megvii-BaseDetection/YOLOX YOLO系列算法…

序列化与反序列化介绍

文章目录 一、序列化与反序列化二、PHP反序列化漏洞成因三、JAVA反序列化 一、序列化与反序列化 在PHP语言开发层面上基本都是围绕着serialize(),unserialize()这两个函数。serialize()函数序列化对象后,可以很方便的将它传递给其他需要它的地方&#x…

【数据结构和算法初阶(C语言)】二叉树的顺序结构--堆的实现/堆排序/topk问题详解---二叉树学习日记②12

目录 ​编辑 1.二叉树的顺序结构及实现 1.1 二叉树的顺序结构 2 堆的概念及结构 3 堆的实现 3.1堆的代码定义 3.2堆插入数据 3.3打印堆数据 3.4堆的数据的删除 3.5获取根部数据 3.6判断堆是否为空 3.7 堆的销毁 4.建堆以及堆排序 4.1堆排序---是一种选择排序 4.2升序建大堆&a…

LeetCode每日一题【206. 反转链表】

思路:双指针,一前一后,逐个把指向后面的指针指向前面。 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), ne…

自动化的免下车服务——银行、餐厅、快餐店、杂货店

如果您在20世纪70年代和2020年分别驾车经过免下车服务餐厅(汽车穿梭餐厅),您会发现,唯一的不同是排队的车型。50多年来,免下车技术一直为我们提供着良好的服务,但现在也该对它进行现代化改造了。 乘着AI和自…

mini2440 LCD(型号:P43)驱动的背光驱动失效原因分析

目录 概述 1 背光驱动移植 1.1 问题描述 1.2 LCD背光驱动 1.2.1 原理图分析 2 移植驱动程序 2.1 编写驱动代码 2.2.1 编写代码 2.2.2 添加驱动配置 2.2 配置驱动至内核 3 测试背光控制 4 分析P43屏的资料 4.1 查询P43的资料 4.2 关于P43的介绍 5 失效原因分析 概…