pytes快速入门(4)--数据驱动

pytest中数据驱动的实现:在测试用例上加@pytest.mark.parametrize,用于接收测试数据

具体实现方式:

1、单个参数

@pytest.mark.parametrize("参数名",列表数据),其中,

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

列表数据:一组测试数据

注意:

测试方法中传入的参数名称必须与参数名相同

2、多个参数

@pytest.mark.parametrize("参数名1,参数名2,参数名3",列表数据)

注意:

(1)测试方法中传入的参数名称必须与参数名相同

(2)参数名的个数需与参数列表中每一项数据的个数相同

附录

 1 import pytest
 2 
 3 def add(*args):
 4     sum = 0
 5     for item in args:
 6         sum += item
 7     return sum
 8 
 9 @pytest.mark.parametrize("a", [(1, 3, 4), (10, 35, 45), (22.22, 22.22, 44.44)])
10 def test_add(a):
11     print(a)      # a的取值分别为(1,3,4)、(10,35,45)、(22.22, 22.22, 44.44)
12 
13 '''
14 第一轮 a = 1  b = 3  c = 4
15 第二轮 a = 10  b = 35  c = 45
16 第三轮 a = 22.22  b = 22.22  c = 44.44
17 '''
18 @pytest.mark.parametrize("a,b,c", [(1, 3, 4), (10, 35, 45), (22.22, 22.22, 44.44)])
19 def test_add1(a,b,c):
20     assert c == add(a,b)

测试结果

 补充说明:  【了解即可】

除了上述的单参数和多参数,还可以进行参数的组合,即多组参数,依次组合。

1 @pytest.mark.parametrize("x", [0, 1])
2 @pytest.mark.parametrize("y", [2, 3])
3 def test_add(x, y):
4     pass

此时对应的测试用例共有4个,分别为0,2/0,3/1,2/1,3

-- 类似于数据库中的笛卡尔乘积。

原文地址:https://www.cnblogs.com/yif930916/p/14790839.html