zoukankan      html  css  js  c++  java
  • pytest 之数据驱动参数化:pytest.mark.parametrize

      在测试用例的前面加上:

    @pytest.mark.parametrize("参数名", 列表数据)  # (mark 译:马尔科、parametrize 译:普软木踹丝)

      参数名:用来接收每一项数据,并作为测试用例的参数。

      列表数据:一组测试数据,元祖、字典、列表。

    方式一:

      @pytest.mark.parametrize('参数名', [数据1, 数据2, 数据3......])

    import pytest
    
    
    @pytest.mark.parametrize('demo', [1, 2, 3, 4])
    def test_demo(demo):
        print(f'测试数据为:{demo}')
        assert demo in [0, 1, 2, 3, 4, 5]

      执行结果:

    方式二:

      @pytest.mark.parametrize("参数1,参数2", [(数据1, 数据2), (数据1, 数据2)])

    import pytest
    
    
    @pytest.mark.parametrize("a,b,c", [(1, 3, 4), (10, 35, 45), (22.22, 22.22, 44.44)])
    def test_add(a, b, c):
        res = a + b
        print(f"测试数据为:{res}")
        assert res == c

      执行结果:

    方式三:(笛卡尔积)

    • 组合参数化:多组参数,依次组合。
      • 使用多个@pytest.mark.parametrize  
    import pytest
    
    
    @pytest.mark.parametrize('test1', [1, 2])
    @pytest.mark.parametrize('test2', [3, 4])
    def test_demo(test1, test2):
        print(f'测试数据为:{test1}和{test2}')
        assert (test1, test2) in [(1, 3), (1, 4), (2, 3), (2, 4), (5, 6)]

      执行结果:

    *******请大家尊重原创,如要转载,请注明出处:转载自:https://www.cnblogs.com/shouhu/,谢谢!!******* 

  • 相关阅读:
    centos 用户管理
    rsync 实验
    文件共享和传输
    PAT 1109 Group Photo
    PAT 1108 Finding Average
    PAT 1107 Social Clusters
    PAT 1106 Lowest Price in Supply Chain
    PAT 1105 Spiral Matrix
    PAT 1104 Sum of Number Segments
    PAT 1103 Integer Factorization
  • 原文地址:https://www.cnblogs.com/shouhu/p/12392744.html
Copyright © 2011-2022 走看看