自动化生成测试报告

发布于 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)

好了,三方库已经接入,点击报告中的蓝色链接,还可以看到用例详细信息,是不是很方便呢。

号|同花顺软件测试圈

相关资源