01、简介 – fixture 装置设施

--fixture修饰器来标记固定的工厂函数,在其他函数,模块,类或整个工程调用它时会被激活并优先执行,通常会被用于完成预置处理和重复操作。--在测试网站的功能时,每个测试用例都要登录和退出,利用fixture就可以只做一次,否则每个测试用例都要做这两步也是冗余。--完成setup和teardown操作,处理数据库或文件的打开、关闭操作--准备测试数据.将数据提前写入数据库或通过params返回给测试用例--基本使用:@pytest.fixture装饰函数
--pytest.fixture(scope='function', params=None, autouse=False, ids=None, name=None)--常用参数解释:--scope: 被标记方法的作用域;--"function": 默认值,表示每个测试方法都要执行一次--"class": 作用于整个类, 表示每个类的所有测试方法只运行一次--"module": 作用于整个模块, 每个module的所有测试方法只运行一次.--"session": 作用于整个session, 每次session只运行一次. ⚠️(此方法慎用!!)--params: list类型,默认None, 接收参数值,对于param里面的每个值,fixture都会去遍历执行一次.--autouse: 是否自动运行,默认为false, 为true时此session中的所有测试函数都会调用fixture

02、函数执行–作为参数传递,使用在函数中

import pytest@pytest.fixture()
def before():print("在测试函数前执行")def test_a(before):print("test_a函数在执行")>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> pytest.ini >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
[pytest]
addopts = -s
python_files = test_*.py

03、作为装饰器执行

import pytest@pytest.fixture()
def before():print("在测试函数前执行")@pytest.mark.usefixtures('before')
def test_a():print("test_a函数在执行")@pytest.mark.usefixtures('before')
def test_b():print("test_b函数在执行")@pytest.mark.usefixtures('before')
class Test_ABC():def test_c(self):print("test_c函数在执行")def test_d(self):print("test_d函数在执行")>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> pytest.ini >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
[pytest]
addopts = -s
python_files = test_*.py
python_classes = Test_*

04、设置为自动执行

--同03配置,只是传入参数autouse
import pytest@pytest.fixture(autouse=True)
def before():print("在测试函数前执行")def test_a():print("test_a函数在执行")def test_b():print("test_b函数在执行")class Test_ABC():def test_c(self):print("test_c函数在执行")def test_d(self):print("test_d函数在执行")

05、设置自动执行 + 设置执行范围

import pytest@pytest.fixture(scope='class', autouse=True)
def before():print("在测试函数前执行")def test_a():print("test_a函数在执行")def test_b():print("test_b函数在执行")class Test_ABC():def test_c(self):print("test_c函数在执行")def test_d(self):print("test_d函数在执行")>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
在测试函数前执行
test_a函数在执行
.在测试函数前执行
test_b函数在执行
.在测试函数前执行
test_c函数在执行
.test_d函数在执行
.

06、对照组实验:设置scope=class,设置autouse=False

import pytest@pytest.fixture(scope='class', autouse=False)
def before():print("在测试函数前执行")def test_a():print("test_a函数在执行")def test_b():print("test_b函数在执行")class Test_ABC():def test_c(self):print("test_c函数在执行")def test_d(self):print("test_d函数在执行")>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
test_a函数在执行
.test_b函数在执行
.test_c函数在执行
.test_d函数在执行
.

07、模块级别

import pytest@pytest.fixture(scope='module', autouse=True)
def before():print("\n在测试函数前执行")def test_1():print("test_1函数在执行")class Test_ABC():def test_a(self):print("test_a函数在执行")def test_b(self):print("test_b函数在执行")>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
在测试函数前执行
test_1函数在执行
.test_a函数在执行
.test_b函数在执行

08、参数传递 – 最基本的传递

import pytest@pytest.fixture(params=[1, 2, 3])
def need_data(request):  # 传入参数return request.paramclass Test_ABC():def test_a(self, need_data):print("传入参数值为 %s"%need_data)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
传入参数值为 1.
传入参数值为 2.
传入参数值为 3.

pytest05、fixture相关推荐

  1. Python测试框架pytest(05)fixture - error和failed、fixture实例化、多个fixture

    Python测试框架pytest系列可以查看下列 Python测试框架pytest(01)简介.安装.快速入门_编程简单学的博客-CSDN博客 Python测试框架pytest(02)PyCharm设 ...

  2. Python测试框架pytest(04)fixture - 测试用例调用fixture、fixture传递测试数据

    Python测试框架pytest系列可以查看下列 Python测试框架pytest(01)简介.安装.快速入门_编程简单学的博客-CSDN博客 Python测试框架pytest(02)PyCharm设 ...

  3. Pytest_fixture装饰器、调用fixture的三种方法、usefixtures与传fixture区别、fixture自动使用autouse=True

    1.调用fixture方法1:函数或类的方法直接传fixture的函数参数名称 import pytest@pytest.fixture(scope="function") # 此 ...

  4. pytest框架中parametrize、fixture、request怎么混合使用?

    一.前言 作为软件测试工程师想必大家对于pytest框架并不陌生吧,那么今天呢笔者想和大家唠唠pytest框架中的parametrize.fixture.request的混合使用,如果你还不知道什么是 ...

  5. 2、fixture机制

    一.fixture机制 通俗的讲:fixture=前置+后置 主要目的是可以让我们自定义测试用例的前置条件. 1.conftest文件 设置conftest.py文件,放所有的前置和后置函数,通过设置 ...

  6. java fixture_10、fixture参数化

    fixture的参数可以解决大量重复代码工作,比如数据库的连接.查询.关闭等.同样可以使用参数化来测试多条数据用例 例一. import pytest @pytest.fixture(params=[ ...

  7. Python Pytest调用fixture之@pytest.mark.usefixtures()、叠加usefixtures、@pytest.fixture(autouse=True)用法详解

    usefixtures与传fixture区别  如果fixture有返回值,那么usefixture就无法获取到返回值,这个是装饰器usefixture与用例直接传fixture参数的区别. 当fix ...

  8. 6、Pytest之Fixture参数详解及使用

    以下内容纯属个人理解,如有不足,还请指正,转载请注明出处,喜欢请动动小指头点赞评论哦(▽)! Fixture参数详解及使用 Fixture的调用方式: 参数详解: 1.SCOPE scope = &q ...

  9. python自动化测试开发_基于python的selenium2自动化测试从基础到实战(Python3、selenium2、自动化测试、web测试)...

    Selenium2是目前比较流行的一款针对web页面测试的自动化测试工具,他的前身是Selenium .Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE.Mozi ...

最新文章

  1. ZOJ 2110 Tempter of the Bone(DFS)
  2. SpringBoot 2.0 多图片上传加回显
  3. easyuefi只能在基于uefi启动的_苹果电脑怎么从u盘启动|苹果笔记本按哪个键选u盘启动...
  4. VINS-Mono:一种鲁棒且通用的单目视觉惯性系统
  5. 线程间通信及虚假唤醒
  6. ASP.NET MVC 源代码 剖析
  7. LeetCode 2000. 反转单词前缀
  8. 如何获得学生版本的免费eviews9
  9. 干货|PMP项目管理计划汇总!
  10. Perl教程-2.环境的安装
  11. dspic c语言教程,轻松学PIC之数码管篇 PIC单片机学习系列教程
  12. win10 查看电脑mac 地址和ip
  13. vue点击按钮打开下拉菜单_vue+element下拉框样式的点击按钮
  14. 计算机服务添加打印机服务,无法添加打印机报错后台程序服务没有运行的解决方法...
  15. 4.widows对象
  16. Postman团队协作开发
  17. 流媒体:依托于声网的连麦解决方案
  18. 美国诚实签经验贴汇总
  19. Mule ESB开发与学习
  20. 量子信息 量子计算机的新闻,应用挑战知多少?美国学界公布量子信息路线图...

热门文章

  1. [历史档案]月光如水静静泻
  2. (02)Cartographer源码无死角解析-(52) 2D点云扫描匹配→ceres扫描匹配:CeresScanMatcher2D→栅格地图残差
  3. 微信小程序云函数开发配置
  4. 计算机公式ref是什么意思,Excel公式应用错误提示“#REF!”怎么处理
  5. 对生命常怀敬畏之心,我眼中的胡爱玲医生
  6. 可视化数据结构的网站
  7. VMware虚拟机下安装RedHat Linux 9.0
  8. Lawliet|Python学习笔记2——控制结构异常处理
  9. 滚动截屏苹果_30个小技巧,带你玩转苹果三大系统
  10. 2020年有寓意的领证日期_2020领证吉日,这些特殊寓意的好日子不能错过