unittest单元测试(测试报告生成)

自动化测试执行完成之后,我们需要生成测试报告来查看测试结果,使用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, ' Time Elapsed: %s' % (self.stopTime-self.startTime)修改为:print (sys.stderr, ' Time 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

注意:该修改针对的是使用Python3的朋友,如果你安装的是Python2,那么就不需要进行修改,直接使用即可。

存放路径:

将修改完成的模块存放在Python路径下Lib目录里面即可


 案例:

在前一篇文章的runtest.py的基础上进行修改,从而得到关于百度搜索的测试报告

import unittest
from HTMLTestRunner import HTMLTestRunner
import time
test_dir = './test_case'

discovery = unittest.defaultTestLoader.discover(test_dir, pattern='test*.py')

if __name__ == '__main__':
    # 存放报告的文件夹
    report_dir = './test_report'
    # 报告命名时间格式化
    now = time.strftime("%Y-%m-%d %H_%M_%S")
    # 报告文件完整路径
    report_name = report_dir+'./'+now+"result.html"

    # 打开文件再报告文件写入测试结果
    with open(report_name, "wb") as f:
        runner = HTMLTestRunner(stream=f, title='百度搜索测试报告', description='用例执行结果:')
        # 运行测试用例
        runner.run(discovery)
        # 关闭报告文件
        f.close()

代码分析:
首先,将HTMLTestRunner模块用import导入进来

其次,通过open()方法以二进制写模式打开当前目录下的以'当前时间+result.html'(将报告名称以当前时间命名,可以便于我们查看),如果没有,则自动创建该文件

接着,调用HTMLTestRunner模块下的HTMLTestRunner类。stream指定测试报告文件,title用于定义测试报告的标题,description用于定义测试报告的副标题。

最后,通过HTMLTestRunner的run()方法来运行测试套件中所组装的测试用例。最后通过close()关闭测试报告文件。


 测试报告:


 美化测试报告

下载地址:

https://github.com/easonhan007/HTMLTestRunner

修改方式,存储路径参照上面

代码实现:

和上面一样,除了把HTMLTestRunner换成BSTestRunner

原文地址:https://www.cnblogs.com/NancyRM/p/8385850.html