1. 程式人生 > >python-ddt 資料驅動測試

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()