pytest框架之parametries数据驱动参数化

在测试用例的前面加上:@pytest.mark.parametrize('参数名', 列表数据)

参数名:用来接收每一项数据,并作为测试用例的参数

列表参数:一组测试数据(元组、列表、字典)

方式一:

  @pytest.mark.parametrize('参数', [数据1, 数据2, 数据3......])

import pytest


@pytest.mark.parametrize('demo', [1, 2, 3, 4])
def test_demo(demo):
    print(f'测试数据为:{demo}')
    assert demo in [0, 1, 2, 3, 4, 5]

  运行结果:

  

方式二:

  @pytest.mark.parametrize('参数1 参数2', [(数据1, 数据2), (数据3, 数据4), (数据5, 数据6),......])

import pytest


@pytest.mark.parametrize('demo1, demo2', [(1, 2), (3, 4)])
def test_demo(demo1, demo2):
    print(f'测试数据为:{demo1}和{demo2}')
    assert demo1, demo2 in [(1, 2), (3, 4), (5, 6)]

  运行结果:

  

方式三(笛卡尔积):

  使用多个@pytest.mark.parametrize

import pytest


@pytest.mark.parametrize('demo1', [1, 2])
@pytest.mark.parametrize('demo2', [3, 4])
def test_demo(demo1, demo2):
    print(f'测试数据为:{demo1}和{demo2}')
    assert (demo1, demo2) in [(1, 3), (1, 4), (2, 3), (2, 4), (5, 6)]

  运行结果:

  

原文地址:https://www.cnblogs.com/xiaogongjin/p/11683547.html