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

原文地址:https://www.cnblogs.com/yaner2018/p/13647278.html