selenium +python之多线程与多进程应用于自动化测试

多线程与多进程与自动化测试用例结合起来执行,从而节省测试用例的总体运行时间。

多线程执行测试测试用例

以百度搜索为例,通过不同的浏览器来启动不同的线程。

 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来判断通过哪个浏览器运行测试用例,并通过百度收索相应的关键字。

原文地址:https://www.cnblogs.com/fengyiru6369/p/7868220.html