Selenium2+python自動化之資料驅動(ddt)
阿新 • • 發佈:2019-02-09
selenium資料驅動案例以登入的方法為例子:從上一篇封裝的excel方法裡面讀取資料,作為測試資料:http://www.cnblogs.com/lingzeng86/p/6793398.html(就是匯入的excelunit包)環境準備 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()
# 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()