如何生成HTMLTestRunner报告

今天,学习了如何生成HTMLTestRunner测试报告。 html

用unittest框架作app自动化测试,运行后,测试结果不便于查看,同时多个case存在的时候,可能会致使case result记录不正确的状况。 
为此,引入了HTMLTestRunner.py,它是Python标准库unittest模块的一个扩展,它能够生成直观的HTML测试报告。app


 

首先,下载HTMLTestRuner.py文件。 
源地址:http://tungwaiyip.info/software/HTMLTestRunner.html 
HTMLTestRunner.py是针对Python2.7版本,对于Python3.x的使用,须要改动几处。 
具体改动以下: 框架

第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 not cls in rmap: 
第766行,将uo = o.decode(‘latin-1‘)修改为uo = o
第772行,将ue = e.decode(‘latin-1‘)修改为ue = e 
第778行,将output = saxutils.escape(uo+ue),修改为output = saxutils.escape(str(uo)+str(ue)),

另外注意:编写脚本打开文件的时候,fp=file(filename,”wb”)在Python3.x中file已经再也不使用了,须要使用的是fp=open(filename,”wb”) ;同时必定要记得close fp即fp.close() 学习

将上述几处地方改动,保存成功后,将HTMLTestRunner.py放到Python安装目录下的Lib目录中。测试

检验是否加载成功,在Python IDLE 中输入 :ui

import HTMLTestRunner ,回车

若无报错,那么加载成功。spa


 

测试脚本:code

if __name__ == "__main__":
#    casesuit()
    #全部的用例集合
    all_test_cases = casesuit()

    #获取系统当前时间
    now = time.strftime('%Y-%m-%d-%H_%M_%S', time.localtime(time.time()))
    day = time.strftime('%Y-%m-%d', time.localtime(time.time()))

    #定义单个测试报告的存放路径,支持相对路径
    tdresult = result + day

    #若已经存在以当天日期为名称的文件夹的状况,则直接将测试报告放到这个文件夹之下
    if os.path.exists(tdresult):
        filename = tdresult + "\\" + now + "_result.html"
        #以写文本文件或写二进制文件的模式打开测试报告文件
        fp = open(filename, 'wb')
        #定义测试报告
        runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title='MultiCalculator Auto Test Report', description=u'Result')
        #运行测试用例
        runner.run(all_test_cases)
        #关闭报告文件
        fp.close()
    else:
        #不存在以当天日期为名称的文件夹的状况,则创建一个以当天日期为名称的文件夹
        os.mkdir(tdresult)
        #以写文本文件或写二进制文件的模式打开测试报告文件
        filename = tdresult + "\\" + now + "_result.html"
        fp = open(filename, 'wb')
        #定义测试报告
        runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title='MultiCalculator Auto Test Report', description=u'Result')
        #运行测试用例
        runner.run(all_test_cases)
        #关闭报告文件
        fp.close()

执行测试脚本,就这样获得一个report htm

 

在Python3.6中,能够获得:blog

 

在result目录下,有文件

 

打开后,如图所示,这样看测试结果明显更直观: 

相关文章
相关标签/搜索