資料驅動 ddt

2022-07-02 14:42:10 字數 2326 閱讀 7757

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

print(a)

返回結果為:

ran 1 test in

0.001s

ok[[1, 2], [3, 4]]

ddt 是第三方模組,需安裝, pip install ddt

ddt包含類的裝飾器ddt和兩個方法裝飾器data(直接輸入測試資料)

通常情況下,data中的資料按照乙個引數傳遞給測試用例,如果data中含有多個資料,以元組,列表,字典等資料,需要自行在指令碼中對資料進行分解或者使用unpack分解資料。

@data(a,b)

那麼a和b各執行一次用例

傳入的資料引數前加上*號,則是拆分,最多只能加乙個*,多個*號無用

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

print(a)

返回結果:

[1, 2]

[3, 4]

ran 2 tests in

0.000s

ok

unpack是對拆分的每個元素以逗號進行再次拆分,方法的動態傳參的個數要相對應

import

unittest

from ddt import

ddt,data,unpack

test_data = [[1,2],[3,4]]

@ddt

class

testmethod(unittest.testcase):

@data(*test_data)

@unpack

deftest_print(self,a,b):

print

(a)

print(b)

返回結果:

ran 2 tests in

0.002sok1

234

如果unpack要拆分的元素是列表,且列表內的元素個數不一致,如下:

import

unittest

from ddt import

ddt,data,unpack

test_data = [[1,2],[3,4,5]]

@ddt

class

testmethod(unittest.testcase):

@data(*test_data)

@unpack

def test_print(self,a,b,c=none):

print

(a)

print

(b)

print(c)

返回結果:

1

2none34

5ran 2 tests in

0.001s

ok

如果unpack拆分是字典,方法的動態引數必須是字典的key,否則會報錯

import

unittest

from ddt import

ddt,data,unpack

test_data = [,

]@ddt

class

testmethod(unittest.testcase):

@data(*test_data)

@unpack

deftest_print(self,no,name):

print

(no)

print(name)

返回結果:

ran 2 tests in

0.001s

ok1lili

2godan

程序已結束,退出** 0

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...

玩轉 appium的資料驅動ddt

資料驅動型別包括 ddt excel paramunittst yaml csv json 用法基本相同 看你自己喜歡那個 mua ddt 先看圖 了解ddt需要那些元素 看 a 這裡看你心情了 可以寫道乙個json檔案裡 也可以寫入其他檔案裡 呼叫就行了 我用的資料少,就寫在這裡了 重點來了!兩種...