環境准備
1.安裝ddt模塊,打開cmd輸入pip install ddt在線安裝

數據驅動原理
1.測試數據為多個字典的list類型
2.測試類前加修飾@ddt.ddt
3.case前加修飾@ddt.data()
4.運行后用例會自動加載成三個單獨的用例
# coding:utf-8
import ddt
import unittest
# 測試數據
test_data1 = [{"username": "zhangsan", "pwd": "zhangsan"},
{"username": "lisi", "pwd": "lisi"},
{"username": "wangwu", "pwd": "wangwu"},
]
test_data2 = [{"username": "wukong", "pwd": "wukong"},
{"username": "wuneng", "pwd": "woneng"},
{"username": "wujing", "pwd": "wujing"},
]
@ddt.ddt
class Test(unittest.TestCase):
def setUp(self):
print("Start!")
def tearDown(self):
print("end!")
@ddt.data(*test_data1)
def test_ddt1(self, data):
print(data)
@ddt.data(*test_data2)
def test_ddt2(self, data):
print(data)
if __name__ == "__main__":
unittest.main()
selenium數據驅動案例
以登錄的方法為例子:
從上一篇封裝的excel方法里面讀取數據,作為測試數據:http://www.cnblogs.com/lingzeng86/p/6793398.html(就是導入的excelunit包)
# coding:utf-8
import ddt
import time
import excelunit
import unittest
from selenium import webdriver
# 測試數據
data = excelunit.ExcelUtil("test.xlsx", "Sheet2")
testData = data.dict_data()
print testData
@ddt.ddt
class Bolg(unittest.TestCase):
"""登錄博客"""
def setUp(self):
self.driver = webdriver.Chrome()
url = "https://passport.cnblogs.com/user/signin"
self.driver.get(url)
self.driver.implicitly_wait(10)
def login(self, username, psw):
"""登錄方法,賬號和密碼參數化"""
self.driver.find_element_by_id("input1").send_keys(username)
self.driver.find_element_by_id("input2").send_keys(psw)
self.driver.find_element_by_id("signin").click()
time.sleep(3)
def is_login_sucess(self):
"""判斷是否獲取到登錄賬戶名稱"""
try:
text = self.driver.find_element_by_id("lnk_current_user").text
print text
return True
except:
return False
@ddt.data(*testData)
def test_login(self, data):
"""登錄案例參考"""
print ("當前測試數據%s" % data)
# 調用登錄方法
self.login(data["username"], data["password"])
# 判斷結果
result = self.is_login_sucess()
self.assertTrue(result)
def tearDown(self):
self.driver.quit()
if __name__ == "__main__":
unittest.main()
