• 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])

    描述: 使用这个总执行文件,可以多进程 同时开始每个模块的测试用例(每个模块同时一条接着一条执行)

  • 相关阅读:
    测试
    python制作
    Mysql 用法
    Day006 Java面向对象编程
    Day005 Java数组详解
    Day004 Java方法详解
    Day003 Java流程控制
    Day002 Java基础语法
    Day001 MrakDown语法 Dos命令
    4. 谈谈你对ArrayList和LinkedList 的理解
  • 原文地址:https://www.cnblogs.com/kaibindirver/p/7492963.html
Copyright © 2020-2023  润新知