1、自定义一个带参数的fixture
- 用request接收参数,固定写法,换成其他的会报错
- 如果是字典形式,按照字典取值方式获取参数值
import pytest
@pytest.fixture(scope="module")
def log_fixture(request):
print("前置条件")
# param = request.param
user = request.param['user']
pwd = request.param['pwd']
print('接收到的用户名:%s,密码:%s' % (user,pwd))
yield
print("后置条件")
2、测试用例中调用fixture
- 在向fixture传参时,多个参数可以用字典方式传入
- @pytest.mark.parametrize中需要传入indirect=True,指定参数以函数方式运行,否则就没有fixture的作用了
@pytest.mark.parametrize("log_fixture",[{'user':'lpj','pwd':123456}],indirect=True)
# @pytest.mark.parametrize("log_fixture",[1,2,3])
@pytest.mark.parametrize("sex",["M","F"])
def test_01(log_fixture,sex):
print("sex:",sex)
print("测试用例01111")
上述代码执行结果