zoukankan      html  css  js  c++  java
  • python3+beautifulreport+requests+excel+ddt+Jenkins之ddt部分

    ddt

    安装 pip install ddt

    示例:

     1 from ddt import ddt, data, unpack
     2 import unittest
     3  4 
     5 @ddt  # ddt是用来装饰类的,需要与data装饰器一起使用     
     6 class test01(unittest.TestCase):
     7 
     8     #1.单组数据
     9     @data(1,2,3)
    10     def test01(self, value): 
    11         print('value:',value)
    12         self.assertTrue(value)
    13     #1,2,3作为参数分别执行一次用例
    14 
    15     #2.多组不分解元素
    16     @data((1,2,3),('a','b','c'))
    17     def test02(self, value):
    18         print('value:',value)
    19         self.assertTrue(value)
    20     #(1,2,3)作为一组参数执行用例一次  ,  ('a','b','c')作为第2组参数,共执行test02 2次
    21     
    22     #3.多组分解元素
    23     @data((1,2,3),('a','b','c'))
    24     @unpack   #拆分元素,即将每一组数再次拆分为多个参数
    25     def test03(self, value1, value2, value3):
    26         print('value:{0}-{1}-{2}'.format(value1, value2, value3))
    27         self.assertTrue(value1)
    28     #4 另一种形式   
    29     @data((4,5,6),('q','w','e'))
    30     @unpack   #拆分元素,即将每一组数再次拆分为多个参数
    31     def test04(self, *value):#
    32         #print(*value)
    33         print('value:{0}+{1}+{2}'.format(*value))
    34     
    35     #5.列表中嵌套字典; 不分解
    36     dic_list = [{'name':'lili','age':12},{'sex':'male','job':'teacher'}]
    37     @data(dic_list)
    38     def test05(self, l):
    39         print('%s:%s'%(l[0], l[1]))
    40         self.assertTrue(1)  
    41     #{'name': 'lili', 'age': 12}:{'sex': 'male', 'job': 'teacher'}    
    42    
    43     #6.列表中嵌套字典1
    44     dic_list6 = [{'name':'lili','age':12},{'name':'mike','age':'15'}]
    45     @data(*dic_list6)#将list拆分
    46     def test06(self, d):
    47         print("%s:%s"%(d['name'],d['age']))
    48         #print('%s:%s'%(d[0],d[1]))
    49         self.assertTrue(1)  
    50     #分解list中的2个dic,作为参数,运行2次testcase
    51     
    52     #7.列表中嵌套字典2
    53     dic_list7 = [{'name':'lili2','age':12},{'name':'mike2','age':'15'}]
    54     @data(*dic_list7)  #1.将list拆分成多组
    55     @unpack           #2.将dic中的元素进一步拆分成多个参数
    56     def test07(self, name, age):#参数名必须和传入的参数名一致
    57         print("%s:%s"%(name,age))
    58         self.assertTrue(1)  
    59     #分解list中的2个dic,作为参数,运行2次testcase
    60     
    61      
    62                 
    63 
    64 if __name__ == '__main__':
    65     unittest.main()

    运行结果:

    ------------1.------------------

    value: 1
    value: 2
    value: 3

    --------------2.------------------
    value: (1, 2, 3)
    value: ('a', 'b', 'c')

    --------------3.------------------
    value:1-2-3
    value:a-b-c

    --------------4.------------------
    value:4+5+6
    value:q+w+e

    --------------5.------------------
    {'name': 'lili', 'age': 12}:{'sex': 'male', 'job': 'teacher'}

    --------------6.------------------
    lili:12
    mike:15

    --------------7.------------------
    lili2:12
    mike2:15

    --------------end.------------------

    ddt在与excel用例结合使用时,设置beautifulreport用例描述从excel中获取,可对ddt.py进行如下修改:

    修改后@data(d)中 d 应该类似上面dic-list6的形式,并且存在存在 “title” 元素

  • 相关阅读:
    十二星座职业成功忠告
    一文为你详解Unique SQL原理和应用
    如何在软件发布计划中自动化语义化版本与变更日志
    云图说 | 云上资源管控有神器!关于IAM,你想知道的都在这里!
    15年华为云视频架构师采访实录:揭秘未来音视频行业的科技趋势!
    【智简联接,万物互联】华为云·云享专家董昕:Serverless和微服务下, IoT的变革蓄势待发
    让你的产品更懂世界:如何提升场景文本识别中的语言模型
    一文带你彻底了解大数据处理引擎Flink内存管理
    未雨绸缪,数据保护之NBU介质备份
    六个步骤,从零开始教你搭建基于WordPress的个人博客
  • 原文地址:https://www.cnblogs.com/yaner2018/p/13647278.html
Copyright © 2011-2022 走看看