美文网首页
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