6 Python之DDT資料驅動測試

2021-09-24 13:01:46 字數 1428 閱讀 9592

cmd輸入pip install ddt

ddt包含類的裝飾器ddt(對應testcase子類)和兩個方法裝飾器data,unpack(直接輸入測試資料,對應需要成倍增加的測試),用不同的測試資料執行乙個測試用例,從而使它看起來像多個測試用例。

@data:包含的引數數量與要提供給測試的值的數量相同。

@file_data:將從json或yaml檔案載入測試資料。

通常,資料中的每個值都將作為單個引數傳遞給測試方法。如果這些值是元組,則必須在測試中解包它們。或者,您可以使用乙個附加的裝飾器unpack,它將自動將元組和列表解包為多個引數,並將字典解包為多個關鍵字引數。

- **復用率高。同一測試邏輯編寫一次,可以被多條測試資料復用,提高了測試**的復用率,同時可以提高測試指令碼的編寫效率。

- 異常排查效率高。測試框架依據測試資料,每條資料生成一條測試用例,用例執行過程相互隔離,在其中一條失敗的情況下,不會影響其他的測試用例。

- **的可維護性高。清晰的測試框架,利於其他測試工程師閱讀,提高了**的可維護性。

import unittest

import ddt

list = [, ]

@ddt.ddt    # 在class類前使用

class mytesting(unittest.testcase):

def setup(self):

print("this is setup")

@ddt.data(1, 2, [2, 3])  #

def test_one(self, a):

print(a)

@ddt.data([5, 5], [3, 4], [5, 6])

@ddt.unpack  # 拆開,非整體,列表的兩個引數分別傳給a和b

def test_compare(self, a, b):

print(a, b)

# self.assertequal(a, b)

@ddt.data(*list)   # 用*引用

@ddt.unpack        # 拆開,非整體

def test_two(self, name, age):   # 引數必須和字典key相同

print(name, age)

def teardown(self):

print('this is teardown')

if __name__ == '__main__':

unittest.main(verbosity=2)

執行結果:

注意:測試用例的執行順序是按照測試用例test_***中***的首字母ascii碼的順序載入測試用例,數字與字母的順序為:0-9,a-z,a-z。所以以a開頭的測試用例方法會優先執行,以a開頭會後執行。

python 資料驅動 ddt

一。初始ddt 1.安裝 pip install ddt 2.匯入ddt import ddt 3.初步使用 注意 需要和unittest一起使用 cases expected expected ddt.ddt class test math unittest.testcase ddt.data c...

python 資料驅動測試 ddt

coding utf 8 project jiaxy author jimmy file study ddt.py ide pycharm community edition time 2018 12 06 14 48 blog study ddt data driver test 資料驅動測試 1...

資料驅動 ddt

import unittest from ddt import ddt,data,unpack test data 1,2 3,4 ddt 裝飾類 class testmethod unittest.testcase data test data 裝飾方法 deftest print self,a ...