• 多线程执行测试用例


             python提供了两个模块来实现多线程thread 和threading ,thread 不支持守护线程,当主线程退出后,所以的子线程不管它们是否在工作,都会被强行退出。在threading 得到了弥补,所以我们应该尽量使用threading

    下面看一个用多线程技术执行测试用例,实现操作多个浏览器的例子

    #coding=utf-8
    import threading 
    from selenium  import webdriver
    from time import ctime,sleep
    
    #测试用例
    def test_baidu(browser,search):
        print('start:%s' % ctime)
        print('browser:%s '% browser)
        if browser=="ie":
            driver=webdriver.Ie()
        elif browser=="chrome":
            driver=webdriver.Chrome()
        elif browser=="ff":
            driver=webdriver.Firefox()
        else:
            print("browserde only ie /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':'thraeding','ie':'webdriver','ff':'python'}
            threads=[]
            file=range(len(lists))
            #创建线程
            for browser,search in lists.items():
                t=threading.Thread(target=test_baidu,args=(browser,search))
                threads.append(t)
            #启动线程
            for t in file:
                threads[t].start()
            for t in file:
                threads[t].join()
            print('end:%s' % ctime())
    

     执行结果如下图:

        首先,使用threading,首先要引入threading;

        其次,创建lists字典,对浏览器与搜索的内容进行参数化,通过多线程来运行test_baidu()的测试用例;     最后,在执行用例前使用多重if来判断通过那个浏览器运行测试用例,并通过百度搜索搜索对应的关键         字;

    注意:

    unittest框架不支持多线程技术,不能想Java的testNG框架那样经过简单的配置后,执行多线程的测试用例

  • 相关阅读:
    (10)进程---Manager数据共享
    (9)进程---JoinableQueue队列
    (8)进程---Queue队列
    (7)Pool进程池
    (6)进程---Event事件
    (5)进程--锁和信号量
    (4)进程---daemon守护进程和join阻塞
    XSLT知识点【一】
    XSL-FO知识点【一】
    XPath知识点【一】
  • 原文地址:https://www.cnblogs.com/101718qiong/p/7521053.html
Copyright © 2020-2023  润新知