canoe无法生成测试报告_Python测试框架Pytest的常用插件测试报告

本文介绍了如何使用Pytest的pytest-html插件和Allure框架生成测试报告。Pytest-html通过命令行或pytest.ini配置生成HTML报告,而Allure提供了更丰富的报告功能,包括环境配置、缺陷分类、测试套件、图形化结果和详细测试步骤。Allure还支持附加信息、动态描述、标题、链接、标记和优先级等功能,便于开发和测试团队获取详细测试信息。
摘要由CSDN通过智能技术生成

05358dd2dc0b975e841ead0903496ef5.gif

9b909cf33f9f374af0cb441933b25829.png 一、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 中。

9b909cf33f9f374af0cb441933b25829.png 二、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

3Allure 报告结构

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

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

546452d4a53e37b7de9576e0970096ea.png

3.9 Flaky

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

4Allure 支持的功能

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

4.1 测试步骤 @allure.step

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

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

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

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

 ·conftest.py

 ·test_demo.py

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

38cf177162539b5ffc30e87a5c747b41.png

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:包含文件路径的字符串

报告:

ed141476c426068d45c8d1f0a0debef0.png

4.3 描述 allure.description

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

·@allure.description(str)

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

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

报告:

c522f5158725df6a6e81ae847f0852cc.png

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

报告:

843cd33c709a0c59dcb11b0a9f53ddd1.png

4.4 标题 allure.title

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

报告:

9d24114c02bb130f9d9404a9e627ab93.png

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

(3)自定义标签

2375b96606412b9ffac8cf5412806562.gif

864ec8e62dda2663f6dd84e8649ca80c.png

链接:https://www.cnblogs.com/sharef/p/13575542.html

本文为51Testing经授权转载,转载文章所包含的文字来源于作者。如因内容或版权等问题,请联系51Testing进行删除

推荐阅读

点击阅读☞常用插件Pytest的测试用例相关问题总结

点击阅读☞这些反复强调的Pytest基础知识,足以证明它有多重要

点击阅读☞带你深入理解自动化测试框架Pytest的配置文件!

点击阅读☞深度解析 | Pytest+Allure+Jenkins 自动化测试报告

点击阅读☞盘点!细数Appium+Pytest是如何实现App并发测试的?

a81384e5327dcefe41bde22afafdb480.gif

403af389f8373815537dc784a50ebbe9.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值