多線程執行測試用例


         python提供了兩個模塊來實現多線程thread 和threading ,thread 不支持守護線程,當主線程退出后,所以的子線程不管它們是否在工作,都會被強行退出。在threading 得到了彌補,所以我們應該盡量使用threading

下面看一個用多線程技術執行測試用例,實現操作多個瀏覽器的例子

#coding=utf-8
import threading 
from selenium  import webdriver
from time import ctime,sleep

#測試用例
def test_baidu(browser,search):
    print('start:%s' % ctime)
    print('browser:%s '% browser)
    if browser=="ie":
        driver=webdriver.Ie()
    elif browser=="chrome":
        driver=webdriver.Chrome()
    elif browser=="ff":
        driver=webdriver.Firefox()
    else:
        print("browserde only ie /ff/ chrome")
        
        
    driver.get('http://www.baidu.com')
    driver.find_element_by_id("kw").send_keys(search)
    driver.find_element_by_id("su").click()
    sleep(2)
    driver.quit()
        
if __name__=='__main__':
    #指定參數(指定瀏覽器與百度搜索內容)
        lists={'chrome':'thraeding','ie':'webdriver','ff':'python'}
        threads=[]
        file=range(len(lists))
        #創建線程
        for browser,search in lists.items():
            t=threading.Thread(target=test_baidu,args=(browser,search))
            threads.append(t)
        #啟動線程
        for t in file:
            threads[t].start()
        for t in file:
            threads[t].join()
        print('end:%s' % ctime())

 執行結果如下圖:

    首先,使用threading,首先要引入threading;

    其次,創建lists字典,對瀏覽器與搜索的內容進行參數化,通過多線程來運行test_baidu()的測試用例;     最后,在執行用例前使用多重if來判斷通過那個瀏覽器運行測試用例,並通過百度搜索搜索對應的關鍵         字;

注意:

unittest框架不支持多線程技術,不能想Java的testNG框架那樣經過簡單的配置后,執行多線程的測試用例


免責聲明!

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



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