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

  • 相关阅读:
    HTML5学习笔记第二节(Email标签(自动验证格式),Number标签,URL标签...)
    Ping检测工具(QQ皮肤实现)
    C#多线程|匿名委托传参数|测试您的网站能承受的压力|附源代码
    PostgreSQL抛错“不良的类型值: long”之解决
    jdbcTemplate.queryForInt()过时替换方法
    Windows Phone 实用开发技巧(27):创建透明Tile
    快乐技术沙龙技术分享之账户助手
    Windows Phone 实用开发技巧(11):让StackPanel中的控件靠右对齐
    Windows Phone 实用开发技巧(19):使用ProgressIndicator做进度显示
    Windows Phone 实用开发技巧(13):自定义Element Binding
  • 原文地址:https://www.cnblogs.com/ritaliu/p/13522617.html
Copyright © 2011-2022 走看看