1. 程式人生 > 實用技巧 >selenium---多執行緒啟動瀏覽器

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)

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