python中有一個裝飾器類DDT,通過它我們可以復用代碼,達到數據驅動測試的目的,該類的官方介紹可以參考
http://ddt.readthedocs.io/en/latest/index.html
安裝ddt方式很簡單,直接在cmd命令行輸入:pip install ddt ,完成安裝即可。
下面看一個簡單的例子:
1 import unittest 2 from practise.myTestPractice.api_login import * 3 import ddt 4 5 6 @ddt.ddt 7 class Praddt(unittest.TestCase): 8 9 def setUp(self): 10 print("my test start!") 11 12 def tearDown(self): 13 print("my test complete!") 14 15 @ddt.data(["admin", "1qaz", "OK"], 16 ["admin", "", "ERROR"], 17 ["", "1qaz", "ERROR"], 18 ["admin", "1234", "ERROR"], 19 ["Admin", "1qaz", "ERROR"]) 20 @ddt.unpack 21 def test_ddt(self, user, passwd, expect_value): 22 result = Login.login(user, passwd) 23 self.assertEqual(result, expect_value, msg=result)
上面展示一個簡單的測試類,測試對象是一個登錄函數login,當用戶、密碼正確時,返回OK,用戶或密碼錯誤返回ERROR。我們在測試類上加上裝飾器@ddt.ddt ,在測試方法上加上裝飾器data和unpack,並把測試數據如上模式放在data中。
執行測試:
從unittest運行出的測試結果可以看出,我們共執行了5條測試用例,分別對應了data中的5條測試數據。也就是
說我們通過一個測試方法就依次讀取到了五條測試數據及其預期結果,代碼量會精簡不少。