参考资料:
https://yq.aliyun.com/ziliao/253128
https://www.cnblogs.com/xiaoxi-3-/p/9492534.html

Allure Test Report
一款测试报告框架,不仅报告美观,而且方便CI集成。

一、环境配置

安装Python依赖库:
pip3 install pytest
pip3 install pytest-allure-adaptor

安装 Command Tool:
brew tap qatools/formulas
brew install allure-commandline

官方参考文档:https://pypi.org/project/pytest-allure-adaptor/

二、生成html报告命令
1、pytest命令基础上加–alluredir,生成xml报告。

pytest -s -q --alluredir [xml_report_path]
//[xml_report_path]根据自己需要定义文件夹,作者定义为:/report/xml

用例执行完成之后会在[xml_report_path]目录下生成了一堆xml的report文件,当然这不是我们最终想要的美观报告。

2、需要使用 Command Tool 来生成我们需要的美观报告。

allure generate [xml_report_path] -o [html_report_path]
//[html_report_path]根据自己需要定义文件夹,作者定义为:/report/html

打开 index.html,之前写的 case 报告就会呈现在你面前,如下:

注:直接用chrome浏览器打开报告,报告可能会是空白页面。
解决办法:
1、在pycharm中右击index.html选择打开方式Open in Browser就可以了。
2、使用Firefox直接打开index.html。

三、定制报告

Feature: 标注主要功能模块
Story: 标注Features功能模块下的分支功能
Severity: 标注测试用例的重要级别
Step: 标注测试用例的重要步骤
Issue和TestCase: 标注Issue、Case,可加入URL

1、Features定制详解

# -*- coding: utf-8 -*-
# @Time    : 2018/8/17 上午10:10
# @Author  : WangJuan
# @File    : test_case.py
import allure
import pytest@allure.feature('test_module_01')
def test_case_01():"""用例描述:Test case 01"""assert 0@allure.feature('test_module_02')
def test_case_02():"""用例描述:Test case 02"""assert 0 == 0if __name__ == '__main__':pytest.main(['-s', '-q', '--alluredir', './report/xml'])

添加feature,Report展示见下图:

2、Story定制详解

# -*- coding: utf-8 -*-
# @Time    : 2018/8/17 上午10:10
# @Author  : WangJuan
# @File    : test_case.py
import allure
import pytest@allure.feature('test_module_01')
@allure.story('test_story_01')
def test_case_01():"""用例描述:Test case 01"""assert 0@allure.feature('test_module_01')
@allure.story('test_story_02')
def test_case_02():"""用例描述:Test case 02"""assert 0 == 0if __name__ == '__main__':pytest.main(['-s', '-q', '--alluredir', './report/xml'])

添加story,Report展示见下图:

3、用例标题和用例描述定制详解

# -*- coding: utf-8 -*-
# @Time    : 2018/8/17 上午10:10
# @Author  : WangJuan
# @File    : test_case.py
import allure
import pytest@allure.feature('test_module_01')
@allure.story('test_story_01')
#test_case_01为用例title
def test_case_01():"""用例描述:这是用例描述,Test case 01,描述本人"""#注释为用例描述assert 0if __name__ == '__main__':pytest.main(['-s', '-q', '--alluredir', './report/xml'])

添加用例标题和用例描述,Report展示见下图:

4 、Severity定制详解

Allure中对严重级别的定义:
1、 Blocker级别:中断缺陷(客户端程序无响应,无法执行下一步操作)
2、 Critical级别:临界缺陷( 功能点缺失)
3、 Normal级别:普通缺陷(数值计算错误)
4、 Minor级别:次要缺陷(界面错误与UI需求不符)
5、 Trivial级别:轻微缺陷(必输项无提示,或者提示不规范)

# -*- coding: utf-8 -*-
# @Time    : 2018/8/17 上午10:10
# @Author  : WangJuan
# @File    : test_case.py
import allure
import pytest@allure.feature('test_module_01')
@allure.story('test_story_01')
@allure.severity('blocker')
def test_case_01():"""用例描述:Test case 01"""assert 0@allure.feature('test_module_01')
@allure.story('test_story_01')
@allure.severity('critical')
def test_case_02():"""用例描述:Test case 02"""assert 0 == 0@allure.feature('test_module_01')
@allure.story('test_story_02')
@allure.severity('normal')
def test_case_03():"""用例描述:Test case 03"""assert 0@allure.feature('test_module_01')
@allure.story('test_story_02')
@allure.severity('minor')
def test_case_04():"""用例描述:Test case 04"""assert 0 == 0if __name__ == '__main__':pytest.main(['-s', '-q', '--alluredir', './report/xml'])

添加Severity,Report展示见下图:

5、Step定制详解

# -*- coding: utf-8 -*-
# @Time    : 2018/8/17 上午10:10
# @Author  : WangJuan
# @File    : test_case.py
import allure
import pytest@allure.step("字符串相加:{0},{1}")
# 测试步骤,可通过format机制自动获取函数参数
def str_add(str1, str2):if not isinstance(str1, str):return "%s is not a string" % str1if not isinstance(str2, str):return "%s is not a string" % str2return str1 + str2@allure.feature('test_module_01')
@allure.story('test_story_01')
@allure.severity('blocker')
def test_case():str1 = 'hello'str2 = 'world'assert str_add(str1, str2) == 'helloworld'if __name__ == '__main__':pytest.main(['-s', '-q', '--alluredir', './report/xml'])

添加Step,Report展示见下图:

6、Issue和TestCase定制详解

# -*- coding: utf-8 -*-
# @Time    : 2018/8/17 上午10:10
# @Author  : WangJuan
# @File    : test_case.py
import allure
import pytest@allure.step("字符串相加:{0},{1}")     # 测试步骤,可通过format机制自动获取函数参数
def str_add(str1, str2):print('hello')if not isinstance(str1, str):return "%s is not a string" % str1if not isinstance(str2, str):return "%s is not a string" % str2return str1 + str2@allure.feature('test_module_01')
@allure.story('test_story_01')
@allure.severity('blocker')
@allure.issue("http://www.baidu.com")
@allure.testcase("http://www.testlink.com")
def test_case():str1 = 'hello'str2 = 'world'assert str_add(str1, str2) == 'helloworld'if __name__ == '__main__':pytest.main(['-s', '-q', '--alluredir', './report/xml'])

添加Issue和TestCase,Report展示见下图:

8、attach定制详解

 file = open('../test.png', 'rb').read()allure.attach('test_img', file, allure.attach_type.PNG)

在报告中增加附件:allure.attach(’arg1’,’arg2’,’arg3’):
arg1:是在报告中显示的附件名称
arg2:表示添加附件的内容
arg3:表示添加的类型(支持:HTML,JPG,PNG,JSON,OTHER,TEXTXML)

添加attach参数,Report展示见下图:

Python—Pytest+Allure定制报告相关推荐

  1. python pytest和allure环境_【转载】Python—Pytest+Allure定制报告

    Allure Test Report 一款测试报告框架,不仅报告美观,而且方便CI集成. 一.环境配置 安装Python依赖库: pip3 install pytest pip3 install py ...

  2. python allure报告_Pytest+Allure 定制报告

    前言: 最近在研究接口自动化的框架,好的测试报告在整个测试框架起到至关重要的部分.终于被我发现一个超好用的报告框架,不仅报告美观,而且方便 CI 集成. 就是它,就是它:Allure Test Rep ...

  3. Yaml版接口自动化详细讲解(Python + pytest + allure + log + yaml + mysql + redis + 钉钉通知 + Jenkins)

    目录 框架介绍 框架结构 框架功能讲解 common  # 配置 config.yaml  # 公共配置 setting.py  # 环境路径存放区域 data  # 测试用例数据 Files  #  ...

  4. 接口自动化-第一篇(Python+pytest+allure)

    想写很久,一直懒得动笔,且边学边写吧... 目录 1.了解pytest框架 2.安装pytest,以及相关插件 2.1安装pytest 2.2安装插件 1.使用虚拟环境(也是针对此项目,局部安装)安装 ...

  5. 接口自动化框架python+pytest+Allure 思路总结

    前言: 好久没有更新博客了,新的一年该对过去一年的学习经验做一个总结了~ 之前一直用unittest库做接口自动化测试框架,最近发现pytest库太好用了,而且参数化起来很方便,因为是自己加上通过网络 ...

  6. python pytest allure_python测试框架pytest和测试报告allure的联合使用-----测试套件

    最近采用jenkins+python+pytest+allure写了一些自动化测试用例.碰到这样一种场景:如果我创建了2个测试任务,测试任务1包含2个测试用例test_a.py和test_b.py,测 ...

  7. 生成报告配置xml_升职加薪利器:Python+Pytest框架在Jenkins上生成Allure测试报告

    在自动化测试执行之后,生成一个美观大方的测试报告,也是测试过程中,非常最要的一环.测试报告直接反应了测试过程中发现的问题,分析测试报告是解决问题的最重要手段.那么一个专业的测试报告应该长什么样呢?废话 ...

  8. 2022超级好用的接口自动化测试框架:基于python+requests+pytest+allure实现

    众所周知,目前市面上大部分的企业实施接口自动化最常用的有两种方式: 1.基于工具类的接口自动化,如: Postman+Newman+Jenkins+Git/svn Jmeter+Ant+Jenkins ...

  9. 接口自动化测试框架搭建:基于python+requests+pytest+allure实现

    目录 一.接口自动化测试框架需要具备什么功能? 二.接口自动化测试框架目录结构 三.日志监控文件的信息 四.搭建具有企业Logo的定制化报告. 众所周知,目前市面上大部分的企业实施接口自动化最常用的有 ...

  10. 接口自动化测试框架:python+requests+pytest+allure实现

    接口自动化测试框架 一.接口自动化测试框架需要解决的问题 二.接口自动化测试框架目录结构 三.日志监控文件的信息 四.搭建具有企业Logo的定制化报告.    今年是以往10年中最坏的一年,是未来10 ...

最新文章

  1. springboot在工具类中添加service的方法,显示为空的解决方案
  2. 客户关系管理SAP整体解决方案
  3. Flink On Yarn模式,为什么使用Flink On Yarn?Session模式、Per-Job模式、关闭yarn的内存检查,由Yarn模式切换回standalone模式时需要注意的点
  4. 清除ubuntu下缓存、软件安装包和多余内核
  5. KlayGE 3.10.0发布!
  6. 酷炫的可视化数据地图都是咋做的?10分钟学会
  7. 树莓派超声波 c语言,树莓派超声波测距+蜂鸣器(c语言)
  8. 重要发布全总结丨一文看懂阿里云弹性计算年度峰会
  9. java instrument_JAVA Instrument技术实战以及在QTrace中的应用
  10. google map 地图图标大全
  11. 关于开机USB电涌15秒关机的另类解决方法
  12. python中numpy.random.gamma()函数
  13. 【小5聊】纯javascript实现图片放大镜效果
  14. Vant组件NavBar导航栏使用时去除下方白线问题
  15. android service拦截按键,android里面屏蔽home键/禁止Home键或者随你DIY
  16. window安装Linux
  17. 【扫盲系列】分布式+Zookeeper+Docker+K8S
  18. linux 配置 MP3 RMVB 解码器_Andy_Issta_新浪博客
  19. 中国碳化硅(SiC)行业“十四五”规划和远景目标建议报告2022-2028年
  20. WordPress需要多大mysql_wordpress需要多大空间

热门文章

  1. 陶哲轩实分析 5.2 节习题试解
  2. matlab去eog,使用ICA去除32通道脑电数据中的眼电
  3. Evasion 使用及实际免杀测试
  4. Java基础梳理第二天03(继承、抽象类、多态)
  5. BTA16可控硅固态继电器电路开发的有关问题
  6. 理论+实验:LAMP网站服务器部署(超详细版本)
  7. drupal 7 ajax,【漏洞分析】CVE-2018-7600 Drupal 7.x 版本代码执行
  8. python列表的事例_python列表使用实例
  9. 你需要TrustedInstaller提供的权限才能对此文件进行更改
  10. 2021 Domain Adaptation(李宏毅