101718qiong

         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框架那样经过简单的配置后,执行多线程的测试用例

分类:

技术点:

相关文章:

  • 2021-10-07
  • 2021-11-13
  • 2021-09-06
  • 2021-10-07
  • 2022-01-09
  • 2021-11-13
  • 2021-11-27
  • 2021-09-10
猜你喜欢
  • 2021-09-02
  • 2021-11-03
  • 2021-12-28
  • 2021-10-07
  • 2021-06-18
  • 2021-10-07
  • 2021-10-07
相关资源
相似解决方案