zoukankan      html  css  js  c++  java
  • pytes快速入门(4)--数据驱动

    pytest中数据驱动的实现:在测试用例上加@pytest.mark.parametrize,用于接收测试数据

    具体实现方式:

    1、单个参数

    @pytest.mark.parametrize("参数名",列表数据),其中,

    参数名:用来接收列表数据中的每一项数据,作为测试用例中的参数

    列表数据:一组测试数据

    注意:

    测试方法中传入的参数名称必须与参数名相同

    2、多个参数

    @pytest.mark.parametrize("参数名1,参数名2,参数名3",列表数据)

    注意:

    (1)测试方法中传入的参数名称必须与参数名相同

    (2)参数名的个数需与参数列表中每一项数据的个数相同

    附录

     1 import pytest
     2 
     3 def add(*args):
     4     sum = 0
     5     for item in args:
     6         sum += item
     7     return sum
     8 
     9 @pytest.mark.parametrize("a", [(1, 3, 4), (10, 35, 45), (22.22, 22.22, 44.44)])
    10 def test_add(a):
    11     print(a)      # a的取值分别为(1,3,4)、(10,35,45)、(22.22, 22.22, 44.44)
    12 
    13 '''
    14 第一轮 a = 1  b = 3  c = 4
    15 第二轮 a = 10  b = 35  c = 45
    16 第三轮 a = 22.22  b = 22.22  c = 44.44
    17 '''
    18 @pytest.mark.parametrize("a,b,c", [(1, 3, 4), (10, 35, 45), (22.22, 22.22, 44.44)])
    19 def test_add1(a,b,c):
    20     assert c == add(a,b)

    测试结果

     补充说明:  【了解即可】

    除了上述的单参数和多参数,还可以进行参数的组合,即多组参数,依次组合。

    1 @pytest.mark.parametrize("x", [0, 1])
    2 @pytest.mark.parametrize("y", [2, 3])
    3 def test_add(x, y):
    4     pass

    此时对应的测试用例共有4个,分别为0,2/0,3/1,2/1,3

    -- 类似于数据库中的笛卡尔乘积。

  • 相关阅读:
    js中的函数节流
    使用React写的一个小小的登录验证密码组件
    React如何进行事件传参
    微信小程序实现文字跑马灯
    正则表达式验证邮箱和手机号
    小程序事件传参
    漏覆盖专区
    jmetr _MD5加密_获取签名
    JMeter 中_time 函数的使用(时间戳、当前时间)
    获取响应数据___JSON Extractor 后置处理器
  • 原文地址:https://www.cnblogs.com/yif930916/p/14790839.html
Copyright © 2011-2022 走看看