Python多线程执行测试用例

在一个任务未完成时,就可以执行其他多个任务,彼此不受影响(在看第一部下载好的电影时,其他电影继续保持下载状态,彼此之间不受影响),叫异步
同步就是一个任务结束才能启动下一个(类比你看完一部电影,才能去看下一部电影)
异步执行任务会比同步更加节省时间,因为它能减少不必要的等待。如果你需要对时间做优化,异步是一个很值得考虑的方案。


多协程异步:一个任务在执行过程中,如果遇到等待,就先去执行其他的任务,当等待结束,再回来继续之前的那个任务。在计算机的世界,这种任务来回切换得非常快速,看上去就像多个任务在被同时执行一样。

每个进程都有自己的地址空间、内存、数据栈
线程要运行在进程中,线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉等于整个进程死掉。例如进程看成一个高速公路,线程是高速路上的汽车。

 

# 多线程执行测试用例
from threading import Thread
from selenium import webdriver
from time import ctime, sleep


# 测试用例
def test_baidu(browser, search):
    print('start:%s' % ctime())
    print('browser:%s ,' % browser)
    if browser == "chrome":
        driver = webdriver.Chrome()
    elif browser == "ie":
        driver = webdriver.Ie()
    elif browser == 'ff':
        driver=webdriver.Firefox()
    else:
        print('browser参数有误,只能为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': 'threading', 'ie': 'python','ff':'firefox'}
    threads = []
    files = range(len(lists))
# 创建线程
for browser, search in lists.items():
    t = Thread(target=test_baidu, args=(browser, search))
    threads.append(t)
# 启动线程
for t in files:
    threads[t].start()
for t in files:
    threads[t].join()  # join()函数必须放在线程启动之后
print('end:%s' % ctime())

 


版权声明:本文为weixin_42550871原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。