pytest测试框架中的setup和tearDown - 1

九、Pytest框架 — Pytest框架的setUp()和tearDown()函数 ###文章内容有配套的学习视频和笔记都放在了文章末尾### 1、setUp()和tearDown()函数介绍 之前学过Unittest测试框架,知道前置setup()函数和后置teardown()函数非常好用,在每次用例开始前和结束后都去执行一次。 当然还有更高级一点的setupClass()函数和teardownClass()函数,需配合classmethod装饰器一起使用,在做Selenium自动化的时候,它的效率尤为突出,可以只启动一次浏览器执行多个用例。 2、setUp()和tearDown( 阅读详情

这次内容是阅读文档pytest fixtures: explicit, modular, scalable的一些总结,pytest fixture功能很丰富,功能远不止用来构建测试中传统的setup/teardown。

但是还是先看下用pytest.fixture特性写的setup/teardown,据stakoverflow上一哥们说,这还是目前的最佳实践。

import time
import pytest
from selenium import webdriver
from selenium.webdriver.common.by import By
from utils.log import logger
from utils.config import get_url

@pytest.fixture()
def chrome_driver(scope="function"):
    """
    scope="function"是scope的默认值,表示这是一个function级别的fixture
    """
    print("setup() begin")
    driver = webdriver.Chrome()
    driver.get(get_url())
    print("setup() end")
    yield driver 
    #这里会返回driver,给使用这个fixture为参数的test_函数使用,
    #test_函数结束后,会回到这里,继续执行后面语句
    print("teardown() begin")
    driver.close()
    print("teardown() end")


class TestBaiDu(object):

    locator_kw = (By.ID, 'kw')
    locator_su = (By.ID, 'su')
    locator_result = (By.XPATH, '//div[contains(@class, "result")]/h3/a')

    def test_search_0(self, chrome_driver):
        """
        这里的chrome_driver是在本模块中定义的fixture,这里输入
        的参数是上面yield driver中返回的driver
        """
        chrome_driver.find_element(*self.locator_kw).send_keys(u'selenium 测试')
        chrome_driver.find_element(*self.locator_su).click()
        time.sleep(2)
        links = chrome_driver.find_elements(*self.locator_result)
        for link in links:
            logger.info(link.text)

这样写看起来有点pythonic的味道,我理解写这样fixture形式的setup/teardown函数,主要还是给那些需要打开然后关闭的资源,比如上面例子中的浏览器driver,确实需要收尾(driver.quit())。

可能还有其他应用,比如写一个数据库查询的函数,就可以把连接数据库,获得数据查询句柄,yield 句柄,关闭数据库句柄,关闭数据连接写成一个fixture,这样代码应该清爽多了。

@pytest.fixture(scope="module") #一个module里的所有函数共用一个句柄实例
def sql_query():
    #连接数据库
    #获得数据库查询句柄
    yield "查询句柄"
    #关闭句柄
    #关闭数据库连接

fixture如果不用到yield,则只是把fixture函数里返回的值,作为参数给到使用fixture的函数,代码如下

@pytest.fixture()
def fruit_name():
    return  "apple"

def test_fruit(fruit_name):
    assert "apple" == fruit_name
Python Pytest中setup和teardown使用详解 在Python的自动化测试中,Pytest是一个非常流行且功能强大的测试框架。为了提高测试的效率和组织性,Pytest提供了setup和teardown功能,用于在测试执行前进行准备工作,以及在测试执行后进行清理工作。本文将详细介绍Pytest中setup和teardown的作用域及其使用方法,并提供相应的示例代码。 阅读详情

相关推荐

Python测试框架之pytest详解

Python测试框架之前一直用的是unittest+HTMLTestRunner,听到有人说pytest很好用,所以这段时间就看了看pytest文档,在这里做个记录。

与君初相识,犹如故人归 2569

接口测试9-setup/teardown group

接口测试9-setup/teardown group

别追我我有止咳糖浆 323

pytest pdf文档完整版

pytest pdf文档完整版

Pytest测试框架中,setup和teardown函数的作用及使用方法

作为一名Python开发人员,您一定知道Pytest是一个广泛使用的Python测试框架。它具有易用性和灵活性,可以帮助您快速编写测试用例,并且能够支持包括单元测试、集成测试、功能测试等多种测试类型。而其中,setup和teardown函数是Pytest提供的两个非常重要的特性。 setup和teardown函数可以分别在每个测试用例之前和之后执行,以确保测试环境的准备和清除工作。通过合理使用这两个函数,您可以有效地提高测试效率,并且避免测试用例之间的相互干扰。本篇文章将详细介绍setup和teardow

m0_70618214的博客 2740

STC15W204S最小系统开发指南:从串口通讯到自动热加载全流程

本文详细介绍了STC15W204S最小系统的完整开发流程。从芯片资源解析、最小系统搭建、串口通讯驱动编写(使用Timer2生成波特率),到实现基于魔术值触发的自动热加载功能,并最终集成Keil与STC-ISP软件,构建高效的自动化开发工作流,显著提升嵌入式调试效率。

a1b2c的博客 391

全志D1s RISC-V开发板硬件设计与Linux启动全流程解析

RISC-V架构是当前国产嵌入式处理器演进的核心方向,其启动流程涵盖从BootROM、SPL到U-Boot及Linux内核的多级引导机制。理解该流程需掌握DDR初始化、设备树适配、电源时序控制等底层原理,技术价值在于构建可追溯、可调试、可量产的最小可行系统(MVS)。典型应用场景包括边缘AI推理终端、工业HMI和轻量级网关等对成本与开源性敏感的领域。本文以全志D1s平台为载体,深入剖析基于玄铁C906内核的RISC-V SoC在真实硬件上的启动验证、电源完整性设计与Linux全链路开源实践。

weixin_32306683的博客 356

pytest测试框架系列 - setup和teardown的详细讲解

      前面使用过unittest的都知道,setup和teardown是用来处理用例的前置工作和清理工作,其中还有setupclass和teardownclass是保证执行所以的用例都只执行1次前置和后置,使用起来非常方便,对于强大的pytest测试框框,给我们提供了10中类似方法。 模块级别:setup_module、teardown_module 函数级别:setup_function、teardown_function,不在类中的方法

测试之路king_qq772084279 1905

C#创建COM组件,QT调用COM组件简单测试(VS2008+QT4.6.4)

一. C#创建组件: 1. VS2008新建一个项目,选择Visual C#, Class library 修改Properties下面的AssemblyInfo.cs文件,ComVisible属性设置为True,即:[assembly: ComVisible(true)] 2. 右击项目,选择“属性”, 选择“生成”选项卡,把“为COM互操作注册”勾选上 选择“签名”选项卡,把“

3517

第六章 应用pytest测试框架(6.6章节-pytest的setup和teardown方法)

感谢大家关注,帮忙分享呦,你们的阅读就是我的动力!!!公众号:小李测试随笔

ljs_fighting的博客 1156

Ansys Motor-CAD:概述(EMag、THERM、LAB、MECH)

在这篇博客中,我概述了如何使用 Ansys Motor-CAD 模型、模拟、分析和后处理结果来评估电机性能,并帮助您为您的应用选择优化的电机,并通过电机设计选择实现成本效益和效率。我介绍了各种可用的电机类型、可供选择的物理模块和可配置的多物理选项。E-Mag 物理模块有许多选项卡,涵盖几何创建、材料选择、电磁设置、条件、求解器类型、解决方案模型、耦合设置等的所有设置。热物理模块有许多选项卡,涵盖几何创建、材料选择、热设置、条件、求解器类型、解决方案模型、耦合设置等的所有设置。分析结果的速度相结合。

jkh920184196的博客 1751

光学遥感显著目标检测初探笔记总结

一张图片里最吸引注意力的部分就是显著性物体,其实是模拟人的一个注意力机制。目标是希望通过计算机的方法让我们自动定位和模拟人的这种感知能力,从而去定位场景中的一个让人感兴趣的目标。

醋酸洋红的博客 2075

Pytest测试框架(二):pytest 的setup/teardown方法

PyTest支持xUnit style 结构, setup() 和 teardown() 方法用于初始化和清理测试环境,可以保证测试用例的独立性。pytest的setup/teardown方法包括:模块级别(setup_module/teardown_module)、函数级别(setup_function/teardown_function)、类级别(setup_class/ teardown_class)、方法级别(setup_method/teardown_methond或者setup/teardown

测试开发小记 1万+

实战指南 | Adjust 与 Facebook、Google Ads 自归因配置全流程解析

本文详细解析了Adjust与Facebook、Google Ads自归因配置的全流程,帮助移动应用出海推广者解决广告归因难题。通过自归因功能(SAN),开发者可以获取更准确的数据、简化配置流程并扩大安装来源覆盖,显著提升广告效果监测和ROI计算效率。

weixin_42528780的博客 536

pytest—setup和teardown简单用法

前言 小伙伴们好呀,我又来了我们今天聊聊关于pytest前后置应用,使用过unittest的小伙伴们都知道,setup和teardown是用来处理用例的开始前工作和结束后的工作,其中还有setupclass和teardownclass是保证执行所以的用例都只执行1次前置和后置,使用起来非常方便,那么学习pytest强大的测试框框,肯定也有这个功能,并且还比unittest的简单不少。 pytest中的前置 pytest比较强大,提供了不仅仅一种方法的前置和后置: setup_module、.

qishuzdh的博客 6339

基于MATLAB的鲁棒主成分分析(Robust PCA)图像去噪

鲁棒主成分分析(Robust PCA)是一种有效的图像去噪方法,它能够在保持图像细节的同时去除噪声。本文将介绍如何使用MATLAB实现基于鲁棒PCA的图像去噪,并提供相应的源代码。它假设噪声是随机的、高斯分布的,并将图像分解为一个低秩矩阵和一个稀疏矩阵的和。低秩矩阵表示图像的结构和纹理信息,稀疏矩阵表示图像中的噪声和细节信息。接下来,我们将图像矩阵减去均值,得到规范化的图像矩阵。然后,我们将灰度图像转换为矩阵形式,并计算图像的均值。通过分离出低秩矩阵和稀疏矩阵,我们就得到了去噪后的图像和残差图像。

DevRevolt的博客 1125

Autosar代码包初识 2 - 如何编译Vector包内Demo工程

Vetcor autosar代码包Demo工程编译,GreenHills,RH850,Autosar,Davinci COnfigurator

weixin_42412049的博客 5183

Pytest框架 —— setUp()和tearDown()函数

1、setUp()和tearDown()函数介绍,之前学过Unittest测试框架,知道前置setup()函数和后置teardown()函数非常好用,在每次用例开始前和结束后都去执行一次。当然还有更高级一点的setupClass()函数和teardownClass()函数,需配合classmethod装器一起使用,在做Selenium自动化的时候,它的效率尤为突出,可以只启动一次浏览器执行多个用例。 2、setUp()和tearDown()函数作用

myh919的博客 7099

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Pytest框架中的Setup和Teardown功能

用例。

kymppcds的博客 1679

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

pytest框架中setup、teardown和setup_class、teardown_class

函数级别方法: setup:每个用例执行之前都会执行一次 teardown:每个用例执行之后都会执行一次 import pytest class TestFunc: def setup(self): # 每个测试函数运行前执行一次 print("---setup---") def test_a(self): print("test_a") def test_b(self): print("test_b"

weixin_43489242的博客 7984

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Python Pytest前置setup和后置teardown详解

pytest用例运行级别: ●模块级(setup_module/teardown_module)开始于模块始末,全局的(类外生效、函数中生效) ●函数级(setup_function/teardown_function)只对函数用例生效(类外有函数时生效) ●类级(setup_class/teardown_class)只在类中前后运行一次(在类中生效,类外不生效) ●方法级(setup_metho...

专业资深测试者,多年质量管理经验,浪迹网游、金融、房产、招聘及海外行业多年,CDSN百万原创阅读,公众号500+原创文章,提倡测试左移、风险、越权、假设、探索测试,喜欢用抽象思维模式思考和技术探讨,自动化、性能、安全测试实施者,感谢关注! 7420

Pytest中的setup和teardown

本文介绍了Pytest框架中setup和teardown的使用场景及其四种级别(模块级、函数级、类级、方法级),并演示了它们的执行顺序。同时讲解了断言assert的用法及特点,指出assert失败后会终止后续代码执行。最后展示了pytest-assume插件如何实现多重断言,即当所有断言均通过时用例才算成功。通过示例代码详细说明了这些功能在测试环境准备、清理和验证过程中的实际应用。

St_rive的博客 672

Pytest的setup和teardown

pytest实际上是python自带测试框架unittest的扩展,那么pytest是如何实现unittest中的setup和teardown的呢? pytest初始化的类别和作用域 模块级别(Module level setup/teardown):作用于一个模块内的所有class和def,对于所有class和def,setup和teardown只执行一次 def setup_module...

春天的波菜 1366

pytest里面的setup 和 teardown

pytest里面的setup和teardown有以下几种: 模块级(setup_module/ teardown_module)开始于模块始末,全局的 函数级(setup_function / teardown_function) 只对函数用例生效(不在类中) 类级(setup_class / teardown_class) 只在类中前后运行一次(在类中) 方法级(setup_method / teardown_method)开始于方法始末(在类中) 类里面的(setup / teardown)运

betty_xfy的博客 1020

python:pytest中的setup和teardown

原文:https://www.cnblogs.com/peiminer/p/9376352.html  之前我写的unittest的setup和teardown,还有setupClass和teardownClass(需要配合@classmethod装饰器一起使用),接下来就介绍pytest的类似于这类的固件。 (1.setup_function、teardown_function 2...

weixin_30445169的博客 319

深入理解Pytest中的Setup和Teardown

关注开源优测不迷路大数据测试过程、策略及挑战测试框架原理,构建成功的基石在自动化测试工作之前,你应该知道的10条建议在自动化测试中,重要的不是工具对于简单程序而言,使用 Pytest 运行测试直截了当。然而,当你的程序依赖诸如数据库初始化、外部网络调用或复杂对象等预设任务时,情况就变得有点棘手了。虽然这些任务本身并不复杂,但在测试中处理它们可能就不那么直观了。那么,在测试过程中你该如何应对这一挑战...

开源优测 843
上一篇: pytest测试框架中的setup和tearDown - 0
下一篇: 重构一份应用pytest框架的测试代码
python012
博客等级 码龄12年 34粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值