request是pytest的内置fixture。请求对象提供了访问请求测试上下文的权限,并且在fixture被间接参数化的情况下具有可选的“param”属性。
1. request.param
获取测试上下文的信息
1)利用fixture的params传参
import pytest
test_data = [{"user": "小明", "pwd": "123456"}]
#直接使用params接收参数
@pytest.fixture(params=test_data)
def login(request):
print(request.param)
print("进行登录的操作")
@pytest.mark.usefixtures("login")
def test_example(login):
print("登录后的操作")
运行后的结果
{'user': '小明', 'pwd': '123456'}
进行登录的操作
登录后的操作
2)使用parametrize传参
import pytest
test_user = ["小明", "小赵"]
test_pwd = [1, 2]
@pytest.fixture()
def input_user(request):
print(request.param)
return request.param
@pytest.fixture()
def input_pwd(request):
print(request.param)
return request.param