selenium---多線程啟動瀏覽器


  在做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)

安靜這里就不放動圖了,大家可以自己去嘗試下,封裝的並不是很好地代碼,如果你有更好的方法,可以在下方留言,共同學習


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM