pytest之@pytest.mark.parametrize实例讲解

在测试用例的前面加上:
@pytest.mark.parametrize("参数名",列表数据)
参数名:用来接收每一项数据,并作为测试用例的参数。
列表数据:一组测试数据。

#====参数为列表嵌套字典====
import pytest

def secend(c,b):
    add= int(b)+int(c)
    print(add)
    return add

@pytest.mark.parametrize('case',[{'b':'34','c':'56'},{'b':'39','c':'56'}])
def test_1(case):
    pp=case
    tt=secend(**case)
    print("测试账号:%s" % tt)


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

运行结果:

============================= test session starts =============================
platform win32 -- Python 3.5.4, pytest-5.1.3, py-1.7.0, pluggy-0.13.1
rootdir: C:\Users\heguanghua\package\untitled_web
plugins: allure-pytest-2.8.5, PyTestReport-0.2.1, forked-1.0.2, html-1.22.0, metadata-1.7.0, rerunfailures-7.0, xdist-1.28.0
collected 2 items

1.py 90
测试账号:90
.95
测试账号:95
.

============================== 2 passed in 0.05s ==============================
#====参数为列表嵌套元组====
import pytest
test_datas = [
    (11, 22, 33),
    (22, 33, 55)
]

@pytest.mark.parametrize("data", test_datas)
def test_add02(data):
    res = data[0] + data[1]
    print(res)
    assert res == data[2]

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

运行结果:

============================= test session starts =============================
platform win32 -- Python 3.5.4, pytest-5.1.3, py-1.7.0, pluggy-0.13.1
rootdir: C:\Users\heguanghua\package\untitled_web
plugins: allure-pytest-2.8.5, PyTestReport-0.2.1, forked-1.0.2, html-1.22.0, metadata-1.7.0, rerunfailures-7.0, xdist-1.28.0
collected 2 items

1.py 33
.55
.

============================== 2 passed in 0.05s ==============================
#====参数为列表嵌套列表====
import pytest
test_datas = [
    [11, 22, 33],
    [22, 33, 55]
]

@pytest.mark.parametrize("data", test_datas)
def test_add02(data):
    res = data[0] + data[1]
    print(res)
    assert res == data[2]

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

运行结果:

============================= test session starts =============================
platform win32 -- Python 3.5.4, pytest-5.1.3, py-1.7.0, pluggy-0.13.1
rootdir: C:\Users\heguanghua\package\untitled_web
plugins: allure-pytest-2.8.5, PyTestReport-0.2.1, forked-1.0.2, html-1.22.0, metadata-1.7.0, rerunfailures-7.0, xdist-1.28.0
collected 2 items

1.py 33
.55
.

============================== 2 passed in 0.05s ==============================
posted @ 2020-07-08 13:22  不放弃自己  阅读(4120)  评论(0编辑  收藏  举报