多线程与多进程与自动化测试用例结合起来执行,从而节省测试用例的总体运行时间。
多线程执行测试测试用例
以百度搜索为例,通过不同的浏览器来启动不同的线程。
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来判断通过哪个浏览器运行测试用例,并通过百度收索相应的关键字。