selenium+python(模塊化驅動測試)
阿新 • • 發佈:2017-09-05
很多 登錄 數獨 time class 編程 需要 思想 logs
模塊化驅動測試,就是借鑒編程語言中模塊化的思想,把重復的操作獨立成功公告模塊,懂用例執行過程中需要用到這一模塊操作時則被調用,這樣可以極大的消除重復從而提高測試用例的可維護性
下面具體以126郵箱為例:
首先對每次要都用到的登錄登出獨立出來,放在公共模塊中
public.py
# coding=utf-8 class Login(): # login 登錄 def login(self,driver): driver.find_element_by_id("IdInput").clear() driver.find_element_by_id("IdInput").send_keys("username") driver.find_element_by_id("pwdInput").clear() driver.find_element_by_id("pwdInput").send_keys("123456") driver.find_element_by_id("loginBtn").click() # 點擊確認登錄按鈕 # logout 登出 def logout(self,driver): time.sleep(2) driver.find_element_by_link_text(u"退出").click()
把函數獨立到單獨的腳本中,主要是為函數增加瀏覽器驅動的參數,因為函數的實現操作需要通過瀏覽器驅動driver,driver需要通過具體調用的用例給定。
test_case.py,test_case.py通過調用登錄、退出函數實現模塊化
#coding=utf-8 from selenium import webdriver from public import login import unittest class LoginTest(unittest.TestCase): def setUp(self): self.driver = webdriver.Firefox() self.base_url = "http://www.126.com" self.driver.implicitly_wait(5) def test_write_letter_case(self): driver = self.driver driver.get(self.base_url) #調用登錄函數 login().login(driver) #實現收信、操作 #....... #調用退出函數 login().logout(driver) def tearDown(self): self.driver.quit() if __name__ == "__main__": unittest.main()
首先,需要導入當前目錄下的public.py文件中的Login(),在需要的位置調用類中的login()和loginout()函數,這樣對於每個用例的編寫和維護就會方便很多
selenium+python(模塊化驅動測試)