1. 程式人生 > >selenium+python(模塊化驅動測試)

selenium+python(模塊化驅動測試)

很多 登錄 數獨 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(模塊化驅動測試)