一、ddt 用途
二、安裝 ddt
三、ddt 模組組成
四、示例
from ddt import ddt, data
import unittest
@ddt
class mytestddt(unittest.testcase):
def setup(self):
print('start')
@data(2, 4) # 使用 data 傳引數給測試用例
def test_one(self,value):
print('the @data number is {}'.format(value))
def teardown(self):
print('end')
if __name__ == '__main__':
unittest.main()
# 結果如下:
start
the @data number is :2
endstart
the @data number is :4
end
from ddt import ddt, data, unpack
import unittest
@ddt
class mytestddt(unittest.testcase):
def setup(self):
print('start')
@data((1, 2), (4, 5)) # 元組
@unpack # 二次分解元組
def test_one(self, value1, value2):
print('the @data number is {} and {}'.format(value1, value2))
def teardown(self):
print('end')
if __name__ == '__main__':
unittest.main()
# 結果如下
start
the @data number is 1 and 2
endstart
the @data number is 4 and 5
end
from ddt import ddt, data, unpack
import unittest
@ddt
class mytestddt(unittest.testcase):
def setup(self):
print('start')
@data(, ) # 字典
@unpack
def test_one(self, value1, value2):
print('the @data number is {} and {}'.format(value1, value2))
def teardown(self):
print('end')
if __name__ == '__main__':
unittest.main()
# 結果如下
start
the @data number is 1 and 2
endstart
the @data number is 3 and 4
end
from ddt import ddt, data, unpack
import unittest
@ddt
class mytestddt(unittest.testcase):
def setup(self):
print('start')
@data(*[, ]) # 這裡加 * 後會將返回資料分為乙個個的字典
@unpack
def test_one(self, **value):
print('the @data number is {} and {}'.format(value.get("value1"), value.get("value2")))
def teardown(self):
print('end')
if __name__ == '__main__':
unittest.main()
# 結果如下
start
the @data number is 1 and 2
endstart
the @data number is 3 and 4
end
五、cms 登入例項
gettestdata.py 封裝讀取 excel 檔案內容且返回 [['evan', '123456'], ['duoceshi007', '123456'], ['evan', '******']] 格式資料的方法
"""import xlrd
def getdata():
book = xlrd.open_workbook("data.xls")
sheet = book.sheet_by_name("sheet1")
rows = sheet.nrows
data_list =
for t in range(rows-1):
row_list =
row_data = sheet.row_values(t + 1)
for i in row_data:
if isinstance(i, float):
d = int(i)
else:
return data_list
"""
lesson3_5_1.py cms 登入測試用例
"""from selenium import webdriver
import time
import unittest
from ddt import ddt, data, unpack
from python_selenium.lesson3_2020_11_2.lesson3_5_ddt.gettestdata import getdata
@ddt
class cmslogin(unittest.testcase):
def setup(self) -> none:
self.dr = webdriver.chrome()
self.dr.get("")
self.dr.maximize_window()
self.dr.implicitly_wait(10)
def teardown(self) -> none:
time.sleep(2)
self.dr.quit()
@data(*getdata())
@unpack
def test_login(self, username, password):
self.dr.find_element_by_id("useraccount").send_keys(username)
self.dr.find_element_by_id("loginpwd").send_keys(password)
self.dr.find_element_by_id("loginbtn").click()
time.sleep(2)
if username == "evan" and password == "123456":
try:
nickname = self.dr.find_element_by_class_name("c-white").text
except:
raise assertionerror("登入失敗!")
else:
assert username in nickname
else:
logintext = self.dr.find_element_by_css_selector('[for="online"]').text
assert "使我保持登入狀態" in logintext
if __name__ == '__main__':
unittest.main()
自動化測試之 ddt 驅動 json 檔案
一 上篇文章我們使用了 unittest ddt 驅動 excel 檔案做資料驅動測試,本篇文章我們採用 unittest ddt 驅動 json 檔案來實現資料驅動測試,話不多說上原始碼。執行結果如下 執行結果如下 ran 3 tests in 0.004s evan 123456 lvan 12...
python介面自動化 DDT資料驅動測試
如果想從頭學起介面自動化測試,可以去看看這個系列的文章哦!ddt date driver test 所謂資料驅動測試,簡單來說就是由資料的改變從而驅動自動化測試的執行,最終引起測試結果的改變。通過使用資料驅動測試的方法,可以在需要驗證多組資料測試場景中,使用外部資料來源實現對輸入輸出與期望值的引數化...
自動化測試ddt的使用
資料驅動測試 允許您通過使用不同的測試資料執行乙個測試用例,並使其顯示為多個測試用例。1.ddt 類裝飾器,用於testcase的子類test方法。2.1 data 方法裝飾器 資料 包含與要提供給測試的值一樣多的引數。2.2 file data 方法裝飾器 資料 將從json或yaml檔案載入測試...