码迷,mamicode.com
首页 > Web开发 > 详细

unittest 12 生成测试报告(将报告写入文本文件 生成Html格式的报告文件 TextTestRunner HTMLTestRunner)

时间:2020-02-10 13:50:29      阅读:133      评论:0      收藏:0      [点我收藏+]

标签:python3   cas   https   decode   登录   time   port   ref   img   

用例执行完成后,执行结果默认是输出在屏幕上(不便于事后追踪和记录),其实我们可以把结果输出到一个文件中,形成测试报告。

unittest自带的测试报告是文本形式的,如下代码:

技术图片
import unittest

if __name__ == "__main__":
    # 测试用例目录
    test_dir = r"D:\Git\Test_Framework\test_case"
    # 加载测试用例
    discover = unittest.defaultTestLoader.discover(test_dir, ‘test*.py‘)
    # 测试报告路径
    report_path = r"D:\Git\Test_Framework\report\report.text"
    with open(report_path,"a") as report:
        runner = unittest.TextTestRunner(stream=report,verbosity=2)
        runner.run(discover)
技术图片

生成的txt测试报告如下:

技术图片

这种TXT文件测试报告不能直观地展示用例执行情况,引入第三方模块HTMLTestRunner,可以展示一份优美的html格式的测试报告。

下面我们就来介绍下HTMLTestRunner模块

HTMLTestRunner模块不能通过pip安装,必须先下载下来下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html

技术图片

直接右键另存为就行了,下载完成后放到python安装目录下的../Python36\Lib

因为HTMLTestRunner模块是基于Python2开发的,目前停止更新了,在Python3上运行会报错。为了使其支持Python3环境,需要对其中的部分内容进行修改:

第94行,将import StringIO修改成import io

第539行,将self.outputBuffer = StringIO.StringIO()修改成self.outputBuffer= io.StringIO()

第631行,将print >> sys.stderr, ‘\nTime Elapsed: %s‘ %(self.stopTime-self.startTime)修改成print(sys.stderr, ‘\nTimeElapsed: %s‘ % (self.stopTime-self.startTime))

第642行,将if not rmap.has_key(cls):修改成if notcls in rmap:

第766行,将uo = o.decode(‘latin-1‘)修改成uo = e

第775行,将ue = e.decode(‘latin-1‘)修改成ue = e

修改完成后保存。

现在我们就可以生成一份优美的测试报告了

代码:

技术图片
import unittest
from HTMLTestRunner import HTMLTestRunner

if __name__ == "__main__":
    # 测试用例目录
    test_dir = r"D:\Git\Test_Framework\test_case"
    # 加载测试用例
    discover = unittest.defaultTestLoader.discover(test_dir, ‘test*.py‘)
    # 测试报告路径
    report_path = r"D:\Git\Test_Framework\report\report.html"
    with open(report_path,"wb") as report:
        runner = HTMLTestRunner(stream = report,
                                title = "测试报告",
                                description = "系统登录测试用例执行")
        runner.run(discover)
技术图片

技术图片

 

补充:

还有一个三方库,名字为 BeautifulReport

Python unittest 之 BeautifulReport可视化报告

unittest 12 生成测试报告(将报告写入文本文件 生成Html格式的报告文件 TextTestRunner HTMLTestRunner)

标签:python3   cas   https   decode   登录   time   port   ref   img   

原文地址:https://www.cnblogs.com/candyYang/p/12290512.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!