网站首页 > 技术教程 正文
一、用例运行级别
模块级(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进阶
你 发表评论:
欢迎- 最近发表
-
- 阿里P8大佬总结的Nacos入门笔记,从安装到进阶小白也能轻松学会
- Linux环境下,Jmeter压力测试的搭建及报错解决方法
- Java 在Word中合并单元格时删除重复值
- 解压缩软件哪个好用?4款大多数人常用的软件~
- Hadoop高可用集群搭建及API调用(hadoop3高可用)
- lombok注解@Data没有toString和getter、setter问题
- Apache Felix介绍(apache fineract)
- Spring Boot官方推荐的Docker镜像编译方式-分层jar包
- Gradle 使用手册(gradle详细教程)
- 字节二面:为什么SpringBoot的 jar可以直接运行?
- 标签列表
-
- 下划线是什么 (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)
本文暂时没有评论,来添加一个吧(●'◡'●)