网站首页 > 技术教程 正文
一、用例运行级别
模块级(setup_module/teardown_module)开始于模块始末,全局的
函数级(setup_function/teardown_function)只对函数用例生效(不在类中)
类级(setup_class/teardown_class)只在类中前后运行一次(在类中)
方法级(setup_method/teardown_method)开始于方法始末(在类中)
类里面的(setup/teardown)运行在调用方法的前后二、fixture使用
firture相对于setup和teardown有以下几点优势
1、命名方式灵活,不局限于setup和teardown这几个命名
2、conftest.py 配置里可以实现数据共享,不需要import就能自动找到一些配置
3、scope=”module” 可以实现多个.py跨文件共享前置
4、scope=”session” 可以实现多个.py跨文件使用一个session来完成多个用例三、入门操作
import pytest
@pytest.fixture()
def func():
print("我是前置 func")
yield 12
print("我是后置 func")
def test_data(func):
assert func == 12
print("我是 test_data")
def test_func(func):
print("我是func函数")- 与setup、teardown类似,fixture提供了测试执行前和执行后的动作处理,但是又比setup、teardown好用
- fixture通过yield区分前后置,前后置可以单独存在;fixture如果有后置,都会执行后置(除非前置报错)
- fixture可用于封装数据,也可用于封逻辑动作,使用范围非常广
- fixture可用于代码模块化、数据处理、流程设计等
四、fixture的执行方式
1、函数引用
import pytest
@pytest.fixture()
def func():
print("我是前置 func")
yield 12
print("我是后置 func")
def test_data(func):
assert func == 12
print("我是 test_data")2、自动适配-所有用例
import pytest
@pytest.fixture(autouse=True)
def func():
print("我是前置 func")
yield 12
print("我是后置 func")
def test_func():
print("我是func函数")3、usefixtures-手动调用
import pytest
@pytest.fixture
def func():
print("我是前置 func")
yield 12
print("我是后置 func")
@pytest.mark.usefixtures('func')
def test_func():
print("我是func函数")五、跨类、模块、包或会话共享fixture
- 执行顺序遵循session->package->module->class->function
- 每一类fixture可以是多个,同类按书写先后执行
- 模块中的fixture对函数、方法均有效,class中的 fixture只对方法有效
- 每一个函数前后均会执行模块中的class
- 在模块和类中有同名的fixture存在时:如果是function,类中会覆盖模块中,其它的不会覆盖
六、conftest说明
conftest是一个Python模块,它用于管理pytest插件的参数。它允许在项目的不同部分定义和重用测试插件参数,而无需在代码中进行任何特殊调用。使用conftest.py文件可以让测试代码更加模块化,并且更容易维护。
- 文件名称默认为conftest.py
- conftest.py可以有多个,搜索优先级自底而上,下层会覆盖上层(特别注意)
- conftest.py中的fixture支持函数直接引用、手动调用,也可以自动适配
- 上一篇: 如何安全拆卸各种类型的灯具:详细步骤与注意事项
- 下一篇: 光与灯具的专业术语 你知多少?
猜你喜欢
- 2024-11-17 这些年,英国女王就靠这件事赚了6000多万元!
- 2024-11-17 主题分类词汇 14 (Industry 工业)
- 2024-11-17 工件的安装与夹具,建议收藏
- 2024-11-17 Pytest fixture及conftest详解
- 2024-11-17 pytest框架进阶自学系列 | 在不同的层级上重写fixture
- 2024-11-17 仕诺康丨全程导板工具盒
- 2024-11-17 Pytest的内置fixture(七)
- 2024-11-17 你会买吗?可以边走边玩的Switch专用手柄支架Fixture S1开启众筹
- 2024-11-17 思林杰获得外观设计专利授权:“充电座(BBUChargingFixture)”
- 2024-11-17 软件测试 | pytest测试框架纸fixture进阶
欢迎 你 发表评论:
- 10-23Excel计算工龄和年份之差_excel算工龄的公式year
- 10-23Excel YEARFRAC函数:时间的"年份比例尺"详解
- 10-23最常用的10个Excel函数,中文解读,动图演示,易学易用
- 10-23EXCEL中如何计算截止到今日(两个时间中)的时间
- 10-2390%人不知道的Excel神技:DATEDIF 精准计算年龄,告别手动算错!
- 10-23计算工龄及工龄工资(90%的人搞错了):DATE、DATEDIF组合应用
- 10-23Excel中如何计算工作日天数?用这两个函数轻松计算,附新年日历
- 10-23怎样快速提取单元格中的出生日期?用「Ctrl+E」批量搞定
- 最近发表
-
- Excel计算工龄和年份之差_excel算工龄的公式year
- Excel YEARFRAC函数:时间的"年份比例尺"详解
- 最常用的10个Excel函数,中文解读,动图演示,易学易用
- EXCEL中如何计算截止到今日(两个时间中)的时间
- 90%人不知道的Excel神技:DATEDIF 精准计算年龄,告别手动算错!
- 计算工龄及工龄工资(90%的人搞错了):DATE、DATEDIF组合应用
- Excel中如何计算工作日天数?用这两个函数轻松计算,附新年日历
- 怎样快速提取单元格中的出生日期?用「Ctrl+E」批量搞定
- Excel日期函数之DATEDIF函数_excel函数datedif在哪里
- Excel函数-DATEDIF求司龄_exceldatedif函数计算年龄
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)

本文暂时没有评论,来添加一个吧(●'◡'●)