zoukankan      html  css  js  c++  java
  • pytest--fixture基本使用(主要用来进行测试环境的初始化和清理,fixture中的params参数还可以用来进行参数化)

    fixture
    fixture修饰器来标记固定的工厂函数,在其他函数,模块,类或整个工程调用它时会被激活并优先执行,通常会被用于完成预置处理和重复操作。

    方法:
    fixture(scope="function", params=None, autouse=False, ids=None, name=None)
    常用参数:
    scope:被标记方法的作用域
       function(default):作用于每个测试方法,每个test都运行一次
       class:作用于整个类,每个class的所有test只运行一次
       module:作用于整个模块,每个module的所有test只运行一次
       session:作用于整个session(慎用),每个session只运行一次
    params(ids一般于该参数一起使用):(list类型)提供参数数据,供调用标记方法的函数使用
    autouse:是否自动运行,默认为False不运行,设置为True自动运行
    

    代码示例:

    1. fixture不加参数,案例调用初始化和清理方法需要显示调用初始化方法名,默认初始化和清理方法的作用范围是方法,每次运行一个test方法调用一次

      2.fixture参数---scope
      2.1. scope作用范围是class,即每运行一个类调用一次初始化和清理的方法


      2.2. scope作用范围是module,即每运行一个模块(一个PY文件)调用一次初始化和清理的方法(每个模块都需要写初始化方法和清理方法,这样才会运行每个模块都会执行一遍初始化方法和清理方法)



      2.3. scope作用范围是session/package,即每运行包调用一次初始化和清理的方法,一般写conftest.py文件,放到工程根目录下,就可以全局调用了,如果放到某个package下,那么就只能在这个package下使用(后续介绍conftest.py)
      3.fixture参数---autouse(自动让范围内的测试方法执行初始化方法和清理方法)

      4.fixture参数---name参数是给fixtrue设置名称

      5.fixture参数---params参数(params参数接受列表类型的数据 实现参数化功能)
      • 相同的测试脚本使用不同的测试数据来执行,测试数据和测试行为进行了完全的分离,这样的测试脚本设计模式叫做数据驱动;
      • 参数化就是数据驱动实现的一种表现;
      • 比如登录功能模块,使用3组不同的用户名和密码进行登录来验证登录功能模块的正确性,可以把这组不同的用户名和密码理解为参数化的数据;
      • 为什么要使用不同的数据来对相同模块功能进行验证,因为这样测试会更充分一些,也可以检查程序是否处理了各种异常情况(如错误的用户名、错误的密码等)。

        扩展:params传的列表中包含字典

        6.fixture参数---ids参数(ids参数一般与params配合使用,ids主要是给每个参数化的方法中加个ids名字,效果见图)

    一般会把fixtrue配置单独存放到一个文件conftest.py ,conftest.py文件使用见这篇文章 https://www.cnblogs.com/ritaliu/p/13523842.html

  • 相关阅读:
    Neko's loop HDU-6444(网络赛1007)
    Parameters
    SETLOCAL
    RD / RMDIR Command
    devenv 命令用法
    Cannot determine the location of the VS Common Tools folder.
    'DEVENV' is not recognized as an internal or external command,
    How to change Visual Studio default environment setting
    error signing assembly unknown error
    What is the Xcopy Command?:
  • 原文地址:https://www.cnblogs.com/ritaliu/p/13522617.html
Copyright © 2011-2022 走看看