• 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” 元素

  • 相关阅读:
    怎样在ASP.NET中使用VB.NET上传大文件
    准备开始研读petShop
    Documentum常见问题9—导航树的一些常见设置
    [转]CMMI 入门 基本术语:约束、假设、依赖、风险、承诺
    MyEclipse 8.6反编译插件安装
    Documentum常见问题7—为客户化Type类型Import时添加自定义属性
    【自省篇】程序员的十大技术烦恼
    Documentum常见问题10修改特定Type的显示图标
    打发时间的题目,每天做一点
    Documentum常见问题8—限制导航树上的文件夹个数
  • 原文地址:https://www.cnblogs.com/yaner2018/p/13647278.html
Copyright © 2020-2023  润新知