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