python-ddt 數據驅動測試


 1 # @File : learn_ddt.py
 2 
 3 #-*- coding:utf-8 -*-
 4 
 5 #本次學習:ddt  ---data drive test--數據驅動測試
 6 #1.安裝 pip install ddt
 7 #2.用途:結合單元測試去執行用例
 8 #3.本質:類的裝飾器
 9 
10 # def print_msg(*args):#動態參數
11 #     print(args)#*args 到了函數內部之后就變成一個元祖
12 #     print('參數的長度:',len(args))
13 #
14 # a=(1,2,3)
15 # print_msg(*a)#拆分一層
16 #
17 # b=[(1,2),3,[4,5]]
18 # print_msg(*b)
19 
20 import unittest
21 from ddt import ddt,data,unpack
22 
23 test_data=[{'param':{'mobilephone':18688773467,'pwd':'123456'},'http_method':'get','excepted':'登錄成功',
24             'url':'http://47.107.168.87:8080/futureloan/mvc/api/member/login'},
25 
26            {'param':{'mobilephone':18688773467,'pwd':'1234567'},'http_method':'post','excepted':'用戶名或密碼錯誤',
27             'url':'http://47.107.168.87:8080/futureloan/mvc/api/member/login'},
28 
29             {'param':{'mobilephone':18688773467,'amount':'1000'},'http_method':'post','excepted':'充值成功',
30              'url':'http://47.107.168.87:8080/futureloan/mvc/api/member/recharge'}]
31 
32 @ddt #裝飾類
33 class TestMath(unittest.TestCase):
34 
35     @data(test_data) #@data裝飾方法
36     def test_001(self,item):
37         print('-----------用例1-----------')
38         print('item:',item)
39 
40     @data(*test_data) #@data裝飾方法,  加上* 拆分一層(按逗號拆分)
41     def test_002(self,item):
42         print('-----------用例2-----------')
43         print('item:',item)
44 
45     @data(*test_data)
46     @unpack#在@data拆分的基礎上,再拆分一次,並用等量的變量接收這些數據(如果是字典,需要用key)
47     def test_002(self,param,http_method,excepted,url):
48         print('-----------用例3-----------')
49         print('param:',param)
50         print('http_method:',http_method)
51         print('excepted:',excepted)
52         print('url:',url)
53 
54 if __name__ == '__main__':
55     unittest.main()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM