首页 > 其他分享 >今天分享pytest执行自动化测试时,setup和teardown的作用

今天分享pytest执行自动化测试时,setup和teardown的作用

时间:2024-06-04 15:27:01浏览次数:16  
标签:function teardown setup module 用例 pytest test

1. 本章我们要讲解setup_module()和teardown_module()以及setup_function()和teardown_function()、setup()和teardown()、setup_class()和teardown_class()的使用。

setup_module()和teardown_module():setup_module 是所有用例开始前叧执行一次,teardown_module 是所有用例结束后叧执行一次,比如:所有用例开始前叧打开一次浏览器。

setup_class()和teardown_class()与setup_module()和teardown_module()功能一样:setup_class()和setup_module()所有用例执行之前和teardown_class()和teardown_module()所有用例执行之后,这个地方我们可以用于浏览器启动,在所有用例执行前浏览器启动1次,所有用例执行完成后,浏览器关闭;

setup()和teardown()与setup_function()和teardown_function()功能一样:setup()和setup_function()每个用例开始前执行,teardown()和teardown_function()每个用例结束后执行,这个地方我们可以加上等待休眠,增加每个用例执行的时间间隔;

import pytest


def setup_module() :
    print ( "setup_module:整个.py 模块只执行一次" )
    print ( "比如:所有用例开始前只打开一次浏览器" )


def teardown_module() :
    print ( "teardown_module:整个.py 模块只执行一次" )
    print ( "比如:所有用例结束只最后关闭浏览器" )

def setup_function():
    print("setup_function:每个用例开始前都会执行")

def teardown_function():
    print("teardown_function:每个用例结束后都会执行")

def test_one():
    x = "this"
    assert "h" in x

def test_two():
    x = "hello"
    assert hasattr(x,"check")

def test_three():
    a = "hello"
    b = "hello world"
    assert a in b

if __name__=="__main__":
    pytest.main(['-s', 'test_fixt.py'])

 

setup_module/teardown_module 的优先级 是最大的,然后函数里面用到的 setup_function/teardown_function与类里面的 setup_class/teardown_class 互不干涉

运行结果:

test_fixt.py::test_one setup_module:整个.py 模块只执行一次
比如:所有用例开始前只打开一次浏览器
setup_function:每个用例开始前都会执行
PASSED [ 33%]teardown_function:每个用例结束后都会执行

test_fixt.py::test_two setup_function:每个用例开始前都会执行
FAILED [ 66%]
test_fixt.py:22 (test_two)
def test_two():
x = "hello"
> assert hasattr(x,"check")
E AssertionError: assert False
E + where False = hasattr('hello', 'check')

test_fixt.py:25: AssertionError
teardown_function:每个用例结束后都会执行

test_fixt.py::test_three setup_function:每个用例开始前都会执行
PASSED [100%]teardown_function:每个用例结束后都会执行
teardown_module:整个.py 模块只执行一次
比如:所有用例结束只最后关闭浏览器

标签:function,teardown,setup,module,用例,pytest,test
From: https://www.cnblogs.com/camillezxl/p/18230733

相关文章

  • pytest运行报错:UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0xaf in posit
    pytest运行报错:UnicodeDecodeError:‘gbk’codeccan’tdecodebyte0xafinposition82:illegalmultibytesequence  D:\Python\environment\python3.9.7\python3.exeD:/Python/nas_autotest/run.pyTraceback(mostrecentcalllast):File"D:\Python\......
  • request+pytest根据yaml文件发送请求
    request怎么跟pytest结合起来,然后根据yaml文件去发一个基本的请求呢?下面是一个简单的示例。1、先新建一个名为“demo.yaml”的yaml文件,用来存放测试数据的。-name:G广州研发中心parentid:1#第一次用例的数据正常expect:60008#对请求结果进行断言-nam......
  • pytest + yaml 框架 - 70.Pycharm 设置 yaml 格式用例模板,高效写用例
    前言初学者对yaml格式不太熟悉,自己写yaml用例的时候,总是格式对不齐,或者有些关键字会忘记。于是我们可以在pycharm上设置用例模块,通过快捷方式调用出对应的模块,达到高效写用例的目的。pycharm设置用例模板File-SettingsLiveTemplates-python点+号选择LiveTempl......
  • Vue 3 设置中的新 `<script setup>` 语法是如何使用的?
    Vue3中的新<scriptsetup>语法详解Vue.js作为现代前端框架的一大代表,它简洁易用的特性和不断创新的理念吸引了一大批开发者。在Vue3中推出了很多改进和新特性,其中一个引起广泛关注的便是<scriptsetup>语法。这篇文章将详细介绍Vue3中的<scriptsetup>语法,......
  • 在 Inno Setup 中检测 .NET 5 / .NET Core 运行环境是否存在
    为了将.NET5/.NETCore应用程序部署到客户机,我们可以编写InnoSetup代码来判断客户机是否安装了必要的运行环境。.NET官方仓库 中提供了一个名为 NetCoreCheck 的项目,可以用于检测指定的.NET5/.NETCore环境是否存在。编译好的文件可以从以下两个地址下载:文件......
  • Inno Setup Dependency Installer 安装包 运行环境安装
    Downloadandinstallanydependencysuchas.NET,VisualC++orSQLServerduringyourapplication'sinstallation!Inthisarticle,youwillseeinstallation,usage,integration,details,anddependenciesofInnoSetupDependencyInstaller.Downlo......
  • pytest+requests+pymysql+ pyyaml + jenkins
    pytest+requests+pymysql+ pyyaml  + jenkins1、新建项目,用虚拟环境2、创建目录结构api————python package,接口cases———python package,测试用例data———directory, 数据logs———python package,日志report——pytho......
  • pytest自动重试失败的测试用例
    先安装插件pipinstallpytest-rerunfailurestest_01.pyimportpytestfromwebTest.Common.loggerimportloggermy_skip=pytest.mark.skipif(1==1,reason='自定义的跳过标签')classTest01:deftest_1(self):try:assert1==1......
  • VUE速通(10)Vue3核心语法(2)setup
    1setup概述setup是Vue3中一个新的配置项,值是一个函数,它是CompositionAPI“表演的舞台”,组件中所用到的:数据、方法、计算属性、监视......等等,均配置在setup中。特点如下:setup函数返回的对象中的内容,可直接在模板中使用。setup中访问this是undefined。setup函数会......
  • 接口自动化测试框架【python+requests+pytest+excel+allure+jenkins】
    一.在整个框架中需要用到哪些东西?1.python环境安装https://www.python.org/downloads/windows/下载解压后直接安装,选择Addpythontopath2.JAVA环境配置安装包下载地址:https://www.oracle.com/java/technologies/downloads/环境变量设置参数如下:●变量名:JAVA_HOME●变......