pytest参数化

pytest有三种传参方式,我主要用到前两种

pytest的参数化方式

  • pytest.fixture()方式进行参数化,fixture装饰的函数可以作为参数传入其他函数

  • pytest.mark.parametrize()方式进行参数化

  • conftest.py 文件中存放参数化函数,可作用于模块内的所有测试用例

本章主要讲第二种方式:@pytest.mark.parametrize('参数名',list) 进行参数化

1. 传一个参数 @pytest.mark.parametrize('参数名',list) 进行参数化

2. 传两个参数@pytest.mark.parametrize('参数名1,参数名2',[(参数1_data[0], 参数2_data[0]),(参数1_data[1], 参数2_data[1])]) 进行参数化, 传三个或更多参数也是这样传。list的每个元素都是一个元组,元组里的每个元素和按参数顺序一一对应

从网上找了个例子,讲的很清楚,在这里借用下:

pytest.mark.parametrize()方式进行参数化

  • 采用标记函数参数化,传入单个参数,pytest.mark.parametrize("参数名",lists)

    mark.png

  • 采用标记函数传入多个参数,如pytest.mark.parametrize("para1, para2", [(p1_data_0, p2_data_0), (p1_data_1, p2_data_1),...]

  • 测试用例中传入2个参数,year和期望结果,使输入数据与预期结果对应,构造了2组会失败的数据,在执行结果中,可以看到失败原因:

image.png

 
  

猜你喜欢

转载自blog.csdn.net/sunny_happy08/article/details/83622516
今日推荐