📌 博客主页: 程序员二黑
📌 专注于软件测试领域相关技术实践和思考,持续分享自动化软件测试开发干货知识!
📌 公号同名,欢迎加入我的测试交流群,我们一起交流学习!
目录
- 1. HTMLTestRunner的介绍
- 2. HTMLTestRunner的优化
- 3. 测试报告的生成
- 资源分享
测试执行过程中,当测试脚本运行完毕后,直接将运行完毕后的测试结果发给项目组成员,并不是最优的选择。如何让测试结果变的易读美观,让测试结果变的人人能够看的懂,也是值得考虑的问题。
HTMLTestRunner 是 Python 标准库的 unittest 模块的一个扩展, 它可以生成HTML的测试报告。
1. HTMLTestRunner的介绍
HTMLTestRunner 是 Python 标准库的 unittest 模块的一个扩展, 它可以生成HTML的测试报告。下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html,将下载后的HTMLTestRunner.py放到Python安装路径下的Lib文件中。
2. HTMLTestRunner的优化
现在使用的Python版本大部分是Python3,而前面下载的HTMLTestRunner.py是基于Python2版本的,所以有些地方需要修改成符合Python3版本的规范要求,修改的地方如下(书籍提供的资料里是修改过符合Python3版本的HTMLTestRunner.py文件,无需自己下载了及修改了哦….)。
第94行:
import StringIO 改为import io
第539行:
self.outBuffer=StringIO.String()改为self.outBuffer=io.StingIO()
第631行:
print>>sys.stderr.”\nTime Elapsed:%s’%(self.stopTime-self.startTime)改为print(sys.stderr.”\nTime Elapsed:%s’%(self.stopTime-self.startTime))
第642行:
if not map.has_key(cls)改为if not cls in map
第766行:
uo=o.decode(“latin-1”)改为uo=e
第772行:
ue=e.decode(“latin-1”)改为ue=e
3. 测试报告的生成
结合前面UnitTest单元测试框架章节中test_mathfunc.py为例,test_mathfunc.py内容如下:
import unittest
from UnitTestDemo.mathfunc import *class TestMathFunc(unittest.TestCase):"""测试mathfunc.py"""# @unittest.skip("don't run this case!")# @unittest.skipIf(3<2,"don't run this case!")#@unittest.skipUnless(1>2,"don't run this case!")def test_add(self):"""测试加法add()"""self.assertEqual(3,add(1,2))self.assertNotEqual(3,add(2,2))def test_minus(self):"""测试减法minus"""self.assertEqual(1,minus(3,2))def test_multi(self):"""测试乘法multi"""self.assertEqual(6,multi(2,3))def test_divide(self):"""测试除法divide"""self.assertEqual(2,divide(6,3))self.assertEqual(2.5,divide(5,2))
在工程的根目录下新建HtmlReport.py,代码如下:
import unittest
from HTMLTestRunner import HTMLTestRunner
from UnitTestDemo.test_mathfunc import TestMathFuncif __name__ == "__main__":suite = unittest.TestSuite()# 执行加法、减法、除法tests = [TestMathFunc("test_add"),TestMathFunc("test_divide"),TestMathFunc("test_minus")]suite.addTests(tests)# addTest,添加单个TestCase# suite.addTest(TestMathFunc("test_multi"))f = open("d:\\reporter.html","wb")runner = HTMLTestRunner(stream=f,title="测试报告",description="测试用例执行情况")runner.run(suite)
运行HtmlReport.py文件,可观察到D盘下增加了reporter.html一个html文件。打开该html文件,展现结果如图8-1所示,可以通过页面直观的看到test_mathfunc.py中测试用例的执行情况。通过html测试报告,让测试结果变的直观易读。
::: hljs-center
图 html测试报告
:::
资源分享
下面这份资源,对于想学习【软件测试】的朋友来说应该是最全面最完整的备战仓库,希望也能帮助到你!