Python pytest+yaml 文件,如何使用yaml文件中的变量
时间: 2023-05-23 15:05:07 浏览: 287
A:在pytest中使用yaml文件中的变量,可以使用PyYAML库读取yaml文件,然后将其转换为字典,再通过pytest.fixture传递给测试用例。
以下是一些示例代码:
1.创建一个名为config.yaml的yaml文件,包含变量test_url和test_data:
test_url: "http://example.com"
test_data:
username: "testuser"
password: "testpassword"
2.在conftest.py文件中,使用PyYAML库读取yaml文件,并将其转换为字典:
import yaml
def pytest_addoption(parser):
parser.addoption("--config", action="store", default="config.yaml", help="path to config file")
@pytest.fixture(scope="session")
def config(request):
with open(request.config.getoption("--config"), 'r') as file:
config = yaml.safe_load(file)
return config
3.在测试用例中,使用@pytest.mark.parametrize装饰器传递从config字典中读取的变量:
import requests
import pytest
@pytest.mark.parametrize('username,password', [(config['test_data']['username'], config['test_data']['password'])])
def test_login(config, username, password):
response = requests.post(config['test_url'], data={'username': username, 'password': password})
assert response.status_code == 200
在这个示例中,我们从config字典中读取了test_data中的用户名和密码变量,并将其传递给测试用例test_login。
阅读全文