htmlrunner用法_使用HTMLTestRunner实现HTML测试报告

HTMLTestRunner是unittest单元测试框架的一个扩展文件来生成HTML文件,可以使用其生成基础的html形式的报告。

下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html

找到HTMLTestRunner.py下载到本机,并放入PythonXX\Lib目录下。

python3x需要修改以下代码用来适配:

第94行,将import StringIO修改成import io

第539行,将self.outputBuffer = StringIO.StringIO()修改成self.outputBuffer = io.StringIO()o

第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

第631行,将print >> sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime)修改成print(sys.stderr, '\nTime Elapsed: %s' % (self.stopTime-self.startTime))

如果能引用成功说明就可以使用了。

以下代码使用了ddt的库生成HtmlTestRunner报告过程。

def toReport(self):

logger.info("开始读取unittest测试核心目录")

dir_path = unittest_path

logger.info("开始使用discover到测试")

try:

discover = unittest.defaultTestLoader.discover(dir_path, pattern="*.py")

except Exception as e:

logger.error("加载unittest测试类路径失败,请查看问题!原因: s%", e)

# 报告命名加上时间格式化

logger.info("设置报告名称格式")

time = datetime.now()

now = time.strftime('%Y-%m-%d %H_%M_%S')

# 报告绝对路径

reportname = report_path + now

reportpath= reportname +'result.html'

# 打开文件,写入测试结果

# print(reportpath)

logger.info("执行测试用例开始。。。。。。。。。。。。。")

try:

with open(reportpath, 'wb')as f:

runner = HTMLTestRunner(stream=f, verbosity=2, title='接口ddt测试报告', description='用例执行详细信息')

runner.run(discover)

f.close()

# result = BeautifulReport(discover)

# result.report(description='

用例执行详细信息', filename=reportname+"result")

except Exception as e:

logger.error("执行测试用例执行出错,请查看问题!原因: s%", e)

logger.info("执行测试用例结束。。。。。。。。。。。。。")

报告样式:

我们发现ddt下报告title很长,这是因为ddt库的内部机制引起的,接下来的文章会实现如何修改HtmlTestRunner在ddt下的用例title。

公众号回复666,领取最新一线大厂面试资料,面试题。以及整理最前沿的测试技术人员发展路线图和技能路线。

关注公众号获取更多干货

你可能感兴趣的:(htmlrunner用法)