关键字 开发-11 yaml文件中添加fixture功能

发布时间 2023-12-11 11:28:57作者: dack_deng

前言

每一条pytest用例都可以添加fixture的前置功能,只需要在用例的参数中传入在conftest.py文件中写的函数的名称就可以实现每条用例的前置和后置。

1. yaml文件中加入fixture的功能

因为我们实现了动态生成测试用例,所以我们可以直接通过在生成动态用例的时候就传入该fixture函数名。在conftest.py文件中,我们写入fixture函数:

@pytest.fixture()
def run_fixt():
    print('------------用例执行之前---------------')
    yield
    print('------------用例执行之后----------------')

之后在生成用例函数的时候,在函数中加入,用例前置的名称即可实现用例的前置后置功能。

f = create_function_from_parameters(func=execute_yaml_case,
                                                parameters=[
                                                    Parameter('request', Parameter.POSITIONAL_OR_KEYWORD),
                                                    Parameter('requests_session', Parameter.POSITIONAL_OR_KEYWORD),
                                                    Parameter('base_url', Parameter.POSITIONAL_OR_KEYWORD),
                                                    Parameter('run_fixt', Parameter.POSITIONAL_OR_KEYWORD),  # 添加用例前置后置功能
                                                ],
                                                documentation=case_name,
                                                func_name=case_name,
                                                func_filename=f"{self.module.__name__}.py")

运行一下看看是否成功:pytest .\data\test_login.yml -s

上面的方式,我们是在生成用例函数的时候,写死进去的,不是特别灵活,我们可以通过写在yaml文件中的方式,来灵活传入用例前置后置功能。