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 ==============================
    
  • 相关阅读:
    SharePoint安全性验证无效
    纠结的TreeView动态加载节点
    Microsoft CRM 安装问题汇总
    moss里用Response生成Excel以后页面按钮失效问题
    zt:System.Globalization 命名空间
    ZT:自定义的泛型类和泛型约束
    开博了,,,
    zt:SilverLight遍历父子控件的通用方法
    zt: 学习WPF绑定
    zt:使用复杂类型定义模型(实体框架)
  • 原文地址:https://www.cnblogs.com/hghua/p/13266380.html
Copyright © 2011-2022 走看看