allure简介

news/2024/4/26 14:44:14/文章来源:https://blog.csdn.net/weixin_50464533/article/details/129145679

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.luyixian.cn/news_show_72188.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C语言——动态内存管理

目录0. 思维导图&#xff1a;1. 为什么存在动态内存分配2. 动态内存函数介绍2.1 malloc和free2.2 calloc2.3 realloc3. 常见的动态内存错误3.1 对NULL指针的解引用操作3.2 对动态内存开辟的空间越界访问3.3 对非动态开辟内存使用free释放3.4 使用free释放一块动态开辟内存的一部…

django+celery+ RabbitMQ自定义多个消息队列

关于django celery的使用网上有很多文章&#xff0c;本文就不多做更多的说明。 本文使用版本 python3.8.15 Django3.2.4 celery5.2.7celery.py from __future__ import absolute_import, unicode_literals import os from celery import Celery from kombu import Exchange, …

毕业后想从事软件测试,现在需要学习哪些内容呢

在你选择学习之前&#xff0c;要先考虑一下这个是不是你喜欢的发展方向&#xff0c;而不是只听别人推荐就直接做了选择先了解下软件测试是做什么的以及未来发展前景&#xff0c;最后才是如何自学 软件测试就是在测试这个软件是不是能够完全按照需求运行。软件测试岗再简单点说…

Windows启动docker客户端报错:Hardware assisted virtualization and enabled in the BIOS

报错内容 : &#x1f31f;1.在控制面板中点击 启用或关闭Windows功能&#x1f31f;2.勾选如下复选框&#x1f31f;3.Windows功能中没有Hyper-V复选框怎么办?(如果有请跳过此步骤)此时不同人的电脑还会出现没有Hyper-V选项的情况1.打开 Windows PowerShell&#xff0c;输入 sys…

如何效率搭建企业流程系统?试试低代码平台吧

编者按&#xff1a;本文介绍了一款可私有化部署的低代码平台&#xff0c;可用于搭建团队流程管理体系&#xff0c;并详细介绍了该平台可实现的流程管理功能。关键词:可视化设计&#xff0c;集成能力&#xff0c;流程审批&#xff0c;流程调试天翎是国内最早从事快速开发平台研发…

Hive内部表与外部表的区别具体说明

目录 1.在/opt/atguigu/目录下&#xff0c;新建两个txt文件 2.在hadoop的web端递归创建一个目录&#xff0c;存储这两个文件 3.查看web端的文件 一、内部表&#xff1a; 1.创建一个内部表&#xff0c;并指定内部表的存储位置 2.查看内部表&#xff0c;内部表中没有数据 …

2023.2 新方案 java代码混淆 java加密 字符串加密

Java字节码可以反编译&#xff0c;特别是创业公司,很好的项目很容易被别人破解反编译,造成很严重的损失,所以本混淆方案能很好的保护源码,而且在不断迭代,增强混淆效果,异常问题处理,达到保护项目的目的&#xff1a; 本次升级包括: 2023年02年19日 : ht-confusion-project-1.8…

PK体系下的教育场景—电子白板的应用

PK体系指基于国产飞腾&#xff08;Phytium&#xff09;CPU和麒麟&#xff08;Kylin&#xff09;操作系统的技术和产业体系&#xff0c;被誉为“中国架构”&#xff0c;目前基于PK体系的相关软硬件已经广泛用于党政、金融、电信等关基行业。教育信创在国家大战略布局下&#xff…

【技术分享】Web自动化之Selenium安装

Web 应用程序的验收测试常常涉及一些手工任务&#xff0c;例如打开一个浏览器&#xff0c;并执行一个测试用例中所描述的操作。但是手工执行的任务容易出现人为的错误&#xff0c;也比较费时间。因此&#xff0c;将这些任务自动化&#xff0c;就可以消除人为因素。Selenium 可以…

理解QPSK的实质-I右手正旋-Q左手负旋

正在学习5GNR PDCCH&#xff0c;用到QPSK。作一小结。 引言 我认为像我这样一个死民科&#xff0c;非主流非科班的通信人&#xff0c;理解QPSK的意义&#xff0c;甚至不比欧拉公式&#xff0c;或者是傅里叶变换小。 因为QPSK相较于BPSK&#xff0c;是真正第一次体现了调制的…

模拟默认密码自动生成-课后程序(JAVA基础案例教程-黑马程序员编著-第五章-课后作业)

【案例5-2】 模拟默认密码自动生成 【案例介绍】 1.任务描述 本例要求编写一个程序&#xff0c;模拟默认密码的自动生成策略&#xff0c;手动输入用户名&#xff0c;根据用户名自动生成默认密码。在生成密码时&#xff0c;将用户名反转即为默认的密码。 2.运行结果 运行结…

Power BI 数据处理介绍(数据初始调整、合并列及查看数据结构)

本系列的文章&#xff1a; 安装流程和示例介绍&#xff1a; 《Power BI windows下载安装流程&#xff09;》《Power BI 11个必学官方示例数据案例&#xff08;附下载链接&#xff09;》 数据导入阶段介绍&#xff1a; 《Power BI 数据导入&#xff08;SQL Server、MySQL、网页…

C++(42)-FSM-有限状态机

1.FSM 是什么&#xff1f; 一种用来进行对象行为建模的工具&#xff0c;用于描述对象在生命周期内所经历的状态序列&#xff0c;以及如何响应来自外界的各种事件。2.FSM 组成&#xff1a;状态、事件、动作3.FSM类型&#xff1a; 3.1Moore: 输出&#xff1a;当前状态有关…

mysql -学习总结

mysql 详解1、mysql特点2、事务2.1 事务的四大特性 – ACID2.2 并发事务问题2.3 事务的四大隔离级别2.4 事务隔离级别操作sql2.5 事务原理 – LBCC MVCC2.4.1 行的隐藏列2.4.2 ReadView2.4.3 MVCC在四种隔离级别下的区别2.5 undo log、binlog、redo log2.5.1 Undo log2.5.2 bin…

2023年2月22日PMP®项目管理认证课程正式开课

PMP认证是Project Management Institute在全球范围内推出的针对评价个人项目管理知识能力的资格认证体系。国内众多企业已把PMP认证定为项目经理人必须取得的重要资质。 PMP认证是Project Management Institute在全球范围内推出的针对评价个人项目管理知识能力的资格认证体系。…

安装MQTT Server遇到报错“cannot verify mosquitto.org‘s certificate”,该如何解决?

MQTT是基于发布/订阅的轻量级即时通讯协议&#xff0c;很适合用于低带宽、不稳定的网络中进行远程传感器和控制设备通讯等操作中。在我们的软件研发中&#xff0c;也经常使用MQTT协议进行消息通信等。今天来和大家分享一些关于在安装MQTT Server中遇到的疑难问题及解决思路。当…

文献综述怎么写?有哪些准备工作和内容要求

文献综述的撰写是提高研究生论文写作能力的重要途径&#xff0c;是研究生在撰写学术论文和学位论文中必须要涉及的内容&#xff0c;是不可或缺的&#xff0c;写好一篇好的文献综述是存在诸多困难和挑战的&#xff0c;需要掌握一定的技巧和方法。 一、文献综述的写作目的 文献综…

mysql常用且易混淆函数整理

DATE_FORMAT(date&#xff0c;format) 函数中format的格式如下&#xff1a; 类型转化函数 为了进行数据类型转化&#xff0c;MySQL提供了CAST()函数&#xff0c;它可以把一个值转化为指定的数据类型。类型有&#xff1a;BINARY,CHAR,DATE,TIME,DATETIME,SIGNED,UNSIGNED 示例&a…

Python|每日一练|数组|回溯|栈|树|双指针|单选记录:N 皇后|二叉树的前序遍历|四数之和

1、N 皇后&#xff08;数组&#xff0c;回溯&#xff09; n 皇后问题 研究的是如何将 n 个皇后放置在 nn 的棋盘上&#xff0c;并且使皇后彼此之间不能相互攻击。 给你一个整数 n &#xff0c;返回所有不同的 n 皇后问题 的解决方案。 每一种解法包含一个不同的 n 皇后问题 …

操作系统真相还原_第6章:完善内核

文章目录6.1 函数调用约定简介6.2 汇编语言和C语言混合编程汇编调用CC调用汇编6.3 实现打印函数流程程序编译并写入硬盘执行6.4 内联汇编简介汇编语言AT&T语法基本内联汇编扩展内联汇编6.1 函数调用约定简介 调用约定&#xff1a; calling conventions 调用函数时的一套约…