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

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

  • 相关阅读:
    VMWare虚拟机下为Ubuntu 12.04.1配置静态IP(NAT方式)
    VMWare虚拟机下为Windows Server 2012配置静态IP(NAT方式)
    Windows 7防火墙阻止了远程桌面连接的解决方法
    Win10系统如何在防火墙里开放端口
    ECharts 定制 label 样式
    目标值柱状图
    echarts中datazoom相关配置
    环形图
    带时间轴的指标监控柱状图
    2020mysql面试题
  • 原文地址:https://www.cnblogs.com/yif930916/p/14790839.html
Copyright © 2011-2022 走看看