allure简介

news/2024/11/22 18:16:11/

allure介绍

allure是一个轻量级,灵活的,支持多语言的测试报告工具

多平台的,奢华的report框架

可以为dev/qa提供详尽的测试报告、测试步骤、log

也可以为管理层提供high level统计报告

java语言开发的,支持pytest,javaScript,PHP等

可以集成到jenkins

Allure 报告生成的原理

Allure 报告是基于标准的 xUnit 结果输出,再添加补充数据而生成的,其报告的生成基于如下两个步骤。

1、在测试执行期间,一个名为 Adapter 的小型 library 被连接到测试框架中,并将所有测试执行的信息保存到 XML 文件中。对于大多数编程语言下的流行测试框架(例如 python 语言中的 pytest,Java 中的 jUnit 等),Allure 都默认为其提供了 Adapter。

2、获取 XML 文件后,Allure 会将这些 XML 文件转换为 HTML 报告。这一步骤可以通过持续集成系统的 Allure 插件,或者命令行命令实现。

环境安装

前提:安装java环境(建议安装JDK1.8版本,此处不展开说明)

安装allure

下载地址

https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/

下载完成后,解压zip包放到电脑非中文目录下,然后将文件夹中的bin目录配置到环境变量path中

验证:

配置完成后,重新打开dos窗口

执行命令allure --version,查看版本信息

常用参数

一、查看allure 命令的帮助文档

allure -h

allure 命令的语法格式

allure [options] [command] [command options]

options 列表

options: --help 命令行帮助文档 -q, --quiet 切换至安静模式 Default: false -v, --verbose 切换至冗长模式 Default: false --version 版本信息 Default: false

command 列表

generate serve open plugin

二、generate 命令行参数

作用

生成 allure 的html 报告

语法格式

generate [options] allure结果目录

【注】:allure 结果目录就是运行 pytest 命令时--alluredir 跟的那个目录: pytest -sq --alluredir= ./allure

命令选项

选项 描述

-c , --clean 删除allure报告生成的目录,就是-○跟的目录

--config allure命令行配置路径,如果指定会覆盖--profile和--configDirectory

--configDirectory allure命令行配置目录

--profile allure命令行配置文件

-o, --report-dir,--output 生成allure报告的目录

默认:执行命令当前目录下的 allure-report

没有目录则自动生成

最常用的就是 -o 与 -c 两个命令行参数。

三、open 命令行参数:结合generate 命令行参数一起使用

作用

打开已经生成的 allure 测试报告,就是打开 generate 命令生成的报告。

语法格式

open [options] allure报告目录

【注】:allure 报告目录就是运行 allure generate 命令时-o 跟的那个目录: allure generate -o ./allure-report

命令选项

选项 描述

-h,--host 该host将用于启动报告的Web服务器

-p,--port 该port将用于启动报告的Web服务器

四、serve 命令行参数

作用

启动 allure 服务,打开 allure 报告。【区分与open命令行参数的区别】

语法格式

serve [options] allure结果目录

【注】:allure 结果目录就是运行 pytest 命令,--alluredir 跟的那个目录: pytest -sq --alluredir= ./allure

命令选项

选项 描述

--config allure命令行配置路径,如果指定会覆盖--profile和--configDirectory

--configDirectory allure命令行配置目录

--profile allure命令行配詈文件

-h , --host 该host将用于启动报告的Web服务器

-p , --port 该port将用于启动报告的Web服务器

allure的执行

在测试执行期间收集结果

pytest [测试文件] -s -q --alluredir=./result/ (--alluredir这个选项,用于指定存储测试结果的路径)

python项目下 安装allure

result下生成中间结果

查看测试报告:

方式一:

测试完成后,查看实际报告,在线看报告,会直接打开默认浏览器展示当前报告

allure serve ./result/ (注意这里的serve书写)

使用管理员方式运行即可解决

方式二:

从结果生成报告,这是一个启动tomcat的服务。需要两个步骤,生成报告,打开报告

生成报告:

allure generate ./result/ -o ./report --clean (注意:覆盖路径加--clean)

两种方式的区别:

①第一种方式是将allure测试报告的原始数据(xml/json/text/attach等文件)直接在浏览器打开allure测试报告;而不在本地生成任何文件。

②第二种方式是首先在本地生成allure测试报告。然后在使用命令在浏览器打开allure测试报告。【此时allure测试报告原始数据仍然存在,而且会生成一个生成后的allure测试报告目录】

第二种方式支持直接在pycharm中选择浏览器打开 index.html 同样可以看到allure测试报告。【第一种方式不生成 index.html ,只能通过 allure server 打开测试报告】;但是如果在使用generate的方式生成allure测试报告之后,需要将此报告展示给其他人观看,同样需要 allure open ./allure-report 开启一个web服务供其他主机查看。

打开报告:

allure open -h 127.0.0.1 -p 8883 ./report/

allure合并测试报告

方式一

allure serve ./result1 ./result2 ./result3

方式二

allure generate -c -o ./report ./result1 ./result2 ./result3

allure open ./report

allure pytest报告中添加用例描述

使用方法

参数值

参数说明

@allure.epic()

epic描述

定义项目、当存在多个项目时使用

@allure.feature()

模块名称

用例按照模块区分,存在多个模块时使用

@allure.story()

用例名称

用例的描述

@allure.title()

用例标题

用例标题

@allure.testcase()

用例相关链接

自动化用例对应的功能用例存放系统的地址

@allure.issue()

缺陷地址

对应缺陷管理系统里面的缺陷地址

@allure.description()

用例描述

对测试用例的详细描述

@allure.step()

操作步骤

测试用例的操作步骤

with allure.step()

@allure.severity()

用例等级

blocker(阻塞)、critical(严重)、normal(一般)、minor(次要)、trivial(轻微)

@allure.link()

定义连接

用于定义一个需要在测试报告中展示的连接

@allure.attachment()

附件

添加测试报告附件

演示实例

import allure
import pytest@allure.feature("演示实例")
class Testdome:a = ["1", "2", "3"]# 参数化,ids表示起别名@allure.story("测试演示1")@pytest.mark.parametrize("sum", a, ids=["test1", "test2", "test3"])def test_demo(self, sum):with allure.step("步骤1"):print(sum)with allure.step("步骤2"):print("测试步骤展示")@allure.severity(allure.severity_level.BLOCKER)@allure.story("测试演示2")@allure.title("测试标题显示")#@allure.link('https://www.baidu.com', name="百度地址")@allure.issue('https://workbench.ctbiyi.com/tw/project', "缺陷地址")@pytest.mark.demo1def test_demo1(self):pass

测试报告中添加附件

方式一

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

参数解释:

  • body :要写入附件的内容;

  • name :附件名字;

  • attachment_type :附件类型,是 allure.attachment_type 其中的一种;

  • extension :附件的扩展名;

实例演示

@allure.severity(allure.severity_level.CRITICAL)
@allure.issue('https://workbench.ctbiyi.com/tw/project', "缺陷地址")
@pytest.mark.demo2
def test_demo2(self):with allure.step("测试步骤1"):allure.attach("这是一段文本测试信息", name="文本展示")print("测试添加附件")with allure.step("测试步骤2"):allure.attach('<img id="s_lg_img" class="s_lg_img_gold_show" src="//www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png" width="270" height="129" onerror="this.src="https://dss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/bd_logo1-66368c33f8.png";this.onerror=null;" usemap="#mp">',name="html展示",attachment_type=allure.attachment_type.HTML)pass

方式二

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

参数解释:

  • source :文件路径,相当于传一个文件;

  • name :附件名字;

  • attachment_type :附件类型,是 allure.attachment_type 其中的一种;

  • extension :附件的扩展名;

@allure.severity(allure.severity_level.CRITICAL)
@allure.issue('https://workbench.ctbiyi.com/tw/project', "缺陷地址")
@pytest.mark.demo2
def test_demo2(self):with allure.step("测试步骤1"):allure.attach.file('C:/Users/韩寿帅/Desktop/测试截图.jpg', name="截图展示",attachment_type=allure.attachment_type.JPG,extension=".jpg")print("测试添加附件")pass


http://www.ppmy.cn/news/529342.html

相关文章

布隆过滤器说明

本文参考&#xff1a;布隆过滤器详解__瞳孔的博客-CSDN博客_布隆过滤器 布隆过滤器以及python实现_追光的鲲的博客-CSDN博客_python布隆过滤器 目录 一、概述 二、布隆过滤器原理 2.1 原理 2.2 误判率 2.3 特性 2.4 添加元素步骤 2.5 查询元素步骤 2.6 布隆过滤器的使…

瑞尔齿科×UB Store | RPA破解医疗业务痛点

如今&#xff0c;医疗行业正经历剧变&#xff0c;无论是政策环境还是病患需求&#xff0c;都在快速变化。随着智能自动化技术的深入发展&#xff0c;医疗行业也掀起了应用RPA技术的热潮。 瑞尔齿科 瑞尔齿科&#xff0c;中国高端齿科服务行业领先品牌&#xff0c;成立于1999年&…

瑞尔集团再度冲刺港股:半年亏4.6亿 淡马锡与高瓴是股东

雷递网 雷建平 7月5日报道 口腔诊所——瑞尔集团有限公司日前再次向港交所递交招股书&#xff0c;准备在香港上市。 半年期内亏损4.64亿 瑞尔集团是一家提供高端口腔医疗服务的企业。自1999年成立以来&#xff0c;在过往十年当中&#xff0c;瑞尔集团号称已服务患者超过630万人…

瑞尔集团冲刺港交所上市:2021财年亏损约6亿元,负债规模飙升

日前&#xff0c;口腔企业瑞尔集团有限公司&#xff08;下称“瑞尔集团”&#xff09;公开向港交所递交招股书&#xff0c;准备在港交所主板上市&#xff0c;摩根士丹利和瑞银为其联席保荐人。 据了解&#xff0c;瑞尔集团旗下运营两大品牌&#xff0c;分别为瑞尔齿科和瑞泰口…

LTD案例|数字化经营方法论在卫浴行业A股上市公司(瑞尔特)的应用

数字化洪流之下&#xff0c;传统企业纷纷按下“转型”加速键&#xff0c;差异化的商业模式给企业带来新的生机。研究发现&#xff0c;企业数字化转型程度的提高能够显著提升企业经营效率&#xff1b;同时数字化转型对商业模式创新有促进作用&#xff0c;且数字化转型能够通过促…

最小的利克瑞尔数196

最小的利克瑞尔数196 利克瑞尔数&#xff1a;指的是将该数与将该数各数位逆序翻转后形成的新数相加、并将此过程反复迭代后&#xff0c;结果永远无法是一个回文数的自然数。 回文数&#xff1a;一个数正读反读都一样&#xff0c;我们就把它叫做“回文数”。随便选一个数&#x…

迈肯瑞尔NMN入驻京东:美国逆龄黑科技,“不老神药”或成消费新趋势?

在发达国家&#xff0c;健康产业已经成为带动整个国民经济增长的强大动力&#xff0c;健康行业增加值占GDP比重超过15%。在我国&#xff0c;健康产业仅占GDP的4%&#xff5e;5%&#xff0c;远远低于发达国家。 2020年全球爆发新冠疫情&#xff0c;在疫情过去的时间里&#xff…

布隆过滤器简介

布隆过滤器 什么是布隆过滤器 布隆过滤器能够实现使用较少的空间来判断一个指定的元素是否包含在一个集合中 布隆过滤器并不保存这些数据,所以只能判断是否存在,而并不能取出该元素 使用情景:凡是判断一个元素是否在一个集合中的操作,都可以使用它 布隆过滤器常见使用场景…