目录

一、fixture函数的定义

二、fixture函数的调用

三、fixture函数的返回

四、conftest.py的使用

五、使用实例


一、fixture函数的定义

把一个函数定义为fixture很简单,只需要在函数声明之前加上“@pytest.fixture”,参数如下:

     fixture(scope="function", params=None, autouse=False, ids=None, name=None)

     scope:有四个级别参数 "function" (默认), "class", "module" or "session":

☆ session多个文件调用一次,可以跨.py文件调用

☆ module每个.py文件调用一次

☆ class每个类调用一次

☆ function每个函数或方法都会调用

     params: 一个可选的参数列表,默认为None。当它不为None时,params里面的每个值,fixture都会去调用执行一次,就像执行for循环一样把params里的值遍历一次;

     autouse: 当默认为False,就可以选择另外两种方式来调用fixture。当设置为True时,在一个session内的所有的测试用例都会自动调用这个fixture;

     ids: 每个字符串id的列表,每个字符串对应于params 这样他们就是测试ID的一部分。 如果没有提供ID它们将从params自动生成;

     name: fixture的名称,代表装饰函数的名称。

二、fixture函数的调用

fixture函数定义完成之后,如果想在测试用例中调用它,调用方式有三种:

☆ 直接调用;

☆ 使用fixture调用,在测试用例前加上“@pytest.mark.usefixtures(“名”)”;

☆ 使用fixture的autouse参数来调用,将autose参数置为True,则该session下的所有用例都会自动调用它。

三、fixture函数的返回

fixture可以返回一个值、一个元组、list或字典。

四、conftest.py的使用

如果多个用例需要调用同一个功能。我们可以将fixture写入conftest.py 配置文件里实现数据共享,同时又方便统一管理这些公共的功能。

conftest.py配置需要注意以下几点:

☆ conftest.py配置脚本名称是固定的,不能改名称;

☆ conftest.py与运行的用例要在同一个目录下,并且有__init__.py文件;

☆ 不需要import导入 conftest.py,用例会自动查找。

五、使用实例

conftest.py以及test_fixture.py放在同一目录下,test_fixture.py即为测试用例。

conftest.py内容如下:

import pytest@pytest.fixture()
def user():print("获取用户名")a = "hillwill"b = "wxt"return (a,b)

test_fixture.py内容如下:

import pytestdef test_1(user):user1 = user[0]print("用户名1:%s" % user1)assert user1 == "hillwill"def test_2(user):user2 = user[1]print("用户名2:%s" % user2)assert user1 == "wxt"if __name__ == "__main__":pytest.main(["-s", "test_fixture.py"])

pytest测试框架(二)---fixture介绍相关推荐

  1. Pytest测试框架(二):pytest 的setup/teardown方法

    系列文章目录 Pytest测试框架(一):pytest安装及用例执行 Pytest测试框架(二):pytest 的setup/teardown方法 Pytest测试框架(三):pytest fixtu ...

  2. Pytest 测试框架——数据驱动

    引言 前面已经和大家介绍过 Unittest 测试框架的数据驱动框架 DDT,以及其实现原理.今天和大家分享的是 Pytest 测试框架的数据驱动,Pytest 测试框架的数据驱动是由 pytest ...

  3. Pytest测试框架(五):pytest + allure生成测试报告

    系列文章目录 Pytest测试框架(一):pytest安装及用例执行 Pytest测试框架(二):pytest 的setup/teardown方法 Pytest测试框架(三):pytest fixtu ...

  4. Python编程必不可少的pytest测试框架

    进行编程测试重要的是为了更高效的完成功能的实现. pytest是基于unittest实现的第三方测试框架,比 unittest 更加的简洁.高效,并且可以完美兼容 unittest 的测试代码,无需对 ...

  5. pytest测试框架--fixture的基本使用

    1.fixture的含义 fixture的目的是提供一个测试的基线,在此基线基础上,可以更可靠的进行重复测试. 2.fixture的优势 Pytest的fixture相对于传统的xUnit的setup ...

  6. pytest系列——fixture函数使用(pytest测试框架测试固件)

    前言 setup和teardown能实现在测试用例执行之前或之后做一些操作,但是这种是整个测试脚本全局生效的: 如果我们想实现某些用例执行之前进行登录,某些用例执行之前不需要进行登录,这种场景我们再使 ...

  7. pytest测试框架_聊聊 Python 的单元测试框架(三):最火的 pytest

    本文首发于 HelloGitHub 公众号,并发表于 Prodesire 博客. 一.介绍 本篇文章是<聊聊 Python 的单元测试框架>的第三篇,前两篇分别介绍了标准库 unittes ...

  8. Pytest系列——allure(原理)之allure工具与Pytest测试框架集成

    官方介绍 1.Allure Framework是一种灵活的轻量级多语言测试报告工具,不仅可以以简洁的Web报告形式非常简洁地显示已测试的内容,也允许参与开发过程的每个人从日常测试中提取最大程度的有用信 ...

  9. pytest测试框架——allure报告

    文章目录 一.allure的介绍 二.allure的运行方式 三.allure报告的生成 方式一.在线报告.会直接打开默认浏览器展示当前报告 方式二.静态资源文件报告(带index.html.css. ...

最新文章

  1. redis 在 php 中的应用(事务 [ Transaction ] 篇)
  2. mysql grant all详解_grant all赋权后mysql.user表权限字段还是N,但能登录和新建表
  3. vs打开php项目路径,如何让vscode右键项目文件夹打开
  4. CSS外边距折叠引发的问题
  5. CentOS 6.5环境实现corosync+pacemaker实现DRBD高可用
  6. 匹配中文字符的正则表达式: [/u4e00-/u9fa5]
  7. Qt学习笔记-----拖放
  8. CSS基础(part13)--浮动
  9. 前端学习(1173):两种字符串方法
  10. charles请求转发_Charles安装与基本操作
  11. JavaScript 框架之战结束:React 是最终赢家?
  12. 系统学习深度学习(五) --递归神经网络原理,实现及应用
  13. 解决Mac上“文本编码Unicode(UTF-8)“不适用的方法
  14. 软件工程导论复习之可行性研究
  15. __wakeup()绕过
  16. 怎么用按键精灵快速开发计算距离自己最近的怪物/包裹/金矿坐标的脚本
  17. 如何去掉抖音短视频水印----全网最好用的去抖音视频水印方法
  18. 如何利用 Apache APISX 提升 Nginx 的可观测性
  19. java圈子_从JAVA入了这个圈子,有多少老司机和他一样?
  20. 迎接互联网的辛迪加时代

热门文章

  1. ssh登录发生加密算法报错解决办法
  2. 在虚拟宿主环境中承载 Active Directory 域控制器时需要考虑的事项
  3. VMware NSX系列教程-部署NSX Manager(转)
  4. 项目管理学习总结(4)——项目团队,如何展开有效沟通?
  5. 软件架构设计的六大原则
  6. jQ判断一个元素是否为空
  7. ionic 上拉加载更多
  8. 集线器,路由器,交换机的作用和区别是什么?如何区分交换机,集线器,路由器?...
  9. Metro风格的Android界面应用
  10. 在填写表单中输入全角数字的解决方案