zoukankan      html  css  js  c++  java
  • 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:Usersheguanghuapackageuntitled_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:Usersheguanghuapackageuntitled_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:Usersheguanghuapackageuntitled_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 ==============================
    
  • 相关阅读:
    线程的基础知识
    并行编程与PLINQ
    swing组件中数据更新与UI更新的关系
    关于EDT和SwingUtilities的invokeLater和invokeAndWait
    内容页访问母版页页控件的方法
    asp.net 中一般应用处理程序使用session
    正则表达式学习日记
    C#中马赛克算法
    初学C与C在TC2.0上运行的注意事项
    delphi7中两个BT的Bug
  • 原文地址:https://www.cnblogs.com/hghua/p/13266380.html
Copyright © 2011-2022 走看看