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 ==============================
    
  • 相关阅读:
    CompletableFuture组合式异步编程
    java日志:slf4j
    Protobuffer生成java类
    变量快速变camel写法
    上海有线通下载exe会302转发请求
    ClickOnce添加自定义prerequisite
    International Conference for Smart Health 2015 Call for Papers
    IEEE/ACM ASONAM 2014 Industry Track Call for Papers
    Call for Papers IEEE/ACM International Conference on Advances in Social Network Analysis and Mining (ASONAM)
    Call for Papers International Conference for Smart Health (ICSH) 2014
  • 原文地址:https://www.cnblogs.com/hghua/p/13266380.html
Copyright © 2011-2022 走看看