Pytest中装饰器@pytest.mark.parametrize('参数名',list)可以实现测试用例参数化,类似DDT
1、第一个参数是字符串,多个参数中间用逗号隔开
2、第二个参数是list,多组数据用元祖类型;传三个或更多参数也是这样传。list的每个元素都是一个元组,元组里的每个元素和按参数顺序一一对应
3、传一个参数 @pytest.mark.parametrize('参数名',list) 进行参数化
4、传两个参数@pytest.mark.parametrize('参数名1,参数名2',[(参数1_data[0], 参数2_data[0]),(参数1_data[1], 参数2_data[1])]) 进行参数化,当装饰给方法时,这时方法被被执行2次,第1次:参数名1 对应值 参数1_data[0],参数名2 对应值 参数2_data[0]
第2次:参数名1 对应值 参数1_data[1],参数名2 对应值 参数2_data[1],这样就可以用到我们测试用例执行中,根据用例的多少,调用多次,断言多次,不需要用循环去写了。
我们试着尝试list里面嵌套字符串、列表、元祖、字典时是如何处理的,请看下面脚本执行情况
import pytest
class Test(object):
#列表
#====参数为列表====
@pytest.mark.parametrize('a',[1])
def test01(self,a):
print(type(a),a)
@pytest.mark.parametrize('b