• 12
  • 12
分享
  • 通过python生成不同的测试报告对比——软件测试圈
  • 曼倩诙谐 2021-07-02 10:20:38 字数 4064 阅读 1840 收藏 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软件测试网原创

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

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   想做自动化测试肯定绕不开Python的学习,可是作为一门编程语言,它需要掌握的技能和注意点还是有很多的,今天抛开这些不谈,就说说大家常踩的一些坑吧,看看你中招没?希望这篇小短文助你“避”坑成功!  一.拼写出错误  为啥这个错误是测试猿最常犯的,因为众所周知很多中国的娃都怕英文,而Python代码里还是有些个基础单词的,很多同学有时候记不全或者不熟都可能导致拼写错误,而且即使英语过关的人有时候打字打太快也可能出错。如:  二.缩进错误  python是一门强制缩进的语言,也就是说,代码的结构和逻辑是由缩进来决定的。如果缩进不正确,就会导致语法错误或者逻辑错误。例如:  三.类型出问题  类...
            0 0 355
            分享
          • Postman可用来实现简单的接口自动化测试,也可对接口进行压力测试一:相关知识回顾1、测试沙箱与测试断言实战测试沙箱常用功能:postman测试沙箱其实是结合js脚本完成测试中都功能,在请求发起前后实现部分测试操作常用功能:请求前脚本(pre-request scripts)设置请求前置操作如设置变量等请求后对状态码,响应头,响应正文等信息进行断言操作使用console控制台进行调试:通过console查看接口请求返回信息,以及对脚本中使用的变量进行输出调试等操作2、测试集与数据驱动为了方便的管理接口请求的执行,可通过postman测试集(collection)来完成测试的操作,每一个测试请...
            11 11 1870
            分享
          • 相信大家对Kafka不会陌生,但首先还是要简单介绍一下。Kafka是一种高性能的分布式消息系统,由LinkedIn公司开发,用于处理海量的实时数据流。它采用了发布/订阅模式,可以将数据流分发到多个消费者端,同时提供了高可靠性、高吞吐量和低延迟的特性。Kafka的应用场景非常广泛,例如日志收集、事件流处理、实时监控等。在这些场景中,Kafka可以提供高可靠性和低延迟的数据传输,确保数据的稳定性和实时性。与此同时,Kafka还提供了丰富的API和管理工具,使得用户可以方便地配置和管理Kafka集群。很多高性能方案都会用到Kafka,今天我来分享如何使用Kafka Client API进行Kafka...
            0 0 991
            分享
          •   欧盟委员会今天宣布,将对苹果、Google和 Meta 如何遵守其新的《数字市场法》反垄断规则展开五项违规调查。欧盟反垄断主管玛格丽特-维斯塔格(Margrethe Vestager)在一份声明中说:"我们怀疑这三家公司提出的解决方案并不完全符合《数字市场法》。我们现在将调查这些公司是否合法,以确保欧洲数字市场的开放性和可竞争性"。"  特别是,委员会计划调查Google和苹果在其应用商店中的反转向规则,以及Google是否在其搜索引擎中自我引用了自己的服务。苹果公司的 iOS 浏览器选择屏幕以及 Meta 公司的广告定向"付费或同意模式"...
            0 0 702
            分享
          •   对每个职场人士来说,当工作步入正轨,开始稳定下来,那么关于未来的职业发展就是首要考虑的问题。测试人员也不例外,每天忙于业务测试,接触到的核心技术会比较少,如果不能提升自己的职业技能,拥有自己的核心竞争力,那么对于未来的发展会有很大的限制。  说的稍微严重一点,如果觉得测试只是枯燥的“用鼠标点点点”的工作,那么职业发展可能很快就会遇到瓶颈,甚至还有被行业淘汰的可能!  每个行业,每个岗位,都有自己的发展方向,测试工程师必有他的价值。有时候觉得看不到未来,也可能只是是自己站的不够高。想要未来大有可为,就需要不断的学习,提升自己的专业技能,让自己达到一定高度,毕竟站的更高,才能看的更远。对此,小...
            0 0 661
            分享
      • 51testing软件测试圈微信