使用HTMLTestRunner实现HTML测试报告

测试完成后,为了便于量化工作和结果分析,需要生成测试报告。

使用Python标准库unittest单元测试框架的一个扩展文件来生成HTML文件:HTMLTestRunner。

下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html

适配python3需修改如下几行代码,修改完成如附件所示:

  • 94行, import StringIO
  • 539行,self.outputBuffer = StringIO.StringIO()
  • 631行,print >>sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime)
  • 642行,if not rmap.has_key(cls):
  • 766行,uo = o.decode('latin-1')
  • 772行,ue = e.decode('latin-1')

windows将下载的文件保存到:PythonXX\Lib目录下

Python交互模式下引入HTMLTestRunner模块,如系统没有报错,则说明添加成功。

实现过程

1、将HTMLTestRunner模块用import导入进来。

2、通过open()方法以二进制写模式('wb')打开当前目录下的result.html,如果没有,则自动创建。

   fp = open('./result.html','wb')

3、调用HTMLTestRunner模块下的HTMLTestRunner类。

  stream 指定测试报告文件

  title 定义测试报告的标题

  description 定义测试报告的副标题

runner = HTMLTestRunner(stream=fp,title='百度搜索测试报告',description='用例执行情况:')

4、通过HTMLTestRunner的run()方法来运行测试套件中的测试用例关闭测试报告文件close()。

实现代码

# coding=utf-8
import time,os,unittest
from HTMLTestRunner import HTMLTestRunner


class TestRunner(object):
    ''' Run test '''

    def __init__(self, cases="./",title=u'自动化测试报告',description=u'环境:windows 7'):
        self.cases = cases
        self.title = title
        self.des = description

    def run(self):

        for filename in os.listdir(self.cases):
            if filename == "report":
                break
        else:
            os.mkdir(self.cases+'/report')

        now = time.strftime("%Y-%m-%d_%H_%M_%S")
        fp = open("./report/"+ now +"result.html", 'wb')
        tests = unittest.defaultTestLoader.discover("./test_case",pattern='*sta.py',top_level_dir=None)
        runner = HTMLTestRunner(stream=fp, title=self.title, description=self.des)
        runner.run(tests)
        fp.close()

    def debug(self):
        tests = unittest.defaultTestLoader.discover(self.cases, pattern='*sta.py', top_level_dir=None)
        runner = unittest.TextTestRunner()
        runner.run(tests)


if __name__ == '__main__':
    test = TestRunner()
    test.run()

使用HTMLTestRunner实现HTML测试报告_第1张图片

你可能感兴趣的:(python,python)