接口自动化测试:pytest自定义fixture传参request

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")

上述代码执行结果

posted @ 2020-10-09 16:25  沧海1024  阅读(400)  评论(0编辑  收藏  举报