自动化测试,HTML报告进阶之路,简直不要太漂亮
Posted 软件测试小dao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了自动化测试,HTML报告进阶之路,简直不要太漂亮相关的知识,希望对你有一定的参考价值。
1、自动化测试框架表示层
既然是表示层,那么它应该就是漂漂亮亮的展示在众人面前,令人眼前一亮、赏心悦目呢!!!
本章内容前提是基于结合Python单元测试框架unittest使用Jinja模版的htmlTestRunner报告模块;
听起来有点绕,无非就是使用python+unittest做接口/Ui自动化时生成HTML报告模块:HTMLTestRunner。
所以这章节就是介绍HTMLTestRunner样式报告的进阶之路,看看它如何从丑小鸭变成白天鹅。
2、unittest测试框架默认TextTestRunner执行器产生报告
准备unittest测试用例类Demo
'''
Created on 2021年7月19日
@author: joe-tester
'''
import unittest
class Test(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.a=3
cls.b=5
cls.c=None
def testName1(self):
self.c=self.a+self.b
self.assertEqual(self.c, 8, "断言失败")
def testName2(self):
self.c=self.a-self.b
self.assertEqual(self.c, -2, "断言失败")
def testName3(self):
self.c=self.a/self.b
self.assertEqual(self.c, 0.6, "断言失败")
def testName4(self):
self.c=self.a%self.b
self.assertEqual(self.c, 0, "断言失败")
def testName5(self):
self.c=self.a*self.b
self.assertEqual(self.c, 15, "断言失败")
2.1、unittest自带测试执行器TextTestRunner结果展示
加载测试类执行器
from unittest.runner import TextTestRunner
suite = unittest.TestSuite()
loader = unittest.TestLoader()
suite.addTest(loader.discover(start_dir="./", pattern='HTML*.py'))
with open("test.txt","w") as pf:
text=TextTestRunner(stream=pf,verbosity=2)
text.run(suite)
它生成的是基础的文本报告,可以看作是执行过程
2.2、开始进阶:HTMLTestRunner
将上文中的执行器进行改造
from Librarys import HTMLTestRunner
suite = unittest.TestSuite()
loader = unittest.TestLoader()
suite.addTest(loader.discover(start_dir="./", pattern='HTML*.py'))
from Librarys import HTMLTestRunner
with open("index_demo.html", "wb") as pf:
runner = HTMLTestRunner(stream=pf, title="xxxxx项目接口自动化测试报告",description="接口自动化测试")
runner.run(suite)
报告展示如下:至少已经有html的样子了
注意:HTMLTestRunner在源码执行过程中有几处错误需要修改
1、StringIO模块异常,使用io模块
2、has_keys模块异常,换个条件判断
3、默认是python2,为啥因为里面有print >> 改成pring(“error_info”)
4、还有uo = o.decode(‘latin-1’)转码错误;改成uo=o
2.3、再次优化:HTMLTestRunnerCN
一看上面的html报告样式,比较low,所以需要对样式进行优化
这样就够了吗?当然不,如果是UI自动化测试,需要对测试失败的用例进行截图怎么办?
2.4、再次进化:HTMLTestRunnerSt
这里就不演示截图效果了,在用例下添加截图方法即可
3、总结报告的样子
测试报告从unittest默认执行器产生的结果文本,到html初级、再到高级,最后兼容UI截图报告展示。
已经算是无线美化了;但是最为一个有追求的测试,这样是不够的,为了再多一点点花里胡哨的效果,下面接着推荐!
4、BeautifulReport更加优美的测试报告
环境准备,BeautifulReport是可以通过pip install 下载的
pip install BeautifulReport==0.0.2
主程序执行器修改如下:
from BeautifulReport import BeautifulReport
suite = unittest.TestSuite()
loader = unittest.TestLoader()
suite.addTest(loader.discover(start_dir="./", pattern='HTML*.py'))
BeautifulReport(suite).report(description="单接口批量测试", filename="xxxx接口自动化测试报告", report_dir=".")
HTML效果展示如下,是不是level又高了一级?
关于unittest组织测试用例生成HTML报告的样式到此结束,如果还需要其他效果,请自行改造!《需要模版的记得关注我哦!!!》
最后:【可能给予你一定的帮助】
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!
关注我的微信公众号【软件测试小dao】免费获取~
我的学习交流群:644956177 群里有技术大牛一起交流分享~
如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!
以上是关于自动化测试,HTML报告进阶之路,简直不要太漂亮的主要内容,如果未能解决你的问题,请参考以下文章
TestNG+ExtentReports生成超漂亮的测试报告