资讯专栏INFORMATION COLUMN

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

89542767 / 483人阅读

    小编写这篇文章的主要目的,是给大家来做个介绍,介绍关于测试报告工具Allure用法的一些详解,主要是关于一些Pytest Allure类的用法,那么,具体的代码实例是什么呢?下面就给大家详细解答下。


  Allure除了具有Pytest基本状态外,其他几乎所有功能也都支持。


  1、严重性


  如果你想对测试用例进行严重等级划分,可以使用 allure.severity装饰器,它可以应用于函数,方法或整个类。


  它以allure.severity_level枚举值作为参数,分别为:BLOCKER(中断),CRITICAL(严重),NORMAL(常规),MINOR(轻微),TRIVIAL(不重要)。


  示例:


  #test_sample.py
  import allure
  #两数相加
  def add(x,y):
  return x+y
  #测试类
   allure.severity(allure.severity_level.TRIVIAL)
  class TestAdd:
   allure.severity(allure.severity_level.MINOR)
  def test_first(self):
  assert add(3,4)==7
   allure.severity(allure.severity_level.NORMAL)
  def test_second(self):
  assert add(-3,4)==1
   allure.severity(allure.severity_level.CRITICAL)
  def test_three(self):
  assert add(3,-4)==-1
   allure.severity(allure.severity_level.BLOCKER)
  def test_four(self):
  assert add(-3,-4)==-7


  运行:


  E:\workspace-py\Pytest>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-py\Pytest


  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....[100%]


  ===========================================================================4 passed in 0.06s===========================================================================


  报告:

01.png

  E:\workspace-py\Pytest>pytest test_sample.py--allure-severities normal,critical


  ==========================================================================test session starts==========================================================================


  platform win32--Python 3.7.3,pytest-6.0.2,py-1.9.0,pluggy-0.13.0


  rootdir:E:\workspace-py\Pytest


  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..[100%]


  ===========================================================================2 passed in 0.02s===========================================================================


  2、功能


  如果你想对测试功能、测试场景进行行为描述,可以分别使用装饰器: allure.feature和 allure.story。


  示例:


  #test_sample.py
  import allure
  #两数相加
  def add(x,y):
  return x+y
   allure.feature('测试类')
  class TestAdd:
   allure.story('01测试两个正数相加')
  def test_first(self):
  assert add(3,4)==7
   allure.story('02测试负数正数相加')
  def test_second(self):
  assert add(-3,4)==1
   allure.story('03测试正数负数相加')
  def test_three(self):
  assert add(3,-4)==-1
   allure.story('04测试两个负数相加')
  def test_four(self):
  assert add(-3,-4)==-7

  运行:


  E:\workspace-py\Pytest>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-py\Pytest


  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....[100%]


  ===========================================================================4 passed in 0.06s===========================================================================


  报告:

02.png

  你也可以通过--allure-features和--allure-stories选择指定具体功能和故事运行,多个以逗号分隔。


  E:\workspace-py\Pytest>pytest test_sample.py--allure-stories 01测试两个正数相加


  ==========================================================================test session starts==========================================================================


  platform win32--Python 3.7.3,pytest-6.0.2,py-1.9.0,pluggy-0.13.0


  rootdir:E:\workspace-py\Pytest


  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.[100%]


  ===========================================================================1 passed in 0.02s===========================================================================


  3、步骤


  如果你想对每个测试调用进行非常详细的逐步说明,可以通过 allure.step装饰器来实现(固件同样支持)。


  该装饰器会将方法或函数的调用与提供的参数一起添加到报表中,并且可以包含一条描述行,该行支持位置和关键字参数。


  示例:


  #test_sample.py
  import pytest
  import allure
   allure.step('两数相加:{0}+{y}')
  def add(x,y):
  r=x+y
  print_res(r)
  return r
   allure.step
  def print_res(r):
  print('计算结果:',r)
  class TestLearning:
  data=[
  [3,4,7],
  [-3,4,1],
  [3,-4,-1],
  [-3,-4,-7],
  ]
   pytest.mark.parametrize("data",data)
  def test_add(self,data):
  assert add(data[0],data[1])==data[2]


  报告:

03.png

  4、标题


  如果你想让测试标题更具可读性,可以使用 allure.title装饰器,该装饰器支持参数的占位符并支持动态替换。


  示例:


  #test_sample.py
  import pytest
  import allure
  def add(x,y):
  return x+y
  class TestLearning:
  data=[
  [3,4,7],
  [-3,4,1],
  [3,-4,-1],
  [-3,-4,-7],
  ]
   allure.title("测试用例-{data}")
   pytest.mark.parametrize("data",data)
  def test_add(self,data):
  assert add(data[0],data[1])==data[2]


  报告:

04.png

  5、描述


  如果你想添加测试的详细说明,可以通过添加测试方法描述信息,也可以使用装饰器 allure.description和 allure.description_html。


  示例:


  #test_sample.py
  import allure
  #被测功能
  def add(x,y):
  return x+y
  #测试类
  class TestLearning:
   allure.description('测试正数相加')
  def test_first(self):
  assert add(3,4)==7
   allure.description_html('<h1>测试负数相加</h1>')
  def test_second(self):
  """你也可以在这里添加用例的描述信息,但是会被allure装饰器覆盖"""
  assert add(-3,-4)==-7

  报告:

05.png

  6、附件


  如果你想在报告中显示不同类型的附件,可以通过以下两种方式来实现:


  allure.attach(body,name,attachment_type,extension)


  allure.attach.file(source,name,attachment_type,extension)


  示例:


  import allure
  def test_multiple_attachments():
  allure.attach.file(r'C:\Users\Public\Pictures\Sample Pictures\Koala.jpg',attachment_type=allure.attachment_type.JPG)
  allure.attach('<head></head><body>测试页面</body>','Attach with HTML type',allure.attachment_type.HTML)


  报告:

06.png

  7、链接


  如果你想关联缺陷追踪系统或测试管理系统,你可以使用装饰器 allure.link、 allure.issue、 allure.testcase。


  示例:


  import allure
   allure.link('http://www.baidu.com')
  def test_with_named_link():
  pass
   allure.issue('101','缺陷问题描述')
  def test_with_issue_link():
  pass
   allure.testcase('http://this.testcase.com','测试用例标题')
  def test_with_testcase_link():
  pass

  报告:

08.png

  注意:


   allure.issue将提供带有小错误图标的链接,该描述符将测试用例ID作为输入参数,以将其与提供的问题链接类型的链接模板一起使用。


  链接模板在--allure-link-patternPytest的配置选项中指定。链接模板和类型必须使用冒号指定:


  pytest test_sample.py--alluredir=report--allure-link-pattern=issue:http://www.mytesttracker.com/issue/{}


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


  综上所述,就为大家介绍到这里了,希望可以为各位读者带来帮助。

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

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

相关文章

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

      小编写这篇文章的一个主要目的,主要是给大家介绍Python Pytest工具的介绍,主要是用来做测试报告工具用的,涵盖的测试报告工具还是比较的多的,比如会使用到ALLure工具,具体怎么使用呢?下面就给大家详细介绍下。  简介  Allure Framework是一种灵活的、轻量级、多语言测试报告工具。  不仅可以以简洁的网络报告形式非常简洁地显示已测试的内容,  而且还允许参与开发过程的每个...

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

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

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

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

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

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

    番茄西红柿 评论0 收藏2637
  • 就因为Python自动化,那个天天摸鱼同事,他居然升职了!

    摘要:根据具体的自动化测试岗位来说的,不要觉得自动化测试是机构炒起来的,确实有它存在的必要。自动化测试是相对手工测试而存在的,主要是通过所开发的软件测试工具脚本等来实现,具有良好的可操作性可重复性和高效率等特点。 当代的打工人真的太苦了! 每个月拿着几千块的工资,却为公司拼命,为老板赚钱; 天天9...

    laznrbfe 评论0 收藏0

发表评论

0条评论

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