在做web網頁測試的時候,功能測試階段不僅僅只使用一種瀏覽器,需要拿多個瀏覽器進行測試,這就是我們常說的網頁版的兼容性測試,那么我們在做web自動化的時候,如何使用多個瀏覽器呢?有的朋友說直接改啟動瀏覽器類型,這種要求太慢,如果在公司這樣干,肯定會被公司請回家的,那么我們考慮通過多線程的方法進行啟動瀏覽器,然后來幫助我們執行用例。
多線程啟動瀏覽器
這里簡單的列舉下安靜如何啟動多個瀏覽器,這里先把思路進行列出來,根據思路進行一步步寫
1、先把瀏覽器驅動單獨封裝起來,調用時,直接選取對應的驅動
2、把想要執行的用例進行也單獨封裝起來。
3、通過多線程進行調用封裝的用例,每啟動1次線程,就運行一次用例。
4、把多個瀏覽器的名稱列舉出來,通過循環的方式把瀏覽器參數傳入到用例中。從而進行執行用例
封裝瀏覽器驅動
這里安靜對簡單的幾種瀏覽器驅動進行了封裝,通過傳參為瀏覽器的名稱進行選擇瀏覽器類型。然后把對應的驅動進行返回出去
def Browser(browser): driver = None if browser == "ie": driver = webdriver.Ie() elif browser == "firefox": driver = webdriver.Firefox() elif browser == "chrome": driver = webdriver.Chrome() else: print('輸入的正確的瀏覽器信息') return driver
封裝用例
這里為了簡單,安靜也只是簡單的封裝了百度查詢的用例
def test_baidu(browser_name): driver = Browser(browser_name) driver.get('https://www.baidu.com') driver.find_element_by_id('kw').send_keys('測試-安靜') driver.find_element_by_id('su').click() print(driver.title) print('通過瀏覽器:%s'%browser_name)
封裝多線程
封裝了一個線程,通過傳入參數來獲取瀏覽器的類型
def run_case(name): thread_list = [] for i in range(1): appium_server = threading.Thread(target=test_baidu,args=(name,)) thread_list.append(appium_server) for j in thread_list: j.start()
完整代碼
# coding:utf-8 from selenium import webdriver import threading def Browser(browser): driver = None if browser == "ie": driver = webdriver.Ie() elif browser == "firefox": driver = webdriver.Firefox() elif browser == "chrome": driver = webdriver.Chrome() else: print('輸入的正確的瀏覽器信息') return driver def test_baidu(browser_name): driver = Browser(browser_name) driver.get('https://www.baidu.com') driver.find_element_by_id('kw').send_keys('測試-安靜') driver.find_element_by_id('su').click() print(driver.title) print('通過瀏覽器:%s'%browser_name) def run_case(name): thread_list = [] for i in range(1): appium_server = threading.Thread(target=test_baidu,args=(name,)) thread_list.append(appium_server) for j in thread_list: j.start() if __name__ == '__main__': a = ('chrome','firefox') for i in a: run_case(i)
安靜這里就不放動圖了,大家可以自己去嘗試下,封裝的並不是很好地代碼,如果你有更好的方法,可以在下方留言,共同學習