Pytest测试框架(10):pytest_参数化@pytest.mark.parametrize()

使用@pytest.mark.parametrize()做参数化

fixture中的params也可以做参数化;参考地址:https://www.cnblogs.com/YouJeffrey/p/15414578.html

@pytest.mark.parametrize(args_name,args_value)
args_name:参数名,字符串,多个参数中间用逗号隔开
args_value:参数值(列表,元组,字典列表,字典元组),有多个值用例就会执行多少次,是list,多组数据用元祖类型;传三个或更多参数也是这样传。list的每个元素都是一个元组,元组里的每个元素和按参数顺序一一对应

例如:
1、传一个参数 @pytest.mark.parametrize('参数名',list) 进行参数化
2、传两个参数@pytest.mark.parametrize('参数名1,参数名2',[(参数1_data[0], 参数2_data[0]),(参数1_data[1], 参数2_data[1])]) 进行参数化

 

代码示例:

import pytest

class TestApi():


    @pytest.mark.parametrize("test_input", ["zhansan","wangwu","zhaoliu"])
    def test_02(self,test_input):
        print("-----"+str(test_input),"-----")

    @pytest.mark.parametrize("test_input,result", [("2+5",7),("3+3",6),("4+5",9)])
    def test_03(self,test_input,result):
        print(test_input+"="+str(result))



if __name__ == '__main__':

    pytest.main(["-vs"])

查看执行结果:

 

posted @ 2022-04-01 23:30  奔跑在路上you  阅读(133)  评论(0编辑  收藏  举报