欢迎访问宙启技术站
智能推送

使用parametrize()函数进行数据输入的自动化测试

发布时间:2023-12-23 17:45:45

parametrize()函数是pytest框架中的一个内置函数,可以用于自动化测试中的数据输入参数化。该函数可以接收一个参数名列表和一个参数值列表,并根据参数名列表的个数自动生成多个测试用例,每个测试用例使用不同的参数值进行测试。

下面是一个使用parametrize()函数的简单示例:

import pytest

# 测试函数,计算两个数的和
def add(a, b):
    return a + b

# 使用parametrize()函数进行参数化
@pytest.mark.parametrize("a, b, expected", [
    (1, 1, 2),   #       个测试用例,a=1, b=1, 期望结果为2
    (2, 3, 5),   # 第二个测试用例,a=2, b=3, 期望结果为5
    (0, 0, 0),   # 第三个测试用例,a=0, b=0, 期望结果为0
    (-1, -1, -2) # 第四个测试用例,a=-1, b=-1, 期望结果为-2
])
def test_add(a, b, expected):
    assert add(a, b) == expected

在上面的示例中,我们定义了一个add()函数用于计算两个数的和。然后使用parametrize()函数对test_add()函数进行参数化,其中参数名列表为"a, b, expected",参数值列表则是一个包含多个元组的列表。每个元组中的值对应于一个测试用例的参数值, 个值为a的值,第二个值为b的值,第三个值为期望的结果。

通过上面的参数化,parametrize()函数会自动生成4个测试用例,分别对应于参数值列表中的4个元组。这样我们就可以仅使用一个test_add()函数就完成了对多个测试用例的测试。

parametrize()函数还可以灵活地进行参数化,例如可以使用多个参数名列表和参数值列表,并且列表的长度可以不相等,这样可以生成更多的测试用例组合。

总结起来,parametrize()函数是pytest框架中非常有用的一个函数,可以帮助自动化测试中的数据输入参数化,提高测试效率和可复用性。