• 12
  • 12
分享
  • 通过python生成不同的测试报告对比——软件测试圈
  • 曼倩诙谐 2021-07-02 10:20:38 字数 4064 阅读 1524 收藏 12

  前言

  无论做什么自动化,测试报告一定要有的,它可以清楚的展示出来我们执行用例的情况。便于查看自动化测试结果内容。安静这边了解目前通过python生成的测试报告分别有:HTMLTestRunner、BeautifulReport 、 pytest-html 和Allure,这几种报告内容都是属于不同的模板,本篇文章主要介绍下这如何生成以上四份报告的过程以及对比情况。

  HTMLTestRunner

  HTMLTestRunner是Python标准库的unittest模块的扩展。它生成易于使用的HTML测试报告。使用时需要下载,然后放到项目目录中

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

  下载完成后,我们打开文件,其中有一段代码是告诉我们如何进行使用。

# output to a file
    fp = file('my_report.html', 'wb')
    runner = HTMLTestRunner.HTMLTestRunner(
                stream=fp,
                title='My unit test',
                description='This demonstrates the report output by HTMLTestRunner.'
                )
    # Use an external stylesheet.
    # See the Template_mixin class for more customizable options
    runner.STYLESHEET_TMPL = '<link rel="stylesheet" href="my_stylesheet.css" type="text/css">'
    # run the test
    runner.run(my_test_suite)

  从上面代码中可以看出来,报告需要三个参数:

  ·stream:表示生成报告的路径

  ·title:表示报告的标题

  ·description:表示用例执行情况说明

  安静来一段实例代码,来生成详细的测试报告:

import unittest
import HTMLTestRunner_cn
class Test(unittest.TestCase):
    def test_01(self):
        '''测试用例01'''
        print('---用例01---')
    def test_02(self):
        print('---用例02---')
    def test_03(self):
        '''测试用例03'''
        print('---用例03---')
if __name__ == '__main__':
    # 测试报告地址
    fp = open('result.html', "wb")
    # 报告详情
    runner = HTMLTestRunner_cn.HTMLTestRunner(stream=fp,
                                              title=u'自动化测试报告,测试结果如下:',
                                              description=u'用例执行情况:')
    # 实例化
    testunit = unittest.TestSuite()
    # 加载用例
    testunit.addTests(unittest.TestLoader().loadTestsFromTestCase(Test))
    # 执行用例
    runner.run(testunit)
    # 关闭报告
    fp.close()

  执行完脚本后,本地路径出现了一个测试报告,双击打开可以查看报告详情,其中用例中加入注释,可以方便配置用例详情显示。

1-1.png

  BeautifulReport

  BeautifulReport也是基于unittest中的一个报告框架,也是以HTML的报告形式进行展示出来的,可以通过pip直接进行安装下载。

  安装:pip install BeautifulReport

  验证安装:pip show BeautifulReport

1-2.png

  打开BeautifulReport的源码可以看到报告中已经将需要的参数列举下来了。

1-3.png

  以上参数可以默认也可以进行自己手动修改。

import unittest
import BeautifulReport
class Test(unittest.TestCase):
    def test_01(self):
        '''测试用例01'''
        print('---用例01---')
    def test_02(self):
        print('---用例02---')
    def test_03(self):
        '''测试用例03'''
        print('---用例03---')
if __name__ == '__main__':
    testunit = unittest.TestSuite()
    # 加载用例
          testunit.addTests(unittest.TestLoader().loadTestsFromTestCase(Test))
    result = BeautifulReport.BeautifulReport(testunit)
    result.report(filename='report', description='测试报告', log_path=None)

  通过执行后可以看出生成了和HTMLTestRunner类似的测试报告。

1-4.png

  pytest-html

  pytest-html属于pytest第三方插件,使用时需要安装pytest和pytest-html。

  安装pytest:pip install pytest-html

  安装pytest-html:pip installpytest-html

  pytest-html的源码地址:https://github.com/pytest-dev/pytest-html

  使用方法:

  需要在执行的用例下通过终端形式输入命令  pytest --html=report.html  (等号后面表示生成报告的路径和名称)。

class Test:
    def test_01(self):
        '''测试用例01'''
        print('---用例01---')
    def test_02(self):
        print('---用例02---')
    def test_03(self):
        '''测试用例03'''
        print('---用例03---')

  通过执行后,会在当前目录中生成一个report.html。

1-5.png

  双击进行打开报告,可以看出详情的测试报告内容。可以看到和HTMLtestRunner的报告类似。

1-6.png

  Allure

  Allure也是属于一种开源的测试报告框架,基于多种语言,其中在python中是通过pytest单元测试框架进行生成的。也是目前测试行业中常用到的测试报告内容。其中allure是的环境是基于java的环境(下载JDK,配置环境变量)。

  allure下载地址:https://github.com/allure-framework/allure2

  下载后通过解压,将allure中的bin文件放入到环境变量中即刻进行使用

  我们是通过pytest单元测试框架进行生成allure报告的,需要安装第三方插件 allure-pytest,可以通过pip直接进行安装   pip install allure-pytest。

class Test_Allure:
    def test_01(self):
        '''测试用例01'''
        print('---用例01---')
        
    def test_02(self):
        print('---用例02---')
        
    def test_03(self):
        '''测试用例03'''
        print('---用例03---')

  想要生成测试报告需要先在执行测试用例时候,在命令行中加入生成报告的命令。

pytest --alluredir  报告目录

1-7.png

  执行完后,会在当前目录中生成一个详细的report的报告目录,里面存放的就是执行用例的测试结果内容。

  再次输入命令:

allure serve 测试结果目录

 1-8.png

  通过执行命令后,会在当前的浏览器中直接打开我们的测试报告内容。

1-9.png

  总结

  通过本篇文章,安静已经将目前市面上常用到的测试框架进行了总结,我想通过大家对图片中的报告认知,可能会感觉,HTMLtestRunner和BeautifulReport,pytest-html生成的报告内容基本差不多,将测试结果可以在一个页面中全部展示出来,但是我们的allure报告,存在多个页面内容,如果测试用例较多的话,可以进行查看更加方便快捷。好了,具体用到那个报告,就看个人爱好了~感谢大家阅读,希望本篇文章对您有所帮助!



作者:测试安静   

来源:51Testing软件测试网原创

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   今天小梦就已微信红包为例,说说在实际项目中如何设计测试用例!希望也能对你有一些启发 : )  1. 设计测试用例的一般步骤  我先简单讲一下我写测试用例的操作步骤:  详细了解并梳理系统功能需求,必要时找产品进行需求澄清;  如果是比较复杂,或者对原有功能改动较多,在梳理需求的过程最好能画出业务流程图;  根据需求/流程图列出所有功能测试点;  根据测试点编写详细的功能测试用例。  2. 实例 - 微信红包  2.1 需求  微信红包的诞生  我还记得微信红包的大流行是在2015年,那一年我边看春晚,边拿着两个手机摇一摇。此后每年的春节期间,抢红包,发红包,成了和支付宝集五福一样的新习俗。...
            9 9 2182
            分享
          • 1、什么是 FastHttpUser在介绍FastHttpUser之前,我们先看一下,Locust默认客户端使用的是啥?Locust 默认客户端使用的是python-requests。>> 如果不了解 python-requests,可以看一下小鱼的这篇:《requests库常用到的7个主要方法及控制访问参数》或者官方文档,如果有足够耐心的话:《Requests》我们接着说,使用requests是Pyhton维护非常方便的包,并且在python应用中非常广泛,栗如:爬虫,接口等。所以,官网是非常推荐我们使用HttpUser。但是,如果我们的测试规模非常大,数据量非常大,那么这个时候...
            1 1 24257
            分享
          • 源自于一本讲性能测试书的思考?书中内容:性能测试是一门富有挑战的、有深度的、综合性的学科。那我想怎能只局限于说性能测试,我倒认为所有的测试类型都是一门富有挑战、有深度的、综合性的学科,只要你想做到顶尖都没有那么容易,而我们正在做的的UI自动化测试也是如此。很多性能测试初学者总觉得性能测试就是写个脚本,弄几台机器测一测,出个报告就行了。通常关注"并发多少""响应时间多少""能跑通吗"这些问题。认为并发越大,响应时间越快,那性能一定就越好。性能测试不仅仅是录制脚本或编写程序,基本的性能理论、性能执行的原则还是要了解的。同样的脚本,不同的人...
            0 0 808
            分享
          •   性能基准测试  性能基准测试,通常被称为 Performance Benchmark Test,是每次对外发布产品版本前必须要完成的测试类型。  性能基准测试,会基于固定的硬件环境和部署架构(比如专用的服务器、固定的专用网络环境、固定大小的集群规模、相同的系统配置、相同的数据库背景数据等),通过执行固定的性能测试场景得到系统的性能测试报告,然后与上一版本发布时的指标进行对比,如果发现指标有“恶化”的趋势,就需要进一步排查。  典型的“恶化”趋势,主要表现在以下几个方面:  · 同一事务的响应时间变慢了。比如,上一版本中,用户登录的响应时间是 2 s,但是在最新的被测版本中这个响应时间变成了...
            0 0 945
            分享
          • 看了这篇文章,再也不会有人说有没有测试都一样了。测试和开发的工作方式是不太一样的,开发属于开创型,从无到有,可能我写一天代码,一个功能就写完了。是0分到60分的开创。但是测试工作是属于提升型的,测一轮,软件好用加一个度,再测一轮再加一个度,是60分到90分的进阶。很显然,不能用开发的工作方式来度量测试的存在。测试的工作产物,简单分为四个方向:【测试用例】版本测试用例,公共测试用例,都是项目的宝贵资产,甚至在参加一些大型的cmmi项目认证时,都是需要提供测试用例的。【测试报告】测试时间,测试内容,发现的问题,存在的问题,对测试过程形成的总结也可以对版本质量形成佐证。【bug分析】bug分析中,哪...
            5 5 6246
            分享
      • 51testing软件测试圈微信