测试开发全栈之Python自动化 Unittes 输出测试报告
程序员一凡
·
2021年02月22日
·
1194 次阅读
「原创声明:保留所有权利,禁止转载」
前言
unittest 框架执行测试用例完成后会在控制台输出如上的结果
实际测试过程中,我们需要输出测试报告,这个时候我们需要使用第三方模块
HTMLTestRunner
下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html
下载后需要修改:
94 行引入的名称要改,从 import StringIO 修改成 import io
539 行 self.outputBuffer = StringIO.StringIO() 修改成 self.outputBuffer=io.StringIO()
631 行 print >>sys.stderr, ‘\nTime Elapsed: %s’ % (self.stopTime-self.startTime) 修改成 print (sys.stderr, - ‘\nTime Elapsed: %s’ %(self.stopTime-self.startTime))
642 行,if not rmap.has_key(cls): 修改成 if not cls in rmap:
766 行的 uo = o.decode(‘latin-1’),修改成 uo=o
772 行,把 ue = e.decode(‘latin-1’) 直接改成 ue = e
存放路径:将修改完成的模块存放在 Python 路径下 Lib 目录里即可。
# -*- coding:utf-8 -*-
# @author: 微信公众号/程序员一凡
import time
import unittest
import HTMLTestRunner
# 获取当前时间并指定时间格式,用于测试报告命名
now = time.strftime("%Y-%m-%d_%H_%M_%S")
# 测试报告存储路径
report_dir = './report/'
# 创建报告文件,并以写的形式打开文件,用于写入报告内容
fp = open(report_dir + now + "_report.html", 'wb')
# 初始化一个HTMLTestRunner实例对象,用来生成报告
runner = HTMLTestRunner.HTMLTestRunner(stream=fp,
title="App自动化测试报告",
description="测试用例情况")
# 定义测试用例路径
test_dir='./testcase'
# 加载测试用例
suite = unittest.defaultTestLoader.discover(test_dir, pattern='test_*.py')
# 执行测试用例
runner.run(suite)
fp.close()
运行结果
浏览器打开该文件,内容如下
TesterHome 为用户提供「保留所有权利,禁止转载」的选项。
除非获得原作者的单独授权,任何第三方不得转载标注了「原创声明:保留所有权利,禁止转载」的内容,否则均视为侵权。
具体请参见TesterHome 知识产权保护协议。
暂无回复。