pytest测试框架(二)---fixture介绍
目录
一、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介绍相关推荐
- Pytest测试框架(二):pytest 的setup/teardown方法
系列文章目录 Pytest测试框架(一):pytest安装及用例执行 Pytest测试框架(二):pytest 的setup/teardown方法 Pytest测试框架(三):pytest fixtu ...
- Pytest 测试框架——数据驱动
引言 前面已经和大家介绍过 Unittest 测试框架的数据驱动框架 DDT,以及其实现原理.今天和大家分享的是 Pytest 测试框架的数据驱动,Pytest 测试框架的数据驱动是由 pytest ...
- Pytest测试框架(五):pytest + allure生成测试报告
系列文章目录 Pytest测试框架(一):pytest安装及用例执行 Pytest测试框架(二):pytest 的setup/teardown方法 Pytest测试框架(三):pytest fixtu ...
- Python编程必不可少的pytest测试框架
进行编程测试重要的是为了更高效的完成功能的实现. pytest是基于unittest实现的第三方测试框架,比 unittest 更加的简洁.高效,并且可以完美兼容 unittest 的测试代码,无需对 ...
- pytest测试框架--fixture的基本使用
1.fixture的含义 fixture的目的是提供一个测试的基线,在此基线基础上,可以更可靠的进行重复测试. 2.fixture的优势 Pytest的fixture相对于传统的xUnit的setup ...
- pytest系列——fixture函数使用(pytest测试框架测试固件)
前言 setup和teardown能实现在测试用例执行之前或之后做一些操作,但是这种是整个测试脚本全局生效的: 如果我们想实现某些用例执行之前进行登录,某些用例执行之前不需要进行登录,这种场景我们再使 ...
- pytest测试框架_聊聊 Python 的单元测试框架(三):最火的 pytest
本文首发于 HelloGitHub 公众号,并发表于 Prodesire 博客. 一.介绍 本篇文章是<聊聊 Python 的单元测试框架>的第三篇,前两篇分别介绍了标准库 unittes ...
- Pytest系列——allure(原理)之allure工具与Pytest测试框架集成
官方介绍 1.Allure Framework是一种灵活的轻量级多语言测试报告工具,不仅可以以简洁的Web报告形式非常简洁地显示已测试的内容,也允许参与开发过程的每个人从日常测试中提取最大程度的有用信 ...
- pytest测试框架——allure报告
文章目录 一.allure的介绍 二.allure的运行方式 三.allure报告的生成 方式一.在线报告.会直接打开默认浏览器展示当前报告 方式二.静态资源文件报告(带index.html.css. ...
最新文章
- redis 在 php 中的应用(事务 [ Transaction ] 篇)
- mysql grant all详解_grant all赋权后mysql.user表权限字段还是N,但能登录和新建表
- vs打开php项目路径,如何让vscode右键项目文件夹打开
- CSS外边距折叠引发的问题
- CentOS 6.5环境实现corosync+pacemaker实现DRBD高可用
- 匹配中文字符的正则表达式: [/u4e00-/u9fa5]
- Qt学习笔记-----拖放
- CSS基础(part13)--浮动
- 前端学习(1173):两种字符串方法
- charles请求转发_Charles安装与基本操作
- JavaScript 框架之战结束:React 是最终赢家?
- 系统学习深度学习(五) --递归神经网络原理,实现及应用
- 解决Mac上“文本编码Unicode(UTF-8)“不适用的方法
- 软件工程导论复习之可行性研究
- __wakeup()绕过
- 怎么用按键精灵快速开发计算距离自己最近的怪物/包裹/金矿坐标的脚本
- 如何去掉抖音短视频水印----全网最好用的去抖音视频水印方法
- 如何利用 Apache APISX 提升 Nginx 的可观测性
- java圈子_从JAVA入了这个圈子,有多少老司机和他一样?
- 迎接互联网的辛迪加时代