自动化生成测试报告
发布于 2021-05-10 00:37 ,所属分类:软件测试工程师学习资料
背景:python3使用HTMLTestRunner生成测试报告
1
HTMLTestRunner简介
自动化测试执行完成后,可以将测试结果保存在测试报告里。使用HTMLTestRunner模块可以直接生成HTML格式的报告。HTMLTestRunner是一个第三方的模块,通过pip工具安装不了,只能下载后手动导入。
2
HTMLTestRunner下载安装
HTMLTestRunner下载地址: http://tungwaiyip.info/software/HTMLTestRunner.html
因为这个模块原本给python2.0用的,所以下载后需要做些修改,改成python3的语法
修改内容如下:
a,94行引入的名称要改,从 import StringIO 改成import io。
b,539行 self.outputBuffer = StringIO.StringIO() 要改成self.outputBuffer=io.StringIO()
c,631行 print >>sys.stderr, ‘\nTime Elapsed: %s’ % (self.stopTime-self.startTime)
修改为:print (sys.stderr, ‘\nTime Elapsed: %s’ %(self.stopTime-self.startTime))
d,642行,if not rmap.has_key(cls): 需要换成 if not cls in rmap:
e,766行的uo = o.decode(‘latin-1’),改成 uo=o
f,772行,把 ue = e.decode(‘latin-1’) 直接改成 ue = e
最后,把修改好的HTMLTestRunner .py 文件放入python安装目录中.我们首先知道通过pip安装的第三方库,一般都在python安装路径下的Lib\site-packages目录.
3
示例脚本及报告生成
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import unittest
import HTMLTestRunner
import time
class TestDemo(unittest.TestCase):
"""测试用例"""
def setUp(self):
print('========== begin ==========')
def test_success(self):
self.assertEqual(1 + 1, 2)
def test_fail(self):
self.assertEqual(1 + 1, 10)
def tearDown(self):
print('========== end ==========')
if __name__ == '__main__':
# 构造测试集
suite = unittest.TestSuite()
# 添加测试用例
suite.addTest(TestDemo("test_success"))
suite.addTest(TestDemo("test_fail"))
# 报告路径
date_time = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
report_abspath = './report' + date_time + '.html'
# 执行测试
with open(report_abspath, 'wb') as f:
runner = HTMLTestRunner.HTMLTestRunner(
stream=f,
title='测试一下报告生成',
description='失败成功校验.'
)
runner.run(suite)
好了,三方库已经接入,点击报告中的蓝色链接,还可以看到用例详细信息,是不是很方便呢。
号|同花顺软件测试圈
相关资源