首页 > 其他分享 >Pytest框架实现前后置(固件、夹具)处理

Pytest框架实现前后置(固件、夹具)处理

时间:2024-07-11 10:20:05浏览次数:18  
标签:self fixture pytest Pytest def print 固件 class 夹具

一、setup/teardown,setup_class/teardown_class

  • 为什么需要这些功能?
    比如:web自动化执行用例之前,需要打开浏览器

class Testshaguo:

#这个在所有的用例之前只执行一次
def setup_class(self):
    print('在每个类执行之前的初始化的工作:比如:创建日志对象,创建数据库的连接,创建接口的请求对象')


#在每个用例之前执行 一次
def setup(self):
    print('在执行测试用例之前执行的代码:打开浏览器,加载网页\n')

def test_100_baibai(self):
    print('测试白白\n')

def test_101_baiai(self):
    print('测试白爱\n')

def test_102_babai(self):
    print('测试八白\n')

def teardown(self):
    print('在执行测试用例之后扫尾的代码:关闭浏览器\n')


def teardown_class(self):
    print('在每个类执行之后的扫尾的工作:比如:销毁日志对象,销毁数据库的连接,销毁接口的请求对象')

注意:和unittest不同,全部小写

二、使用@pytest.fixture()装饰器,实现部分用例的前后置

装饰器
@pytest.fixture(scope="",params="",autouse="",ids="",name="")

  • scope表示的是被@pytest.fixture标记的方法的作用域。function(默认),class,module,package/session
  • params:参数化,
    • 支持:列表[],元祖(),字典列表{[],[]...},字典元祖{(),(),()...}
      @pytest.fixture(scope="function", params="['成龙','你','我']")
      def my_fixture(request):
      print('前置')
      yield request.param
      print('后置')

class Testshaguo:

def test_100_baibai(self):
    print('测试白白\n')

def test_101_baiai(self,my_fixture):
    print('测试白爱\n')
    print('--------'+str(my_fixture))
  • params=['成龙','你','我'],这里params是参数名,有s

  • request.param这里是属性名,没有s

  • return和yield都表示返回的意思,但是return的后面不能有代码,yield返回后面可以有代码

  • autouse=True:自动执行,默认False

  • ids:当使用params参数化时,给每一个值设置一个变量名,意义不大

  • name:给表示的是被@pytest.fixture标记的方法取一个别名

    • 当取了别名之后,那么原来的名称不能使用

三、通过conftest.py和@pytest.fixture()结合使用实现全局的前置应用

  • 比如:项目的全局登录,模块的全局处理
  1. conftest.py文件是单独存放的夹具配置文件,名称是不能更改
  2. 用处可以在不同的py文件中使用同一个fixture函数
  3. 原则上conftest.py需要和运行的用例放到同一层,并且不需要

总结:

  • setup/teardown,setup_class/teardown_class 是作用于所有用例或者所有的类
  • @pytest.fixture() 作用既可以部分,也可以全部前后置
  • conftest.py和@pytest.fixture()结合使用,作用于全局的前后置

四、断言
Assert
assert 1==2

五、pytest结合allure-pytest插件生成allure测试报告

  • 插件:Allure-pytest
  1. 下载,解压,配置path路径
    https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline
  • path路径配置
    • 验证:allure --version(cmd、pycharm)
      • 问题:cmd可以验证,pycharm验证失败?
      • 解决方法:重启pycharm
  1. 加入命令,生成json格式的临时报告
    [pytest]
    addopts = -vs --alluredir ./temp
  2. 生成allure报告
    os.system('allure generate ./temp -o ./report --clean')
  • Allure generate 命令,固定的
  • ./temp 临时的json格式报告的路径
  • -o 输出output
  • ./report 生成的allure报告的路径
  • --clean 清空./report路径原来的报告

标签:self,fixture,pytest,Pytest,def,print,固件,class,夹具
From: https://www.cnblogs.com/shaguomizhou/p/18295501

相关文章

  • 生成pytest-allure报告空白的问题---解决!
    1、下载并安装allure下载allure,解压到指定文件夹。https://github.com/allure-framework/allure2/releases配置系统路径。右击【此电脑】>【属性】>【高级系统设置】>【环境变量】>【系统变量】,双击Path,添加系统变量:allure的bin路径。查看是否安装成功。cmd输入allure--ve......
  • 固件损坏现象有哪些?固件损坏怎么修复?
    固件,是固化在硬件中的软件,存储着计算机系统中硬件设备最基底层最直接的软件。通俗地说,固件即硬盘的系统程序。就和电脑的操作系统一样,电脑要进入操作系统才能进行操作。硬盘也一样,必须完整地读取出固件信息才能正常地识别硬盘。那么,我们平时怎么知道硬盘固件损坏了呢?其实我们可以......
  • 硬盘固件损坏
    硬盘固件损坏是一个相对复杂的问题,它可能由多种原因引起,并可能导致硬盘无法正常工作或数据丢失。一、硬盘固件损坏的原因电源故障:电源不稳定或电力波动可能导致硬盘固件受损。突然的电源断电、电压过高或过低都可能对硬盘固件造成不可逆的损坏。固件更新失败:在固件更新过程中,如......
  • 【Playwright+Python】系列教程(四)Pytest 插件在Playwright中的使用
    一、命令行使用详解使用Pytest插件在Playwright中来编写端到端的测试。1、命令行执行测试pytest--browserwebkit--headed2、使用pytest.ini文件配置内容如下:[pytest]#RunfirefoxwithUIaddopts=--headed--browserfirefox效果:运行测试类,可以直接可以按照......
  • 【pytest】失败用例,桌面截图
    @pytest.hookimpl(tryfirst=True,hookwrapper=True)defpytest_runtest_makereport(item,call):#executeallotherhookstoobtainthereportobjectoutcome=yieldrep=outcome.get_result()#rep可以拿到用例的执行结果详情ifrep.when=="ca......
  • 《DNK210使用指南 -CanMV版 V1.0》第六章 Kendryte K210固件烧录
    第六章KendryteK210固件烧录1)实验平台:正点原子DNK210开发板2)章节摘自【正点原子】DNK210使用指南-CanMV版V1.03)购买链接:https://detail.tmall.com/item.htm?&id=7828013987504)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/k210/ATK-DNK210.html......
  • 固件的提取
    固件提取的三类方法:直接从官网上找到目标型号的设备固件下载使用Telnet或者ssh从目标设备中获取固件从开发板中的flash芯片中或者通过uart和jtag调试接口将固件提取下来JTAG(JointTestActionGroup),是一种用于测试和调试电子设备的技术标准。它使用4线或5线接口,其中有一条......
  • 固件的提取以及部分PCB基础
    固件固件的基础定义:固件(firmware)一般存储于设备中的电可擦除只读存储器(允许用户通过特定的电子方式复写存储内容,在【工作情况下是只读的,并且关闭电源仍存储数据)EEPROM(ElectricallyErasableProgrammableROM)或FLASH芯片中,一般可由用户通过特定的刷新程序进行升级的程序。一般......
  • pytest测试框架pytest-html插件生成HTML格式测试报告
    Pytest提供了丰富的插件来扩展其功能,pytest-html插件帮助我们生成HTML格式的测试报告,为我们提供直观、有效的测试结果展示。为了使用pytest-html,需要满足以下条件:·Python3.6或更高版本pytest-html安装使用pip命令安装:pipinstallpytest-html(安装在pytest工程所......
  • pytest常用参数化方法详解
            最近在学习python的pytest自动化框架,对于pytest的参数化相关信息进行一个记录,信息可能不全,有问题可以私信指正。pytest运行参数:-s: 其作⽤是可以让打印的内容输出显示在终端中,或者可以在终端中与⽤例中的输⼊操作进⾏交互-v:表示详细输出更详细的输出,包......