pytest参数化

之前一直用的unittest,最近看pytest也挺火的,就试着玩玩

今天来说下pytest参数化的使用方法

举个 a+b很简单的例子来说我们在测试过程中,同一个用例,可能有多组入参,如果每个入参写一个用例就会显得有些繁琐

pytest参数化

 

 1、如何简化上边的用例,可以利用参数化的方法

@pytest.mark.parametrize

pytest参数化

 

2、一定要注意:@pytest.mark.parametrize必须写在用例的上方

 

3、参数格式说明

parametrize后边紧跟元组格式参数,元组里边的参数可以是任意形式,比如上图入参是在一个列表中放N个列表,其实列表中放元组也是可以的

pytest参数化

 

 如下所有参数放在一个元组中,也是可以执行成功的

pytest参数化

 

脚本如下:

import pytest


def add(a, b):
print(a, a+b)
return a+b


# test_add(2, 3, 6)
# test_add(2, 3, 5)
# test_add(1, 4, 55)
# @pytest.mark.parametrize('a, b, exp', [
# [2, 3, 6],
# [2, 3, 5],
# [1, 4, 55]
#
# ])
@pytest.mark.parametrize('a, b, exp', (
(2, 3, 6),
(2, 3, 5),
(1, 4, 55))

)
def test_add(a, b, exp):
assert add(a, b) == exp


if __name__ == '__main__':
pytest.main(["-s", "-v", "test_add.py"])


上一篇:xml.dom.minidom包使用


下一篇:pytest之parametrize参数化