gpt4 book ai didi

python - 使用pytest测试多个选项

转载 作者:行者123 更新时间:2023-11-28 21:40:29 27 4
gpt4 key购买 nike

我正在尝试测试网络 API。假设一个端点接受多个参数:

  • 类型:可能的值为“大”、“小”、“中”
  • 颜色:可能的值为“黑色”、“白色”、“红色”
  • 运费:可能的值为“1”、“2”、“7”

我想测试这些的所有组合以确保 API 返回正确的结果。起初我以为我可以构建 3 个固定装置:

valid_types = ["big", "small", "medium"]
valid_colors = ['black', 'white', 'red']
valid_shipping = ['1', '2', '7']

@pytest.fixture(params=valid_types)
def valid_type(request):
return request.param


@pytest.fixture(params=valid_colors)
def valid_color(request):
return request.param


@pytest.fixture(params=valid_shipping)
def valid_ship(request):
return request.param

但是,我不确定如何为所有这些创建排列。我的测试应该像这样运行:

def test_api_options(valid_type, valid_color, valid_ship):
url_query = "?type={}&color={}&ship={}".format(valid_type, valid_color, valid_ship)
r = requests.get("{}{}".format(base_url, url_query)

测试应该针对每个排列运行,并生成一个新的 url,其中包含每个排列的可用选项。我如何使用 pytest 执行此操作?

最佳答案

这就是parametrization用于:

@pytest.mark.parametrize('valid_type', valid_types)
@pytest.mark.parametrize('valid_color', valid_colors)
@pytest.mark.parametrize('valid_ship', valid_shipping)
def test_api_options(valid_type, valid_color, valid_ship):

关于python - 使用pytest测试多个选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45577613/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com