zoukankan      html  css  js  c++  java
  • Python下的数据驱动模式DDT库

    1、DDT介绍
      DDT(Data-Driven Tests)数据驱动测试,测试数据与测试行为分离,通过数据来驱动测试
      DDt数据驱动测试,允许通过使用不同的测试数据运行一个测试用例,根据参数的个数可以运行多个不同的测试用例    
    
    2、为什么使用DDT
      1、提高代码复用率减少代码冗余
      2、可以将测试数据使用一个文件来存储
      3、数据和测试业务分离
    
    4、DDT库的安装
      1、直接在PyCharm->File->Setting->Project->Project Interpreter页面添加
      2、使用命令pip install ddt下载并安装
    
    5、API
      @ddt 类装饰器,作用于类上,应用于测试用例类
      @data 作用于方法上,把参数作为测试数据
      @unpack 方法装饰器添加解压功能
    
    6、具体应用示例
    import unittest
    from ddt import ddt, data, unpack
    '''
        1、导入ddt相关包:from ddt import ddt, data, unpack
        2、类上添加unittest.TestCase作用于测试用例上,和unittest一起使用
    '''
    
    
    @ddt
    class Testddt(unittest.TestCase):
        def setUp(self):
            pass
    
        '''结果运行三次'''
        @data(12, 13, 14)
        def test_1(self, value):
            print(value)
    
        '''结果运行一次,出(12,13,14)'''
        @data((12, 13, 14))
        def test_2(self, value):
            print(value)
    
        '''结果运行一次,输出12,13,14
           参数个数看的是元祖里面的个数
        '''
        @data((12, 13, 14))
        @unpack
        def test_3(self, value1, value2, value3):
            print(value1, value2, value3)
    
        '''结果运行3次,分别输出(3, 2)  (4, 3) (5, 3)'''
        @data((3, 2), (4, 3), (5, 3))
        def test_4(self, value):
            print(value)
    
        @data((3, 2), (4, 3), (5, 3))
        @unpack
        def test_5(self, value1, value2):
            print(value1,value2)
    
        @data([3, 2], [4, 3], [5, 3])
        def test_6(self, value1):
            print(value1)
    
        @data([3, 2], [4, 3], [5, 3])
        @unpack
        def test_7(self, value1, value2):
            print(value1,value2)
    
        @data({'first': 1, 'second': 3, 'third': 2},{'first': 4, 'second': 6, 'third': 5})
        def test_8(self, value1):
            print(value1)
    
        '''
        字典拆包,参数需要和key名称一致,分别对应key值输出1 3 2
        '''
        @data({'first': 1, 'second': 3, 'third': 2})
        @unpack
        def test_9(self, first, second, third):
            print(first,second,third)
       
    
    7、总结
      1、ddt针对的测试数据类型有元组、字典、列表、单个值,根据情况可使用@unpack进行拆包,可解析成多个参数提供使用。
      2、示例中的结果,需要反复运行得到结果并分析
    
      参考ddt库API网址:https://ddt.readthedocs.io/en/latest/api.html
  • 相关阅读:
    大话设计模式C++ 适配器模式
    36. Valid Sudoku
    c++ 常用的数据结构
    《大话设计模式》c++实现 状态模式
    c++ 各种类型转换
    38. Count and Say
    《大话设计模式》c++实现 抽象工厂模式
    66. Plus One
    49. Group Anagrams
    《大话设计模式》c++实现 建造者模式
  • 原文地址:https://www.cnblogs.com/liho/p/14030990.html
Copyright © 2011-2022 走看看