python-selenium並發執行測試用例(方法一 各模塊每一條並發執行)


總執行代碼:

# coding=utf-8
import unittest,os,time
import HTMLTestRunner
import threading
import sys
sys.path.append('C:/Users/Dell/Desktop/CARE/program')#使用編輯器,要指定當前目錄,不然無法執行第20行代碼


def creatsuite():
  casedir = []
  list = os.listdir(os.path.dirname(os.getcwd()))#獲取當前路徑的上一級目錄的所有文件夾,這里可以改成絕對路徑(要搜索的文件路徑)
  for xx in list:
    if "baidu" in xx:
      casedir.append(xx)
  suite =[]
  for n in casedir:
    testunit = unittest.TestSuite()
    unittest.defaultTestLoader._top_level_dir = None

#(unittest.defaultTestLoader(): defaultTestLoader()類,通過該類下面的discover()方法可自動更具測試目錄start_dir匹配查找測試用例文件(test*.py),

並將查找到的測試用例組裝到測試套件,因此可以直接通過run()方法執行discover)

    discover = unittest.defaultTestLoader.discover(str(n),pattern='tet_*.py',top_level_dir=None) 

    for test_suite in discover:
      for test_case in test_suite:
        testunit.addTests(test_case)
    suite.append(testunit)
  return suite, casedir

def runcase(suite,casedir):
  lastPath = os.path.dirname(os.getcwd())#獲取當前路徑的上一級
  resultDir = lastPath+"\\run\\report\\" #報告存放路徑
  now = time.strftime("%Y-%m-%d %H.%M.%S",time.localtime())
  filename = resultDir + now +" result.html"
  fp = file(filename, 'wb')
  proclist=[]
  s=0

  for i in suite:
    runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title=str(casedir[s])+u'測試報告',description=u'用例執行情況:')
    proc = threading.Thread(target=runner.run,args=(i,))
    proclist.append(proc)
    s=s+1
  for proc in proclist:
    proc.start()
  for proc in proclist:
    proc.join()
  fp.close()

if __name__ == "__main__":
  runtmp=creatsuite()
  runcase(runtmp[0],runtmp[1])

 

描述: 使用這個總執行文件,可以多進程 同時開始每個模塊的測試用例(每個模塊同時一條接着一條執行)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM