1、DDT介紹
DDT(Data-Driven Tests)數據驅動測試,測試數據與測試行為分離,通過數據來驅動測試
DDt數據驅動測試,允許通過使用不同的測試數據運行一個測試用例,根據參數的個數可以運行多個不同的測試用例
2、為什么使用DDT
1、提高代碼復用率減少代碼冗余
2、可以將測試數據使用一個文件來存儲
3、數據和測試業務分離
4、DDT庫的安裝
1、直接在PyCharm->File->Setting->Project->Project Interpreter頁面添加
2、使用命令pip install ddt下載並安裝
5、API
@ddt 類裝飾器,作用於類上,應用於測試用例類
@data 作用於方法上,把參數作為測試數據
@unpack 方法裝飾器添加解壓功能
6、具體應用示例
import unittest
from ddt import ddt, data, unpack
'''
1、導入ddt相關包:from ddt import ddt, data, unpack
2、類上添加unittest.TestCase作用於測試用例上,和unittest一起使用
'''
@ddt
class Testddt(unittest.TestCase):
def setUp(self):
pass
'''結果運行三次'''
@data(12, 13, 14)
def test_1(self, value):
print(value)
'''結果運行一次,出(12,13,14)'''
@data((12, 13, 14))
def test_2(self, value):
print(value)
'''結果運行一次,輸出12,13,14
參數個數看的是元祖里面的個數
'''
@data((12, 13, 14))
@unpack
def test_3(self, value1, value2, value3):
print(value1, value2, value3)
'''結果運行3次,分別輸出(3, 2) (4, 3) (5, 3)'''
@data((3, 2), (4, 3), (5, 3))
def test_4(self, value):
print(value)
@data((3, 2), (4, 3), (5, 3))
@unpack
def test_5(self, value1, value2):
print(value1,value2)
@data([3, 2], [4, 3], [5, 3])
def test_6(self, value1):
print(value1)
@data([3, 2], [4, 3], [5, 3])
@unpack
def test_7(self, value1, value2):
print(value1,value2)
@data({'first': 1, 'second': 3, 'third': 2},{'first': 4, 'second': 6, 'third': 5})
def test_8(self, value1):
print(value1)
'''
字典拆包,參數需要和key名稱一致,分別對應key值輸出1 3 2
'''
@data({'first': 1, 'second': 3, 'third': 2})
@unpack
def test_9(self, first, second, third):
print(first,second,third)
7、總結
1、ddt針對的測試數據類型有元組、字典、列表、單個值,根據情況可使用@unpack進行拆包,可解析成多個參數提供使用。
2、示例中的結果,需要反復運行得到結果並分析
參考ddt庫API網址:https://ddt.readthedocs.io/en/latest/api.html