美文网首页
unittest多线程执行用例

unittest多线程执行用例

作者: 钟微 | 来源:发表于2019-04-23 15:15 被阅读0次

    这篇文章写的是如何同时执行多个.py文件然后生成测试报告
    项目结构:
    case :放test开头的.py用例脚本
    report :放生成的html报告
    run_all.py 用于执行全部脚本

    image.png

    case里的.py文件就是平时写的写文件,不需要单独写,直接拷贝一份就可以了,但是这个文件夹的文件名必须要以相同的字符开头,这样才方便后面加载
    run_all.py代码:

    import unittest
    import HTMLTestRunner
    import os
    
    # 获取路径
    curpath = os.path.dirname(os.path.realpath(__file__))#获取当前文件的路径
    casepath = os.path.join(curpath, "case")#用join方法拼接路径
    reportpath = os.path.join(curpath, "report")
    
    
    def add_case(case_path=casepath, rule="test_*.py"):
        '''加载所有的测试用例'''
        discover = unittest.defaultTestLoader.discover(case_path,
                                                      pattern=rule,
                                                      top_level_dir=None)
        return discover
    
    
    def run_case(all_case, report_path=reportpath, nth=0):
        '''执行所有的用例, 并把结果写入测试报告'''
        report_abspath = os.path.join(report_path, "result%s.html"%nth)
        fp = open(report_abspath, "wb")
        runner = HTMLTestRunner.HTMLTestRunner(stream=fp,
                                               title=u'自动化测试报告,测试结果如下:',
                                               description=u'用例执行情况:')
    
        # 调用add_case函数返回值
        runner.run(all_case)
        fp.close()
    
    if __name__ == "__main__":
        # 用例集合
        cases = add_case()
    
        # 之前是批量执行,这里改成for循环执行
        for i, j in zip(cases, range(len(list(cases)))):
            run_case(i, nth=j)  # 执行用例,生成报告
    
    
    

    相关文章

      网友评论

          本文标题:unittest多线程执行用例

          本文链接:https://www.haomeiwen.com/subject/jklugqtx.html