自动化测试,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生成超漂亮的测试报告

“沉淀累积”,道出自动化测试进阶之路...

使用allure生成漂亮的测试报告

selenium+Python(生成html测试报告)

关于如何编写功能测试漂亮的报告,360度冰天雪地各种求测试报告模块

关于如何编写功能测试漂亮的报告,360度冰天雪地各种求测试报告模块