资讯专栏INFORMATION COLUMN

Pytest测试报告工具Allure用法介绍

89542767 / 643人阅读

  小编写这篇文章的一个主要目的,主要是给大家介绍Python Pytest工具的介绍,主要是用来做测试报告工具用的,涵盖的测试报告工具还是比较的多的,比如会使用到ALLure工具,具体怎么使用呢?下面就给大家详细介绍下。


  简介


  Allure Framework是一种灵活的、轻量级、多语言测试报告工具。


  不仅可以以简洁的网络报告形式非常简洁地显示已测试的内容,


  而且还允许参与开发过程的每个人从日常执行中提取最大程度的有用信息和测试。

01.png

  从开发/测试的角度来看:


  Allure报告可以快速查看到缺陷点,可以将测试未通过划分为Bug和中断的测试。


  还可以配置日志,步骤,固件,附件,时间,历史记录,以及与TMS的集成和Bug跟踪系统,以便掌握所有信息。


  从管理者的角度来看:


  Allure提供了一个清晰的全局,涵盖了所涵盖的功能,缺陷聚集的位置,执行时间表,以及许多其他方便的事情。


  独特的模块化和可扩展性,确保你能够进行适当的微调,以使更适合你自己。


  官方文档:https://docs.qameta.io/allure/


  部署使用


  Pytest作为一个高扩展性、功能强大的自动化测试框架,自身的测试结果是较为简单的,如果想要一份完整测试报告需要其他插件的支持。


  如果你对测试报告要求没那么高,你可以使用pytest-html插件,基本覆盖了测试报告的常规内容。


  但是如果你想查看清晰的测试过程、多维度的测试报告、自定义一些输出,以及与用例和缺陷系统集成等,那allure-python将是你的"不二人选"。


  注意:allure-pytest从1.7之后已弃用,从2.0版本开始迁移至allure-python项目(即使用allure2),另外要运行allure命令行也需要Java的支持。


  1、安装:


  1)allure-pytest插件:

  pip install-U allure-pytest


  这将安装allure-pytest和allure-python-commons程序包,以生成与allure2兼容的报告数据。


  2)allure工具:


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


  我的下载链接:http://xiazai.jb51.net/202207/yuanma/allure-commandline-2.13.5_jb51.rar


  解压软件包(建议直接放到Python文件夹下),然后添加bin目录到环境变量中,最后使用allure--version验证是否安装成功。

02.png

  2、基本使用


  >>>要使allure侦听器能够在测试执行过程中收集结果,只需添加--alluredir选项并提供路径即可存储结果。

  pytest--alluredir=<directory-with-results>


  >>>要在测试完成后查看实际报告,你需要使用allure命令行应用程序从结果生成报告。


  1)在默认浏览器中显示生成的报告

  allure serve<my-allure-results>


  2)要从现有的Allure结果生成报告,可以使用以下命令:

  allure generate<directory-with-results>


  默认报告将生成到allure-report文件夹,你可以使用-o标志更改目标文件夹:

  allure generate<directory-with-results>-o<directory-with-report>


  3)生成报告后,可以在默认系统浏览器中将其打开,只需运行:


  allure open<directory-with-report>


  你也可以找到该目录,使用浏览器打开该目录下index.html。注意:有时打开会找不到数据或者乱码,如果你使用的是pycharm,请在pycharm中右击打开。

03.png

  4)如果要删除生成的报告数据,只需运行:

  allure report clean


  默认情况下,报告命令将在allure-results文件夹中查找报告,如果要从其他位置使用报告,则可以使用-o选项。


  5)你也可以使用allure help命令查看更多帮助。

04.png

  测试报告


  你可以在allure报告中看到所有默认的pytest状态:只有由于一个断言错误而未成功进行的测试将被标记为失败,其他任何异常都将导致测试的状态为坏。


  示例:


  #test_sample.py
  import pytest
  #被测功能
  def add(x,y):
  return x+y
  #测试类
  class TestAdd:
  #跳过用例
  def test_first(self):
  pytest.skip('跳过')
  assert add(3,4)==7
  #异常用例
  def test_second(self):
  assert add(-3,4)==1
  raise Exception('异常')
  #成功用例
  def test_three(self):
  assert add(3,-4)==-1
  #失败用例
  def test_four(self):
  assert add(-3,-4)==7
  #conftest.py
  import pytest
  pytest.fixture(scope='session',autouse=True)
  def db():
  print('start')
  yield
  print('closed')


  运行:


  E:workspace-pyPytest>pytest test_sample.py--alluredir=report--clean-alluredir
  ==========================================================================test session starts==========================================================================
  platform win32--Python 3.7.3,pytest-6.0.2,py-1.9.0,pluggy-0.13.0
  rootdir:E:workspace-pyPytest
  plugins:allure-pytest-2.8.18,assume-2.3.3,cov-2.10.1,html-3.0.0,rerunfailures-9.1.1,xdist-2.1.0
  collected 4 items
  test_sample.py sF.F[100%]
  ===============================================================================FAILURES================================================================================
  __________________________________________________________________________ TestAdd.test_second __________________________________________________________________________
  self=<test_sample.TestAdd object at 0x000000000464F278>
  def test_second(self):
  assert add(-3,4)==1
  >raise Exception('异常')
  E Exception:异常
  test_sample.py:21:Exception
  ___________________________________________________________________________ TestAdd.test_four ___________________________________________________________________________
  self=<test_sample.TestAdd object at 0x000000000464FD30>
  def test_four(self):
  >assert add(-3,-4)==7
  E assert-7==7
  E+where-7=add(-3,-4)
  test_sample.py:29:AssertionError
  ========================================================================short test summary info========================================================================
  FAILED test_sample.py::TestAdd::test_second-Exception:异常
  FAILED test_sample.py::TestAdd::test_four-assert-7==7
  ================================================================2 failed,1 passed,1 skipped in 0.14s=================================================================


  生成报告:


  E:workspace-pyPytest>allure generate--clean report
  Report successfully generated to allure-report


  查看目录:


  E:workspace-pyPytest>tree
  文件夹PATH列表
  卷序列号为B2C1-63D6
  E:.
  ├─.idea
  ├─.pytest_cache
  │└─v
  │└─cache
  ├─allure-report
  │├─data
  ││├─attachments
  ││└─test-cases
  │├─export
  │├─history
  │├─plugins
  ││├─behaviors
  ││├─jira
  ││├─junit
  ││├─packages
  ││├─screen-diff
  ││├─trx
  ││├─xctest
  ││├─xray
  ││└─xunit-xml
  │└─widgets
  ├─report
  └─__pycache__

  查看报告:

05.png

  Overview:总览,显示用例执行情况、严重程度分布、环境信息等。


  Categories:分类,按用例执行结果分类,异常错误和失败错误。


  Suites:套件,按测试用例套件分类,目录->测试文件->测试类->测试方法。


  Graphs:图表,显示用例执行分布情况,状态、严重程度、持续时间、持续时间趋势、重试趋势、类别趋势、整体趋势。


  Timeline:时间线,显示用例耗时情况,具体到各个时间点用例执行情况


  Behaviors:行为,按用例行为举止分类(以标记文字形式显示,需要用例添加allure相关装饰器)


  Package:配套,按目录形式分类,显示不同的目录用例执行情况。


  用例详情:

06.png

  Allure报告不仅能显示pytest不同执行结果状态,错误情况,固件等,还能捕获参数化测试所有参数名称和值。


  用例:


  #test_sample.py
  import pytest
  import allure
  #被测功能
  def add(x,y):
  return x+y
  #测试类
  allure.feature("测试练习")
  class TestLearning:
  data=[
  [3,4,7],
  [-3,4,1],
  [3,-4,-1],
  [-3,-4,7],
  ]
  allure.story("测试用例")
  allure.severity(allure.severity_level.NORMAL)
  pytest.mark.parametrize("data",data)
  def test_add(self,data):
  assert add(data[0],data[1])==data[2]

  报告:

07.png

  综上所述,这篇文章就给大家介绍到这里了,希望可以给大家带来帮助。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/128421.html

相关文章

  • Pytest测试报告工具Allure的高级用法

     小编写这篇文章的主要目的,是给大家来做个介绍,介绍关于测试报告工具Allure用法的一些详解,主要是关于一些Pytest Allure类的用法,那么,具体的代码实例是什么呢?下面就给大家详细解答下。  Allure除了具有Pytest基本状态外,其他几乎所有功能也都支持。  1、严重性  如果你想对测试用例进行严重等级划分,可以使用 allure.severity装饰器,它可以应用于函数,方法或...

    89542767 评论0 收藏0
  • 做完自动化测试,但别让不会汇报毁了你...

    摘要:前端自动化测试百度搜索功能实战可以与结合生成测试报告。以网页版本的百度为例,百度首页呈现的功能新闻网页贴吧知道音乐图片视频地图等,我们以百度网页的搜索功能为例,使用结合自动化测试框架,完成一个搜索功能的测试。 ...

    HelKyle 评论0 收藏0
  • Python接口测试之requests

    摘要:简介是一个很实用的客户端库编写爬虫和测试服务器响应数据时经常会用到是语言的第三方的库专门用于发送请求前提要下载请求无参数请求有参数请求案例传参的第一种方式传参的第二种方式请求类似中的表单提交 ...

    番茄西红柿 评论0 收藏2637
  • Pytest+Allure使用问题记录

    摘要:问题大部分问题是因为安装了导致的比如此时需要先卸载然后再安装包已经安装过的不用重复安装。版本问题类似于这种一般是因为版本太高导致建议卸载现有版本并安装较低版本的。后续重装低版本出现如下报错重装最新版本并重装包 ...

    番茄西红柿 评论0 收藏2637
  • python单元测试卷架构pytest详细介绍

      此篇文章详细介绍了python的单元测试卷架构pytest,原文中根据实例编码推荐的十分详尽。对大家学习培训和工作具有很强的参照参考意义,需要的小伙伴可以必须  pytest是python语言表达中一个强悍的单元测试卷架构,用于管理方法和管理功能测试,可运用在单元测试卷、功能测试工作上。  unittest也是python语言表达中一个单元测试卷架构,可是作用比较有限,没有pytest灵便。 ...

    89542767 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<