allure测试报告

使用pytest结合Allure进行测试报告生成的简单教程

allure测试报告


Allure基于Java开发,因此我们需要提前安装Java 8或以上版本的环境。

◆安装allure-pytest插件在DOS窗口输入命令“pip3 install allure-pytest”,然后按“Enter”键。

下载安装Allure:你可以从GitHub下载安装文件“allure2-2.13.3.zip”,解压后,将bin目录配置到环境变量中,然后在DOS窗口中输入“allure”,并按“Enter”键,如果显示“Usage”的话,说明设置成功。

使用如下命令执行:pytest.main(["-m","login","-s","-q","--alluredir=./report"])。

●“-m”:标记用例。

●“login”:被标记需要执行用例。

●“-s”:允许终端在测试执行时输出某些结果,例如你想输入print的内容,可以加上“-s”。

●“-q”:简化输出结果。

●“--alluredir”:生成Allure指定语法。

●“./report”:生成报告的目录。

●“--clean-alluredir”:因为这个插件库allure-pytest生成了报告文件,你第二次执行时不会清理掉里面的东西,所以你需要删除这个report文件夹,然后执行重新新建report文件夹命令。说明:命令执行后,程序会在report文件夹里面生成文件。 

定制报告


●feature:标注主要功能模块。

●story:标注features功能模块下的分支功能。

●severity:标注测试用例的重要级别。

blocker级别:致命缺陷。critical级别:严重缺陷。normal级别:一般缺陷,默认为这个级别。minor级别:次要缺陷。trivial级别:轻微缺陷。

●step:标注测试用例的重要步骤。

●attach:用于向测试报告中输入一些附加的信息,通常是一些测试数据信息。

●name就是附件名称,body就是数据,attachment_type就是传类型。附件支持的类型有TEXT、HTML、XML、PNG、JPG、JSON、OTHER。

●issue:这里传的是一个连接,记录的是你的问题。

●testcase:这里传的是一个连接,记录的是你的用例。

●description:描述用例信息。

import pytest,allure@allure.feature("测试场景1")      #标记场景
class TestDemo():@allure.story("测试用例1-1") # 标记测试用例@allure.severity("trivial") # 标记用例级别def test_1_1(self): # 用例1a = 1 + 1assert a == 2@allure.story("测试用例1-2")@allure.severity("critical")@allure.step('用例2:重要步骤')def test_1_2(self):assert 2 == 2

通过main来执行测试用例,这时候程序会在report文件夹中生成一些JSON格式的文件

接下来回到DOS窗口,执行“allure generate --clean report”命令,可以看到新生成了一个allure-report文件夹,可以用浏览器打开index.html文件了

 ●区域一:显示报告生成的时间,执行的时间,一共执行了多少个测试用例,环状图显示用例通过的比例。

●区域二:显示的是测试集合(class)情况。

●区域三:显示的是测试场景(@allure.feature)。

●区域四:显示失败用例的信息。

 

安装必要的库


首先,确保已经安装了pytest和allure-pytest库。可以使用以下命令进行安装:


pip install pytest
pip install allure-pytest
 

用法说明 

1. 在测试代码中,使用pytest框架编写测试用例。确保你已经导入pytest和allure相关的模块。

2. 在每个测试用例函数上方添加`@allure.feature('Feature')`和`@allure.story('Story')`装饰器,用于指定测试用例所属的特性和故事。

3. 在测试用例函数上方添加`@allure.severity(allure.severity_level.CRITICAL)`装饰器,用于指定测试用例的严重程度。

4. 在需要添加附件的地方,使用`allure.attach()`方法添加附件。例如,在测试用例失败时,你可以添加失败截图或日志文件作为附件。

5. 在命令行中执行`pytest --alluredir=./report`命令,将测试结果生成为Allure报告的XML格式。

6. 使用`allure serve ./report`命令启动Allure服务,并自动打开生成的测试报告。

示例代码


import pytest
import allure@allure.feature('登录模块')
@allure.story('用户登录')
@allure.severity(allure.severity_level.CRITICAL)
def test_user_login():with allure.step('步骤1:输入用户名和密码'):# 输入用户名和密码操作passwith allure.step('步骤2:点击登录按钮'):# 点击登录按钮操作passwith allure.step('步骤3:验证登录成功'):# 验证登录成功的断言passwith allure.step('步骤4:添加失败截图和日志文件作为附件'):# 添加失败截图和日志文件作为附件allure.attach.file('./screenshot.png', name='失败截图', attachment_type=allure.attachment_type.PNG)allure.attach.file('./log.txt', name='日志文件', attachment_type=allure.attachment_type.TEXT)assert Trueif __name__ == '__main__':pytest.main(['-s', '-v', '--alluredir=./report'])

执行以上代码后,会在当前目录下生成一个`report`文件夹,包含测试结果的XML文件。然后,执行`allure serve ./report`命令,启动Allure服务并自动打开生成的测试报告。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/36316.shtml

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

相关文章

使用 Docker 部署 canal 服务实现MySQL和ES实时同步

文章目录 0. 环境介绍0. 前置步骤1. 安装Kibana和Elasticsearch2. 安装Canal和Canal Adapter2.1 修改数据库配置2.1.1 修改配置2.1.2 验证mysql binlog配置2.1.3 查看日志文件2.1.4 用JDBC代码插入数据库 2.2 安装Canal Server2.3 安装Canal Adapter修改两处配置文件配置文件取…

初识mysql数据库之引入mysql客户端库

目录 一、下载第三方库 1. 准备工作 1. 使用mysql官网提供的库 2. yum源安装 二、测试第三方库是否可用 三、mysql常用接口介绍 1. 查看官方文档 2. 初始化 3. 关闭mysql 4. 连接mysql 5. 下达sql指令 四、一个简单的C客户端库连接mysql程序 1. 头文件 2. 初始化…

Could not resolve host: mirrorlist.centos.org; Unknown error解决方法

今天服务器安装完CentOS系统后,安装网络的时候,出现无法联网yum yum -y install net-tools 以上代码无法运行并报错,这里我要提醒大家,如果在初始安装的时候选中安装网络工具模块就不用在安装net-tools了,因为我选中…

vite跨域配置踩坑,postman链接后端接口正常,但是前端就是不能正常访问

问题一:怎么都链接不了后端地址 根据以下配置,发现怎么都链接不了后端地址,proxy对了呀。 仔细看,才发现host有问题 // 本地运行配置,及反向代理配置server: {host: 0,0,0,0,port: 80,// cors: true, // 默认启用并允…

爆肝整理,性能测试方法与关键指标以及瓶颈定位思路,一篇贯通...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 性能测试方法 1、…

抓包工具Fiddler下载与安装

一、Fiddler介绍 1.Fiddler简介 Fiddler 是一款免费、灵活、操作简单、功能强大的 HTTP 代理工具,是目前最常用的 HTTP 抓包工具之一。可以抓取所有的 HTTP/HTTPS 包、过滤会话、分析请求详细内容、伪造客户端请求、篡改服务器响应、重定向、网络限速、断点调试等…

数据结构刷题训练:队列实现栈

目录 前言 1. 题目:使用队列实现栈 2. 思路 3. 分析 3.1 创建栈 3.2入栈 3.3 出栈 3.4 栈顶数据 3.5 判空和 “ 栈 ” 的销毁 4. 题解 总结 前言 我们已经学习了栈和队列,也都实现了它们各自的底层接口,那么接下我们就要开始栈和队列的专项刷…

go内存管理机制

golang内存管理基本是参考tcmalloc来进行的。go内存管理本质上是一个内存池,只不过内部做了很多优化:自动伸缩内存池大小,合理切割内存块。 基本概念: Page:页,一块 8 K大小的内存空间。Go向操作系统申请和…

2.Model、ModelMap和ModelAndView的使用详解

1.前言 最近SSM框架开发web项目,用得比较火热。spring-MVC肯定用过,在请求处理方法可出现和返回的参数类型中,最重要就是Model和ModelAndView了,对于MVC框架,控制器Controller执行业务逻辑,用于产生模型数据…

Spring Cloud构建微服务断路器介绍

什么是断路器 断路器模式源于Martin Fowler的Circuit Breaker一文。“断路器”本身是一种开关装置,用于在电路上保护线路过载,当线路中有电器发生短路时,“断路器”能够及时的切断故障电路,防止发生过载、发热、甚至起火等严重后果…

【Redis】使用Docker镜像配置集群时的Operation timed out问题

不知道有没有小伙伴跟我一样是使用的Docker镜像进行Redis集群案例模拟的(三台虚拟机确实带不动 ),然后我遇到了一个问题:Could not connect to Redis at 172.17.0.2:6379: Operation timed out 172.17.0.2是我其中一个Redis实例的…

如何测试Linux磁盘的读写速度

在Linux系统中也有很多命令可以测试硬盘的读写速度指标。以下是几个常用命令(注意:在执行测试命令之前,请务必备份数据以避免数据丢失! 1、dd 命令 首先挂载磁盘 mount /dev/sdb /testdd 命令可用于进行硬盘读写速度测试。 例…

android 开发中常用命令

1.反编译 命令&#xff1a;apktool d <test.apk> -o <folderdir> 其中&#xff1a;test.apk是待反编译文件的路径&#xff0c;folderdir是反编译后的文件的存储位置。 apktool d -f <test.apk> -o <folderdir> 注意&#xff1a;如果dir已经存在&am…

【Sklearn】基于决策树算法的数据分类预测(Excel可直接替换数据)

【Sklearn】基于决策树算法的数据分类预测&#xff08;Excel可直接替换数据&#xff09; 1.模型原理1.1 模型原理1.2 数学模型 2.模型参数3.文件结构4.Excel数据5.下载地址6.完整代码7.运行结果 1.模型原理 决策树是一种基于树状结构的分类和回归模型&#xff0c;它通过一系列…

MySql(干货)

写这篇博客的目的不是为了将介绍原理&#xff0c;而是为了Sql中的代码操作属实太多了&#xff0c;在这里进行一个汇总&#xff0c;方便查阅&#xff01;&#xff01;&#xff01; Sql分类 分类全称说明 DDL Data Definintion Language数据定义语言&#xff0c;用来定义数据库对…

微信小程序(由浅到深)

文章目录 一. 项目基本配置1. 项目组成2. 常见的配置文件解析3. app.json全局的五大配置4.单个页面中的page配置5. App函数6.tabBar配置 二. 基本语法&#xff0c;事件&#xff0c;单位1. 语法2. 事件3. 单位 三. 数据响应式修改四 . 内置组件1. button2. image3. input4. 组件…

k8s常用资源管理 控制

目录 Pod&#xff08;容器组&#xff09;&#xff1a;Pod是Kubernetes中最小的部署单元&#xff0c;可以包含一个或多个容器。Pod提供了一种逻辑上的封装&#xff0c;使得容器可以一起共享网络和存储资源 1、创建一个pod 2、pod管理 pod操作 目录 创建Pod会很慢 Pod&…

什么是事务,并发带来的事务问题以及事务隔离级别(图文详解)

一、什么是事务&#xff1f; 简单说就是逻辑上的一组操作&#xff0c;要么都执行&#xff0c;要么都不执行。 举个例子&#xff0c;假如小明要给小红转账100元&#xff0c;这个转账会涉及到两个关键操作&#xff1a;①将小明的余额减少100元。 ②将小红的余额增加100元 。但…

学习笔记整理-JS-04-流程控制语句

文章目录 一、条件语句1. if语句的基本使用2. if else if多条件分支3. if语句算法题4. switch语句5. 三元运算符 二、循环语句1. for循环语句2. for循环算法题3. while循环语句4. break和continue5. do while语句 三、初识算法1. 什么是算法2. 累加器和累乘器3. 穷举法4. 综合算…

设计模式(2)工厂方法模式

一、 1、介绍&#xff1a;定义一个用于创建对象的接口&#xff0c;让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。简单工厂模式的最大优点在于工厂类中包含了必要的逻辑判断&#xff0c;根据客户端的选择条件动态实例化相关的类&#xff0c;对于客户端来说…