![cc4823d086b0a0f56f36c96a990457cb.gif](https://img-blog.csdnimg.cn/img_convert/cc4823d086b0a0f56f36c96a990457cb.gif)
输出测试报告
![5c5c136656afaaccf42de2db0df4fcc8.gif](https://img-blog.csdnimg.cn/img_convert/5c5c136656afaaccf42de2db0df4fcc8.gif)
unittest框架执行测试用例完成后会在控制台输出如上的结果,但实际测试过程中,我们需要输出测试报告,这个时候我们需要使用第三方模块。
01
HTMLTestRunner
HTMLTestRunner模块可以直接生成html格式的报告
下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html
下载后需要修改:
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, '\nTime Elapsed: %s' %(self.stopTime-self.startTime))
642行,if not rmap.has_key(cls): 修改成 if not cls in rmap:
766行的uo = o.decode('latin-1'),修改成 uo=o
772行,把 ue = e.decode('latin-1') 直接改成 ue = e
存放路径:将修改完成的模块存放在Python路径下Lib目录里即可。
run.py示例代码如下:
# -*- coding:utf-8 -*-# @author: 给你一页白纸import timeimport unittestimport HTMLTestRunner# 获取当前时间并指定时间格式,用于测试报告命名now = time.strftime("%Y-%m-%d_%H_%M_%S")# 测试报告存储路径report_dir = './report/'# 创建报告文件,并以写的形式打开文件,用于写入报告内容fp = open(report_dir + now + "_report.html", 'wb')# 初始化一个HTMLTestRunner实例对象,用来生成报告runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title="App自动化测试报告", description="测试用例情况")# 定义测试用例路径test_dir='./testcase'# 加载测试用例suite = unittest.defaultTestLoader.discover(test_dir, pattern='test_*.py')# 执行测试用例runner.run(suite)fp.close()
运行run.py,会看到report中生成了html文件,即为测试报告。
![7c2465ffd392357d32205933dd1b4114.png](https://img-blog.csdnimg.cn/img_convert/7c2465ffd392357d32205933dd1b4114.png)
浏览器打开该文件,内容如下:
![f6e665fa5b0a8d8ab979a127e9c023ec.png](https://img-blog.csdnimg.cn/img_convert/f6e665fa5b0a8d8ab979a127e9c023ec.png)
从报告内容中看出HTMLTestRunner.HTMLTestRunner()方法中参数所对应的内容,可以根据项目的实际需要指定参数内容。
02
美化版测试报告
在HTMLTestRunner基础上美化过的报告。
下载地址:
https://pan.baidu.com/s/1Wd_FXJBu3ATgmCQHkzbGag,
提取码:f6uq,放置在Python安装路径的Lib文件夹里。
run.py示例代码如下:
# -*- coding:utf-8 -*-# @author: 给你一页白纸import timeimport unittestimport BSTestRunner# 获取当前时间并指定时间格式,用于测试报告命名now = time.strftime("%Y-%m-%d_%H_%M_%S")# 测试报告存储路径report_dir = './report/'# 创建报告文件fp = open(report_dir + now + "_report.html", 'wb')# 初始化一个HTMLTestRunner实例对象,用来生成报告runner = BSTestRunner.BSTestRunner(stream=fp, title="App自动化测试报告", description="测试用例情况")# 定义测试用例路径test_dir='./testcase'# 加载测试用例suite = unittest.defaultTestLoader.discover(test_dir, pattern='test_*.py')# 执行测试用例runner.run(suite)fp.close()
生成报告样式如下:
![059808a8793b64766c13ea7a4d2d5ff4.png](https://img-blog.csdnimg.cn/img_convert/059808a8793b64766c13ea7a4d2d5ff4.png)
两种报告模板可根据自己喜好任意选择。
![f6ea10c6614d03736810bf4264ef1718.gif](https://img-blog.csdnimg.cn/img_convert/f6ea10c6614d03736810bf4264ef1718.gif)
点击阅读☞想学单元测试用例?这就来啦!
点击阅读☞引入MockMVC进行单元测试,可以省去很多麻烦
点击阅读☞前端大佬教你如何优雅地构建单元测试框架
点击阅读☞单元测试神器Jest,你真的会用么?
点击阅读☞即使不懂单元测试,会用这个工具也够了~
链接:https://www.cnblogs.com/lfr0123/p/13799178.htm
本文为51Testing经授权转载,转载文章所包含的文字来源于作者。如因内容或版权等问题,请联系51Testing进行删除
![6897f53015b201359f5728d673eb7cf3.gif](https://img-blog.csdnimg.cn/img_convert/6897f53015b201359f5728d673eb7cf3.gif)