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

  在作web網頁測試的時候,功能測試階段不單單隻使用一種瀏覽器,須要拿多個瀏覽器進行測試,這就是咱們常說的網頁版的兼容性測試,那麼咱們在作web自動化的時候,如何使用多個瀏覽器呢?有的朋友說直接改啓動瀏覽器類型,這種要求太慢,若是在公司這樣幹,確定會被公司請回家的,那麼咱們考慮經過多線程的方法進行啓動瀏覽器,而後來幫助咱們執行用例。web

多線程啓動瀏覽器

這裏簡單的列舉下安靜如何啓動多個瀏覽器,這裏先把思路進行列出來,根據思路進行一步步寫chrome

一、先把瀏覽器驅動單獨封裝起來,調用時,直接選取對應的驅動瀏覽器

二、把想要執行的用例進行也單獨封裝起來。多線程

三、經過多線程進行調用封裝的用例,每啓動1次線程,就運行一次用例。app

四、把多個瀏覽器的名稱列舉出來,經過循環的方式把瀏覽器參數傳入到用例中。從而進行執行用例學習

封裝瀏覽器驅動

這裏安靜對簡單的幾種瀏覽器驅動進行了封裝,經過傳參爲瀏覽器的名稱進行選擇瀏覽器類型。而後把對應的驅動進行返回出去測試

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

封裝用例

這裏爲了簡單,安靜也只是簡單的封裝了百度查詢的用例spa

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)

封裝多線程

封裝了一個線程,經過傳入參數來獲取瀏覽器的類型firefox

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)

安靜這裏就不放動圖了,你們能夠本身去嘗試下,封裝的並非很好地代碼,若是你有更好的方法,能夠在下方留言,共同窗習線程

相關文章
相關標籤/搜索