自动化测试,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 TextTestRunnersuite = 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 HTMLTestRunnerwith 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又高了一级?

图片

最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走! 

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

 

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值