Python3和HTMLTestRunner生成html测试报告
Posted zhengyihan1216
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python3和HTMLTestRunner生成html测试报告相关的知识,希望对你有一定的参考价值。
1、测试环境:
Python3.5+unittest+HTMLTestRunner
2、下载HTMLTestRunner.py文件
下载地址 http://tungwaiyip.info/software/HTMLTestRunner.html
右键单击保存至本地,放在Python的安装目录Lib文件夹下(我本地放在本目录下:D:\\setup\\Python35\\Lib)
3、由于下载的HTMLTestRunner.py文件是基于Python2的,若适用于Python3则进行如下修改:
第94行,将import StringIO修改成import io
第539行,将self.outputBuffer = StringIO.StringIO()修改成self.outputBuffer = io.StringIO()
第642行,将if not rmap.has_key(cls):修改成if not cls in rmap:
第766行,将uo = o.decode(\'latin-1\')修改成uo = e
第772行,将ue = e.decode(\'latin-1\')修改成ue = e
第631行,将print >> sys.stderr, \'\\nTime Elapsed: %s\' % (self.stopTime-self.startTime)修改成print(sys.stderr, \'\\nTime Elapsed: %s\' % (self.stopTime-self.startTime))
4、以下3个py文件利用unittest、HTMLTestRunner生成html测试报告
test.py 文件
1 class Test(): 2 #初始化函数 3 def __init__(self,a,b): 4 self.a = a 5 self.b = b 6 7 #两个数相加 8 def add(self): 9 x = self.a+self.b 10 return x 11 12 #两个数相减 13 def dele(self): 14 y = self.a-self.b 15 return y
add_dele.py文件
1 #coding=utf-8 2 from test import Test 3 import unittest 4 5 class Test_test(unittest.TestCase): 6 #下面三引号对类的注释会显示在报告的表格中 7 \'\'\'数字计算\'\'\' 8 def test_shuzi(self): 9 #下面三引号对方法的注释会显示在报告的表格中 10 \'\'\'两个数字相加以及两个数字相减\'\'\' 11 # 对test文件中的Test类初始化 12 shuzi = Test(7, 3) 13 self.assertEqual(shuzi.add(),10) 14 self.assertEqual(shuzi.dele(),4) 15 def test_liangmethod(self): 16 \'\'\'两数字相加的2倍 加上 两个数字相减的2倍\'\'\' 17 #对test文件中的Test类初始化 18 liangshuzi = Test(6,5) 19 t = liangshuzi.add()*2 + liangshuzi.dele()*2 20 self.assertEqual(t,24)
test_add_dele.py文件
1 #coding=utf-8 2 from HTMLTestRunner import HTMLTestRunner 3 import unittest 4 import add_dele 5 import time 6 import os 7 8 #构建测试集 9 suit = unittest.TestSuite() 10 #测试集加入add_dele文件中被调用的方法。格式suit.addTest(文件名.类名("方法名")) 11 suit.addTest(add_dele.Test_test("test_shuzi")) 12 suit.addTest(add_dele.Test_test("test_liangmethod")) 13 14 #定义存放测试报告的路径及文件名 15 #我定义的路径是:当前路径+存放报告的专有目录Report+文件名(文件名是当前时间+report.html) 16 curent_dirc=os.path.dirname(os.path.realpath(__file__)) 17 report_dirc = "\\Report" 18 now = time.strftime("%Y%m%d-%H%M%S") 19 report_name = curent_dirc+report_dirc+"\\\\"+now+"report.html" 20 fp = open(report_name,"wb") 21 runner = HTMLTestRunner(stream=fp, 22 title="测试一下报告生成", 23 description="用两个数字的相加减来练习") 24 runner.run(suit) 25 fp.close()
5、文件及html报告架构:
6、生成的html报告样式:
以上是关于Python3和HTMLTestRunner生成html测试报告的主要内容,如果未能解决你的问题,请参考以下文章
python3修改HTMLTestRunner,生成有截图的测试报告,并发送测试邮件
python3-如何正常使用HTMLTestRunner.py,生成自动化测试报告
python3+requests库框架设计07-HTMLTestRunner