2.pytest前后置(固件、夹具)处理
# 在所有用例之前,只执行一次
def setup_class(self):
print('在每个类执行前的初始化的工作,比如:创建日志对象,连接数据库等') # 在所有用例之后,只执行一次
def teardown_class(self):
print('在每个类执行完成之后的扫尾动物,比如:销毁日志对象,断开数据库等') # 在每个用例之前,都执行一次
def setup(self):
print('在每个测试用例执行之前执行的代码')
# 在每个用例之后,都执行一次
def teardown(self):
print('在每个测试用例执行完成之后执行的代码')
"""
执行顺序与上下顺序无关
"""
格式
@pytest.fixture(scope='',params='',autouse='',ids='',name='')
def my_fixture():#自定义的前、后置方法,使用装饰器声明
print('这是前置方法')
yield '返回值,可有可无' # yield分隔,上面的代码是执行用例前执行,下面的代码用例执行完执行
# return 在返回结果后结束函数的运行,而yield 则是让函数变成一个生成器,生成器每次产生一个值(yield语句),函数被冻结,被唤醒后再产生一个值
print('这是后置方法')
#参数
scope:表示被pytest.fixture标记的方法的作用域
function:函数,默认的
class:类作用域
module:模块 整个py文件
package/session:包作用域、会话作用域
params:参数化,有多少个值,就会执行多少次用例
autouse:True:自动执行,默认是FALSE
ids:当使用params参数化时,给每一个值设置一个变量名
name:表示是被@pytest.fixture标记的方法取一个别名
@pytest.fixture(scope='function')
def my_fixture():
print('这是前置方法')
yield
print('这是后置方法')
class TestRegister:
#在用例函数传参里面传入对应的方法,传入该方法的用例会有前后置操作
def test_register(self,my_fixture):
print('测试注册')
def test_login(self):
print('测试登录')
全部自动执行
#autouse默认是False,我们给指定场景传入,如果是True,不需要传入全部会调用,相当于setup、teardown效果
@pytest.fixture(autouse=True)
def my_fixture():
print('这是前置方法')
yield 'sussic'
print('这是后置方法')
params支持列表、元组、字典列表(列表套字典)、字典元组(元组套字典)四种格式
@pytest.fixture(params=['test1','test2'])
def my_fixture(request): # 传入request
#可以使用request.param获取到params里面的参数 ,固定写法,不带s
#params里面有多少个值,用例就会执行多少次
@pytest.fixture(params=['test1','test2'],ids=[a,b])
name
@pytest.fixture(name='new_name') #指定一个别名,使用该别命调用,原来的my_fixture不可再用
- conftest.py文件是单独存放的一个夹具配置文件,名称不能更改
- 可以在不同的py文件中使用同一个fixture函数
- 在conftest.py里面编写好前后置方法,然后在其他文件的方法直接传入夹具方法名就可以,可以跨文件使用,不需要导入文件
- 原则上conftest.py文件和用例文件同级,可以有多个conftest文件,也可以在项目根目录下,都可以实现全局调用
- fixtrue 的session
- fixture的class
- setup_class
- fixture的function
- setup
- 查询当前目录下的conftest.py文件
- 查询当前目录下的pytest.ini文件
- 查询用例目录下的conftest.py文件
- 查询py文件中是否有setup/teardown/setup_calss/teardown_class
- 再根据pytest.ini文件规则去查找执行l
2.pytest前后置(固件、夹具)处理的更多相关文章
- python自动化测试框架的unittest与pytest前后置条件的区别
前言: 笔者先试有用过unittest的前后置条件和pytest的前后置条件,觉得pytest的前后置条件比unittest的要简洁.方便很多.不过在使用unittest的前后置条件时,已经觉得在和每 ...
- pytest(6)-Fixture(固件)
什么是固件 Fixture 翻译成中文即是固件的意思.它其实就是一些函数,会在执行测试方法/测试函数之前(或之后)加载运行它们,常见的如接口用例在请求接口前数据库的初始连接,和请求之后关闭数据库的操作 ...
- pytest封神之路第四步 内置和自定义marker
可以通过命令行查看所有marker,包括内置和自定义的 pytest --markers 内置marker 内置marker本文先讲usefixtures .filterwarnings .skip ...
- pytest使用总结笔记
简介 pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高.并且pytest兼容unittest的用例,支 ...
- Pytest自动化测试 - 简易教程
简介 pytest是动态编程语言Python专用的测试框架,它具有易于上手.功能强大.可扩展性好.兼容性强.效率高.第三方插件丰富等特点. 功能特征: 完整的文档,包括安装,教程和PDF文档 简单而又 ...
- 如何使用Pytest进行自动化测试
为什么需要自动化测试 自动化测试有很多优点,但这里有3个主要的点 可重用性:不需要总是编写新的脚本,除非必要,即使是新的操作系统版本也不需要编写脚本. 可靠性:人容易出错,机器不太可能.当运行不能跳过 ...
- Pytest单元测试框架之parametrize参数化
1.参数化的本质:相同的步骤,但测试数据不同,比如登录的场景 import mathimport pytest# 方式一:分离出Listdef list_Test(): list = [ [2, 2, ...
- [翻译]pytest测试框架(一)
此文已由作者吴琪惠授权网易云社区发布. 欢迎访问网易云社区,了解更多网易技术产品运营经验. 纯官网译文而已... pytest是一个成熟的.全功能的python测试工具. pytest框架编写测试用例 ...
- pytest 常见用法
前言 之前一篇文章简单介绍了 pytest 以及 fixture :https://www.cnblogs.com/shenh/p/11572657.html .实际在写自动化测试脚本中,还会有一些很 ...
随机推荐
- Java源码分析 | Object
本文基于 OracleJDK 11, HotSpot 虚拟机. Object 定义 Object 类是类层次结构的根.每个类都有 Object 类作为超类.所有对象,包括数组等,都实现了这个类的方法. ...
- 在微信小程序中,如何获取 for 循环的 index
微信小程序中,for 循环的 index(索引值)可以用wx:for-index="index"来获取. <view class="item" wx:fo ...
- 如何使用.NET 6的IHostedService和BackgroundService?
大家好,我是张飞洪,感谢您的阅读,我会不定期和你分享学习心得,希望我的文章能成为你成长路上的垫脚石,让我们一起精进. 本章是<定制ASP NET 6.0框架系列文章>的第七篇.本文内容和定 ...
- windows绕过杀软添加账户密码
windows绕过杀软添加账户密码 起因:system权限下存在杀软无法添加账户信息 绕过方法 1.C#脚本 运行后会在目标机器上创建一个用户为 wh4am1 密码为 qqai@love 的 Admi ...
- 「题解报告」CF1067A Array Without Local Maximums
大佬们的题解都太深奥了,直接把转移方程放出来让其他大佬们感性理解,蒟蒻们很难理解,所以我就写了一篇让像我一样的蒟蒻能看懂的题解 原题传送门 动态规划三部曲:确定状态,转移方程,初始状态和答案. --神 ...
- HC32L110(三) HC32L110的GCC工具链和VSCode开发环境
目录 HC32L110(一) HC32L110芯片介绍和Win10下的烧录 HC32L110(二) HC32L110在Ubuntu下的烧录 HC32L110(三) HC32L110的GCC工具链和VS ...
- KingbaseES例程之拥有大量索引的表导入数据
概述 如何快速插入大量数据比如几千万上亿的带索引的数据表. 数据准备 准备一个拥有二十个索引的数据表. kingbase=# \d+ bigtab Table "kingbase.bigta ...
- 全局索引与分区索引对于SQL性能影响的比较
KingbaseES 提供了对于分区表 global index 的支持.global index 不仅提供了对于唯一索引功能的改进(无需包含分区键),而且在性能上相比非global index (l ...
- 国内外各大物联网IoT平台鸟瞰和资源导航
一.国内外物联网平台 国内 百度物接入IoT Hub 阿里云物联网套件 智能硬件开放平台 京东微联 机智云IoT物联网云服务平台及智能硬件自助开发平台 庆科云FogCloud Ablecloud物联网 ...
- 在Windows 2012 R2上安装vcenter 5.5
在Windows 2012 R2上安装vCenter 5.5做个实验,发现安装的时候卡在Install Directory service了. 重启后,再装也一样. 上网查了一下,说是要装好ADLDS ...