使用HTMLTestRunner实现HTML测试报告

论坛 期权论坛 期权     
软件测试大本营   2019-7-8 00:16   2771   0
自动化测试的最重要一环就是生成报告,尤其在敏捷化的团队中,团队成员根据自动化的测试报告,量化和分析测试结果,评估测试质量,调整测试策略。
使用Python标准库unittest单元测试框架的一个扩展文件来生成HTML文件:HTMLTestRunner。
下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html
[h2]适配python3需修改如下几行代码,修改完成如附件所示:[/h2]
  1. [/code]
  2. [list][*][*][*][*][*][*][/list][code]94行, import StringIO
复制代码
  1. 539行,self.outputBuffer = StringIO.StringIO()
复制代码
  1. 631行,print >>sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime)
复制代码
  1. 642行,if not rmap.has_key(cls):
复制代码
  1. 766行,uo = o.decode('latin-1')
复制代码
  1. 772行,ue = e.decode('latin-1')
复制代码
  1. [/code]
  2. windows中将HTMLTestRunner文件保存到:PythonXX\Lib目录下。
  3. [img]https://201907.oss-cn-shanghai.aliyuncs.com/wc/1811847-4b5cf76e8079c5624564f67bbf609e72[/img]
  4. [b]在Python交互模式下引入HTMLTestRunner模块,如系统没有报错,则说明添加成功。[/b]
  5. [h1]实现过程[/h1]1、将HTMLTestRunner模块用import导入进来。
  6. 2、通过open()方法以二进制写模式('wb')打开当前目录下的result.html,如果没有,则自动创建。
  7.   
  8. [list][*][/list][code]fp = open('./result.html','wb')
复制代码
3、调用HTMLTestRunner模块下的HTMLTestRunner类。
  • stream 指定测试报告文件
  • title 定义测试报告的标题
  • description 定义测试报告的副标题
  1. runner = HTMLTestRunner(stream=fp,title='百度搜索测试报告',description='用例执行情况:')
复制代码
4、通过HTMLTestRunner的run()方法来运行测试套件中的测试用例关闭测试报告文件close()。

[h1]实现代码[/h1]
  1. # coding=utf-8
复制代码
  1. import time,os,unittest
复制代码
  1. from HTMLTestRunner import HTMLTestRunner
复制代码
  1. [/code][code]
复制代码
  1. class TestRunner(object):
复制代码
  1.    ''' Run test '''
复制代码
  1. [/code][code]   def __init__(self, cases="./",title=u'自动化测试报告',description=u'环境:windows 7'):
复制代码
  1.        self.cases = cases
复制代码
  1.        self.title = title
复制代码
  1.        self.des = description
复制代码
  1. [/code][code]   def run(self):
复制代码
  1. [/code][code]       for filename in os.listdir(self.cases):
复制代码
  1.            if filename == "report":
复制代码
  1.                break
复制代码
  1.        else:
复制代码
  1.            os.mkdir(self.cases+'/report')
复制代码
  1. [/code][code]       now = time.strftime("%Y-%m-%d_%H_%M_%S")
复制代码
  1.        fp = open("./report/"+ now +"result.html", 'wb')
复制代码
  1.        tests = unittest.defaultTestLoader.discover("./test_case",pattern='*sta.py',top_level_dir=None)
复制代码
  1.        runner = HTMLTestRunner(stream=fp, title=self.title, description=self.des)
复制代码
  1.        runner.run(tests)
复制代码
  1.        fp.close()
复制代码
  1. [/code][code]   def debug(self):
复制代码
  1.        tests = unittest.defaultTestLoader.discover(self.cases, pattern='*sta.py', top_level_dir=None)
复制代码
  1.        runner = unittest.TextTestRunner()
复制代码
  1.        runner.run(tests)
复制代码
  1. [/code][code]
复制代码
  1. if __name__ == '__main__':
复制代码
  1.    test = TestRunner()
复制代码
  1.    test.run()
复制代码
在指定路径找到生成的html报告,直接打开即可。








在看点这里
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP