赞
踩
本文是HTMLTestRunner优化自动化测试报告内容的一个案例
基于一个Python编写的成熟的web自动化测试框架,框架教程可见:
https://blog.csdn.net/weixin_40331132/article/details/106482043?utm_source%20=%20uc_fansmsg
框架源代码下载:
https://download.csdn.net/download/weixin_40331132/85580645
框架测试报告展示(修改后的样式)
这一节与本文主题内容无关,主要是简单介绍一下HTMLTestRunner;想看主题内容请看第二节。
HTMLTestRunner 是一个 Python 单元测试框架的扩展,它能够以 HTML 格式生成测试报告,使得测试结果更加直观和易读。它基于 unittest 框架,并且可以在 Python 2.x 和 Python 3.x 版本中使用。
使用 HTMLTestRunner,可以轻松地生成测试报告,并将其展示在网页上。测试报告包括测试用例的执行结果、测试用例的运行时间、测试用例的名称和描述等。此外,HTMLTestRunner 还支持将测试报告中的测试用例按照模块或者类别进行分组,以便更好地查看测试结果。
HTMLTestRunner 的使用非常简单,只需要按照以下步骤即可:
安装方法有两种
1、使用命令下载
pip install HTMLTestRunner
2、网站下载
http://tungwaiyip.info/software/HTMLTestRunner.html
点击上图网站框起的链接,进入页面,
将里面的内容全部复制到一个py文件里面,这个文件取名叫做HTMLTestRunner.py
然后在文件里修改相关内容(因为它是Python2时代产物,Python3要调整下兼容):
# 94行,import StringI0 改为 import io
# 118行,self.fp.write(s) 改为 self.fp.write(bytes(s,'UTF-8'))
# 539行,self.outputBuffer = StringI0.StringIO() 改为 self.outputBuffer = io.BytesIO()
# 631行,print >>sys .stderr, '\nTime ELapsed: %s' % (self.stopTime-seLf.startTime) 改为 print('\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
# 768行,uo = o 改为 uo = o.decode('utf-8')
# 772行,ue = e.decode('latin-1') 改为 ue = e
# 774行,ue = e 改为 ue = e.decode('utf-8')
在HTMLTestRunner.py所在目录下新增一个demo.py文件。编写如下代码:
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2023/3/25 22:48 # @Author : 魂尾 # @File : demo.py # @Description : 这个函数是用来balabalabala自己写 import unittest import HTMLTestRunner class Test(unittest.TestCase): def test_add(self): self.assertEqual(1 + 1, 2) def test_subtract(self): self.assertEqual(3 - 1, 2) if __name__ == '__main__': suite = unittest.TestSuite() suite.addTest(Test('test_add')) suite.addTest(Test('test_subtract')) with open('test_report.html', 'wb') as f: runner = HTMLTestRunner.HTMLTestRunner( stream=f, title='Test Report', description='This is a test report' ) runner.run(suite)
运行上述代码,将会在当前目录下生成一个名为 test_report.html 的文件,其中包含测试结果的详细信息。
浏览器打开为:
这是HTMLTestRunner最初始的样式,可以根据不同架构要求,改变HTMLTestRunner中的html模板和生成报告函数,展示成自己需要的内容,如前言中的报告样式。
声明:非前言中的自动化框架,下面修改就仅供参考了。
自动化框架中的测试报告样式如下:
自动化框架中用例
如上两图中,需要将用例中的sheet页签名称(用例名)在报告中对应位置展示出来
HTMLTestRunner.py里要生成展示用例名称的测试报告,需要修改四个区域
1 、_generate_report_test :生成报告详情函数
2 、REPORT_TEST_OUTPUT_TMPL :用例执行日志模板
模板生成报告的区域展示如下(红框标出):
3 、REPORT_TEST_WITH_OUTPUT_TMPL :未通过用例详情模板
4、 REPORT_TEST_NO_OUTPUT_TMPL :通过用例详情模板
模板生成报告的区域展示如下(红框标出):
1、修改REPORT_TEST_OUTPUT_TMPL模板中的 id 改成case_name
第408行 %(id)s: %(output)s 改为 %(case_name)s: %(output)s
2、修改REPORT_TEST_WITH_OUTPUT_TMPL模板中的desc改成case_name
第383行 %(desc)s 改为 %(case_name)s
3、修改REPORT_TEST_NO_OUTPUT_TMPL模板中的desc改成case_name
第402行 %(desc)s 改为 %(case_name)s
4、修改_generate_report_test函数中代码
注释掉 685行、686行,desc不用了
在这两行后面添加一行代码,来获取报告中的用例名称
case_name = list(t.excu_cases[index].keys())[0]
第709行、717行 desc = desc 改为 case_name = case_name
修改后,执行自动化测试产生的报告如下:
报告中已经展示了用例名称了,表示我们修改成功。
再一次声明:本文仅以下自动化框架修败,其它自动化框架仅供参考
框架实现教程可见:
https://blog.csdn.net/weixin_40331132/article/details/106482043?utm_source%20=%20uc_fansmsg
框架源代码下载:
https://download.csdn.net/download/weixin_40331132/85580645
好了,本文到此结束,针对框架有什么难实现的问题,可以留言,俺抽空出新文章写实现教程
希望你来一个订阅,点赞,收藏
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。