python-web自动化-conftest-fixture-2

1、补充:继上篇文章之后,补充的一个知识点。
A、前置操作得到的一些数据,如何传递给测试用例?
yeild 返回值
在测试用例当中:以fixture函数名作为用例参数。用例参数接收返回值。
测试函数的参数:1、fixture 2、参数化
B、如果fixture有返回值,
那么,将它作为测试函数的参数时,则可以不用使用: @pytest.mark.usefixtures(“fixture的函数名称”)
在这里插入图片描述
直接运行即可。
2、被fixture打到标签的函数,整理成一个py文件,就叫:conftest.py。
A、只存放fixture。
B、可以对外共享
C、共享的范围:当前存放conftest.py目录下的所有用例。
包含所有的子孙目录。所有用例可共享
D、conftest.py文件可以常见多个,在不同的包下面。即:层级创建
E、使用优先级:就近原则:
发现fiXture: 用例自己的模块 -》用例所在目录下的 conftest.py -》目录的父级目录下的conftest.py
F、嵌套使用:
a\什么是嵌套:就是一个fixture想使用另一个fixture,在原有的代码上增加一些代码。
b\怎么嵌套:

@pytest.fixture
def this_1_fixture():
	qianzhi
	yield
	houzhi

@pytest.fixture
def this_2_fixture(this_1_fixture):
	qianzhi2
	yield
	houzhi2

c\执行顺序
qianzhi qianzhi2 houzhi2 houzhi
d\嵌套级别
this_1_fixture >= this_2_fixture
例如:

@pytest.fixture    # setup,teardown
def root():
    print(" 项目根目录下的conftest.py  作用域为测试函数的 **** 前置代码")
    yield True
    print(" 项目根目录下的conftest.py  作用域为测试函数的 **** 后置代码")
 
 
@pytest.fixture
def init2(root):  # 直接使用root这个fiXture的前置后置,返回值。在它的基础上,增加一些内容。
    print(" 增加的:根目录包下的conftest.py  作用域为测试函数的 **** 前置代码")
    yield root
    print(" 增加的:根目录包下的conftest.py  作用域为测试函数的 **** 后置代码")
 
 
# @pytest.fixture    # setup,teardown  和上面的def init2(root)效果相同。
# def init():
#     print(" 项目根目录下的conftest.py  作用域为测试函数的 **** 前置代码")
#     print(" 增加的:day2包下的conftest.py  作用域为测试函数的 **** 前置代码")  # 增加的
#     yield True,100
#     print(" day2包下的conftest.py  作用域为测试函数的 **** 后置代码")
#     print(" 增加的:项目根目录下的conftest.py  作用域为测试函数的 **** 后置代码") # 增加的
"""
执行顺序:
root的前置
init2的前置
 
init2的后置
root的后置
"""
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值