多線程與多進程與自動化測試用例結合起來執行,從而節省測試用例的總體運行時間。
多線程執行測試測試用例
以百度搜索為例,通過不同的瀏覽器來啟動不同的線程。
1 from selenium import webdriver 2 3 # 測試用例 4 from time import sleep, ctime 5 import threading 6 7 import threads 8 9 10 def test_baidu(browser, search): 11 print('start:%s' % ctime()) 12 print('browser:%s,' % browser) 13 if browser == 'ie': 14 driver = webdriver.Ie() 15 elif browser == "chrome": 16 driver = webdriver.Chrome() 17 elif browser == 'ff': 18 driver = webdriver.Firefox() 19 else: 20 print("browser 參數有誤,只能為ie ,ff,chrome") 21 driver.get("http://www.baidu.com") 22 driver.find_element_by_id("kw").send_keys(search) 23 driver.find_element_by_id("su").clear() 24 sleep(2) 25 driver.quit() 26 27 28 if __name__ == '__main__': 29 # 啟動參數(指定瀏覽器與百度收縮內容) 30 lists = {'chrome': 'threading', 'ie': 'webdriver', 'ff': 'python'} 31 threads = [] 32 files = range(len(lists)) 33 34 # 創建線程 35 for browser, search in lists.items(): 36 t = threading.Thread(target=test_baidu, args=(browser, search)) 37 threads.append(t) 38 39 # 啟動線程 40 for t in files: 41 threads[t].start() 42 for t in files: 43 threads[t].join() 44 print('end:%s' % ctime())
創建lists字典,對瀏覽器與收索的內容進行參數化。通過多線程來運行test_baidu()的測試用例,在執行測試用例前使用多重if來判斷通過哪個瀏覽器運行測試用例,並通過百度收索相應的關鍵字。
