原标题:Python测试框架Pytest的常用插件测试报告

一、pytest-html 生成 html 测试报告

要求:Python 3.6+

安装:pip install pytest-html

文档:https://github.com/pytest-dev/pytest-html、https://www.cnblogs.com/linuxchao/p/linuxchao-pytest-report.html

使用方法:在命令行或 pytest.ini 配置文件 addopts 中添加选项 --html=测试报告路径

(1)命令行方式:pytest --html report/report.html --self-contained-html

(2)pytest.ini文件:addopts = pytest --html report/report.html --self-contained-html

注:默认情况下生成的 html 报告中 css 是分开的,分享报告时将无法正确展示样式,可以使用 --self-contained-html 将 css 合并到 html 中。

二、allure-pytest 生成 Allure 测试报告

Allure 框架是一个灵活的轻量级多语言测试报告工具,它不仅以 Web 的方式展示了简介的测试结果,而且允许参与开发过程的每个人从日常执行的测试中最大限度的提取有用信息。

从 dev/qa 的角度来看,Allure 报告简化了常见缺陷的统计:失败的测试可以分为 bug和被中断的测试,还可以配置日志、步骤、fixture、附件、计时、执行历史以及与TMS和BUG管理系统集成,所以,通过以上配置,所有负责的开发人员和测试人员可以尽可能的掌握测试信息。

从管理者的角度来看,Allure 提供了一个清晰的“大图”,其中包括已覆盖的特性、缺陷聚集的位置、执行时间轴的外观以及许多其他方便的事情。Allure 的模块化和可扩展性保证了您总是能够对某些东西进行微调,使 Allure 更适合您,那么今天我们就来说说如何使报告更加详细的显示我们需要的信息,以及 Allure 与 Jenkins 的集成。

要生成一份完整的 Allure 测试报告,需要先安装 Allure 命令行工具,然后找到数据生成测试报告。

1

安装

需安装 Allure 命令行工具以及 alluer-pytest 插件

安装 Allure:windows 下进入 https://bintray.com/qameta/maven/allure2 下载 Allure 的zip安装包解压,添加 allure(安装路径bin)到环境变量 path ;使用 allure --version 查看安装版本

源码:https://github.com/allure-framework/allure2

安装 alluer-pytest:pip install allure-pytest

文档:https://pypi.org/project/allure-pytest/

2

使用方法

2.1 Allure 常用命令

·查看帮助文档:allure help

·生成静态测试报告:allure generate -o ,未使用 -o 指定路径时,报告将生成到 allure-report 文件夹。-c 生成新的报告之前先清除旧的测试报告。

·打开测试报告:allure open

·生成临时报告并打开:allure serve

2.2 生成测试报告

(1)allure-pytest 插件收集测试结果数据:

在 pytest 命令行或 pytest.ini 配置文件 addopts 中添加选项 --alluredir=测试报告存储路径

(2)生成测试报告:

allure generate (执行该命令后将自动打开浏览器浏览测试报告)

(3)打开测试报告:

allure open allure-report

3

Allure 报告结构

3.1 Overview:总览

首页的部件和小窗口可以拖动和自定义。

Environment

可以通过创建 environment.properties 或者 environment.xml 文件来配置环境信息,并把文件存放到 allure-results(这个目录是生成最后的 html 报告之前,生成依赖文件的目录)目录下,也就是 --alluredir 后面跟的目录。

# environment.properties

Browser=Chrome

Browser.Version=80.0.3987.132

Stand=test

ApiUrl=127.0.0.1/login

python.Version=3.6.7

3.2 Categories 缺陷类别

默认是分了 failed 和 error,凡是执行结果是其中一个的都会被归到类里面,可以通过这里快捷查看哪些用例是 failed 和 error 的。

·Product defects 产品缺陷(测试结果:failed)

·Test defects 测试缺陷(测试结果:error/broken)

也可以自定义缺陷分类,在生成测试报告之前将 categories.json 文件添加到 allure-results 目录即可(和上面 environment.properties 放同一个目录)。

自定义缺陷参数说明:

·name:(必填)类别名称,可以为中文

·matchedStatuses:(可选)测试用例的运行状态。默认["failed", "broken", "passed", "skipped", "unknown"]

·messageRegex:(可选)测试用例运行的错误信息,默认是 .* ,可通过正则去匹配

·traceRegex:(可选)测试用例运行的错误堆栈信息,默认是 .* ,可通过正则去匹配

3.3 Suites

测试套件,就是所有用例的层级关系,可以根据 package、module、类、方法来查找用例。

3.4 Graphs

测试结果图形化,包括用例执行结果的分布图,优先级,耗时等。

3.5 Timeline

可以看到测试用例精确的测试时序(执行顺序),包括执行时间。

3.6 Behaviors

行为驱动,根据 epic、feature、story 来分组测试用例。

3.7 Packages

按照 package、module 来分组测试用例。

3.8 Test Case Page

在某些结果概述页面中,单击各个测试可以转到测试用例页面。该页面包含许多与测试用例相关的数据:测试期间执行的步骤,计时,附件,测试分类标签,描述和链接。

3.9 Flaky

对于不稳定的测试用例,可以使用 @Flaky 将测试用例标记为不稳定,在测试报告中将标记为 Flaky。

4

Allure 支持的功能

Allure 除了支持 Pytest 自带的特性之外,本身也有强大的特性可以使用。

4.1 测试步骤 @allure.step

Allure 允许对每个测试用例进行详细的步骤说明,在测试用例上添加 @allure.step 装饰器即可。该装饰器将带注释的方法或函数的调用与提供的参数一起添加到报表中。

带有注释的方法 @allure.step 可以存储在测试之外,并在需要时导入。

step 可以包含一条描述行,该行支持传递的位置和关键字参数的占位符。关键字参数的默认参数也将被捕获。

可以在 conftest.py 中定义 step,示例:

·conftest.py

·test_demo.py

conftest.py 中的 step 显示在单独的树中,如下:

4.2 附件 allure.attach

使用 allure.attach 可以给测试报告添加各种附件。

方法一:

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

方法二:

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

·body:文件原始内容

·name:带有文件名的字符串

·attachment_type:附件类型,可在 allure.attachment_type 中查看支持的附件类型

·extension:创建文件的扩展名

·source:包含文件路径的字符串

报告:

4.3 描述 allure.deion

若想要测试报告更加清晰,可以添加详细的测试用例描述,有三种方式:

·@allure.deion(str)

·在测试用例函数声明下方添加""" """

·@allure.deion_html(str):相当于传一个HTML代码组成的字符串,类似allure.attach中传HTML

报告:

也可以在测试函数中使用 allure.dynamic.deion 或 allure.dynamic.deion_html 动态更新描述信息。

报告:

4.4 标题 allure.title

可以使用@allure.title 装饰器使测试标题更具可读性。支持中文,支持参数的占位符并支持动态替换。

报告:

4.5 allure.link、alluer.issue、allure.testcase

为了将 Allure 报告和测试管理系统集成,可以使用 link、issue、testcase

·link(url, link_type, name=None):提供链接地址

·issue(url, name=None):提供带有小错误图标的链接

·testcase(url, name=None):

issue 和 tescase 其实也是调用的 link,只是 LinkType 不一样。

4.6 标记测试用例

@pytest.mark 标记并不会显示在 Allure 报告上,Allure 也提供了三种类型的标记装饰器,它们是可以显示在 Allure 报告上的。如果不加 @allure.feature、@allure.story 时,在测试报告的 Behaviors 栏,测试用例不会分类显示。

(1)BDD样式的标记装饰器:@allure.feature、@allure.story,其中 story 是 feature 的子集,测试报告上将优先显示 feature,展开再显示 story。

想要运行指定的 story 或者 feature 时,运行 pytest 时可以添加选项 --allure-stories、--allure-feature 来指定不同的用例集,用例集之间用逗号 , 分割。

pytest tests.py --allure-stories story_1,story_2 --allure-feature feature_2

(2)优先级(严重程度)标记装饰器:@allure.severity可以修饰函数、方法或整个类,以 allure.severity_level 枚举值作为参数,值包括:BLOCKER、CRITICAL、NORMAL、MINOR、TRIVIAL。

运行指定严重程度的用例,可以在运行 pytest 命令时添加选项--allure-severities

pytest tests.py --allure-severities normal,critical

责任编辑:

python测试用例管理_Python测试框架Pytest的常用插件测试报告相关推荐

  1. Python测试框架pytest(04)fixture - 测试用例调用fixture、fixture传递测试数据

    Python测试框架pytest系列可以查看下列 Python测试框架pytest(01)简介.安装.快速入门_编程简单学的博客-CSDN博客 Python测试框架pytest(02)PyCharm设 ...

  2. Python测试框架pytest(05)fixture - error和failed、fixture实例化、多个fixture

    Python测试框架pytest系列可以查看下列 Python测试框架pytest(01)简介.安装.快速入门_编程简单学的博客-CSDN博客 Python测试框架pytest(02)PyCharm设 ...

  3. Python测试框架pytest(03)setup和teardown

    Python测试框架pytest系列可以查看下列 Python测试框架pytest(01)简介.安装.快速入门_编程简单学的博客-CSDN博客 ​​​​​​Python测试框架pytest(02)Py ...

  4. 文献管理工具Zotero的使用及其常用插件推荐

    文献管理工具Zotero的使用及其常用插件推荐 链接汇总 Zotero的下载和安装 下载地址 安装 硬件要求建议 Zotero的使用 登录Zotero账号 Zotero 使用同步网盘同步附件的方案 Z ...

  5. pytest框架_Python最火的第三方开源测试框架——pytest

    一.介绍 本篇文章是介绍的是Python 世界中最火的第三方单元测试框架:pytest.它有如下主要特性: assert 断言失败时输出详细信息(再也不用去记忆 self.assert* 名称了) 自 ...

  6. python开源考试_可能是 Python 中最火的第三方开源测试框架 pytest

    作者:HelloGitHub-Prodesire 一.介绍 本篇文章是<聊聊 Python 的单元测试框架>的第三篇,前两篇分别介绍了标准库 unittest 和第三方单元测试框架 nos ...

  7. 可能是 Python 中最火的第三方开源测试框架 pytest

    作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Arti ...

  8. python制作考试系统_python测试框架数据生成工具最全资源汇总

    xUnit frameworks 单元测试框架 frameworks 框架 unittest - python自带的单元测试库,开箱即用 unittest2 - 加强版的单元测试框架,适用于Pytho ...

  9. python测试用例管理工具_三款开源测试管理工具推荐

    测试管理包括测试过程中的测试计划,测试执行以及执行结果的存储和分析. 具体来说就是和其它工具比如需求管理工具,功能测试工具比如Selenium和Cucumber,持续集成工具比如Jenkins和Tea ...

最新文章

  1. 揭秘互联网人群层级,你属于第几级?
  2. 算法----Excel 表中相对应的列名称
  3. python有什么功能-Python 3.9有什么新功能?
  4. android 手机号分段_android 手机号分段_android系统实现手机号添加分割符
  5. C++和C语言函数相互调用
  6. 网贷大数据什么时候会好_如果人类把地球钻穿了,会发生什么?大数据分析告诉你多可怕...
  7. 误差反向传播法(一)【计算图】
  8. 一切想要发财的人,你都要善于看到隐形的东西
  9. linq to json
  10. 三星电脑计算机主板图,三星S10E+拆解图文教程
  11. STM8L RTC总结初始化和配置
  12. iterator的用法
  13. 5G SA的网络架构和关键技术
  14. aptx与ldac音质区别_ldac_aptx和aptx hd功能介绍及区别介绍
  15. 2014.7.14 有用的网址
  16. 三星正在完成android更新,三星发布Android 10更新计划表!又三款机型被选中,有你的吗?...
  17. 教授专栏01 | 汪扬:元宇宙助香港,新经济创未来
  18. 计算机网络通信中的交换方式有哪几种,数据通信方式有哪几种
  19. 用verilog HDL实现数字基带信号的2FSK调制
  20. 基于汽车CAN总线专有协议OBD接口的调试方法及经验

热门文章

  1. first() mysql_EF6配合MySQL或MSSQL(CodeFirst模式)配置指引
  2. JAVA中浅复制与深复制
  3. 计算机互联网行业高校,9家互联网巨头最青睐的重点大学汇总,网友:比各种排名强太多了...
  4. python 程序停止打印日志_优雅停止 SpringBoot 服务,拒绝 kill -9 暴力停止!
  5. mysql 授权truncate_有没有办法在MySQL中的TRUNCATE或DROP TABLE上有效地进行GRANT?
  6. 新建android项目导包,Cordova开发App入门(一)创建android项目
  7. python每天八分钟教程_每天八分钟Python基础教程——对象持久化、序列化
  8. 张陈斌计算机控制工程,计算机控制讲稿--4.pdf
  9. 聪明的木匠(优先队列,思维)
  10. 计算机网络部分(共44题),计算机网络原理2013年4月真题及答案