zoukankan      html  css  js  c++  java
  • Python pytest fixture夹具

    一、简要描述

      在自动化测试过程中,为测试用例提前准备的一个运行环境,这个测试环境被称为测试夹具。

      测试夹具的本质是一个函数,在函数上方加上@pytest.fixture()声明即可成为夹具。

      在测试用例方法执行之前的称为前置条件,测试用例方法执行之后的称为后置条件。以yield作为标记,yield之前的代码为前置条件执行的代码,反之为后置条件执行的代码。

      在夹具中的yield后面可以传递参数(想要返回的值),即前置条件的返回值。yield与return类似,可以有返回值,但yield不一样,执行完yield之后还可以继续往下运行,而函数遇到return就终止了。

      

    二、使用方式

      方法一:把夹具的函数名称作为参数传到测试用例函数当中。若要获取夹具的返回值,可以直接使用夹具函数名称。

      

       方法二:在测试用例函数上方添加@pytest.mark.usefixtures()标记,并将夹具函数名称传递到usefixtures()中,可以传多个值,如@pytest.mark.usefixtures('function_before', 'function_two')。不能接受夹具的返回值,即测试用例函数中要使用夹具的返回值时,该方法不适用。

      

    三、作用域

      根据@pytest.fixture()中scope参数不同,作用域区分如下:

      function(函数):每个测试用例函数执行时都会执行一次,默认值  

      class(类):不论有多少测试用例,整个类只会运行一次

      module(模块):不论有多少测试用例,整个模块(文件)下只运行一次

      package(包):不论有多少测试用例,整个包(文件夹)下只运行一次

      session:不论有多少测试用例,整个pytest下只会运行一次

      

       

    四、自动使用

      将@pytest.fixture()中autouse参数设为True,即可自动使用夹具,不需要一个个传参数,默认值为False。

      

    五、conftest.py

      共享夹具fixture,将夹具单独存放到conftest.py中(文件名称是固定的,文件放在项目根目录),用例模块不需要导入模块名,就可以直接使用。

      

      

  • 相关阅读:
    判断是否GUID (转载)
    解决升级至.net4后出现A potentially dangerous Request.Form value was detected from the client (转载)
    C#如何设置Listview的行高高度 转载
    mojoportal之使用tab标签
    C#Windows 服务制作安装删除. 用户注销后,程序继续运行 (转载)
    c# winforms TextBox的记忆功能
    C# 创建windows服务、socket通讯实例 (转载 )
    mojoportal中的模块映射
    winforms中限定上传文件类型
    [笔记]软核 固核 硬核的区别
  • 原文地址:https://www.cnblogs.com/purelavender/p/14326791.html
Copyright © 2011-2022 走看看