好用的自动化框架-Allure

news2024/11/25 1:23:20

概述

报告主要包含总览、类别、测试套件、图表、时间刻度、功能、包等7大部分,支持自定义诸多信息,包括附件添加、缺陷链接、案例链接、测试步骤、Epic、Feature、Story、Title、案例级别等,相当强大。

allure与pytest的结合使用可以呈现完美的测试报告

总览

在这里插入图片描述

Allure常用装饰器

装饰器名称功能描述
@allure.epic(“测试模块_demo1”)“史诗”功能块,往下再分feature、story
@allure.feature(“测试模块_demo2”)“功能”标注功能模块,往下分story
@allure.story(“测试模块_demo3”)“故事”标注features下的分支功能模块,具有相同feature或story的用例将规整到相同模块下,执行时可用于筛选
@allure.issue(“BUG号:123”)“问题”问题标识,关联标识已有的问题,可为一个url链接地址
@allure.testcase(“用例名:测试字符串相等”)“用例”用例标识,关联标识用例,可为一个url链接地址
@allure.severity(“critical”)“严重级别”优先级,包含blocker, critical, normal, minor, trivial 几个不同的等级
@allure.step(“测试步骤”)“测试步骤”测试步骤

Epic、Feature、Story、Tag定制详解

四个修饰符:epic、feature、story、tag,包含关系是 从左到右,越来越小。
1、相同的epic、feature、story汇聚在一起
2、tag:标签
1)可继承,方法继承类
2)可重写,方法自身标签优先,没有再用类标签
3)标签可以同时打多个,逗号分割
3、只执行部分 feature/stories 的话,用下面命令
py.test --alluredir report --allure-features=feature1,feature2 --allure-stories=story1,story2

添加Epic、Feature、Story、Tag,Report展示如下图:

在这里插入图片描述
代码块


#! /usr/bin/env python
# -*-coding:utf-8-*-
 
import allure
import pytest
 
@allure.epic('allure.X--@allure.epic')
@allure.feature("Func01测试用例集合--@allure.feature")
@allure.tag('核心关注')
class TestFunc01Case(object):
    @allure.story('case01--@allure.story')
    @allure.severity('blocker')
    @allure.tag('重要的', 'bug回归')
    def test_func01_case_01(self):
        # 以下内容为测试用例描述
        u"""
        @allure.severity():包含blocker, critical, normal, minor, trivial 几个不同的等级
        Allure中对严重级别的定义:
        1、 Blocker级别:中断缺陷(客户端程序无响应,无法执行下一步操作)
        2、 Critical级别:临界缺陷( 功能点缺失)
        3、 Normal级别:普通缺陷(数值计算错误)
        4、 Minor级别:次要缺陷(界面错误与UI需求不符)
        5、 Trivial级别:轻微缺陷(必输项无提示,或者提示不规范)
 
        """
        assert 1 == 1

Severity定制详解

@allure.severity():包含blocker, critical, normal, minor, trivial 几个不同的等级
1、Allure中对严重级别的定义:
1) Blocker级别:中断缺陷(客户端程序无响应,无法执行下一步操作)
2) Critical级别:临界缺陷( 功能点缺失)
3) Normal级别:普通缺陷(数值计算错误)
4) Minor级别:次要缺陷(界面错误与UI需求不符)
5) Trivial级别:轻微缺陷(必输项无提示,或者提示不规范)

2、如果希望只跑critical和blocker这两个等级的case
在原先命令上加上–allure-severities=critical,blocker参数
py.test --alluredir report --allure-severities=critical,blocker -s –q

添加Severity,Report展示如下图:

在这里插入图片描述
代码实现

#! /usr/bin/env python
# -*-coding:utf-8-*-
 
import allure
import pytest
 
@allure.epic('allure.X--@allure.epic')
@allure.feature("Func01测试用例集合--@allure.feature")
@allure.tag('核心关注')
class TestFunc01Case(object):
    @allure.story('case01--@allure.story')
    @allure.severity('blocker')
    @allure.tag('重要的', 'bug回归')
    def test_func01_case_01(self):
        assert 1 == 1
 
    @allure.story('case02--step、attach用法--@allure.story')
    @allure.severity('critical')
    def test_func01_case_02(self):
       pass
 
    @allure.story('case03--@allure.story')
    @allure.severity('normal')
    def test_func01_case_03(self):
        pass
 
    @allure.story('case04--issue、testcase@allure.story')
    @allure.severity('minor')
    def test_func01_case_04(self):
        pass
 
    @allure.story('case05--@allure.story')
    @allure.severity('trivial')
    def test_func01_case_05(self):
        pass

Attach、Step定制详解

1、attach:附加
@allure.attach在报告中增加额外的信息:allure.attach(’arg1’,’arg2’,’arg3’):
arg1:是在报告中显示的名称
arg2:表示添加的内容
arg3:表示添加的类型(支持类型:HTML,JPG,PNG,JSON,OTHER,TEXTXML)
往报告中添加额外的信息
allure.attach(‘this is an attach’,’aaaaa’)

2、step:步骤
@allure.step在报告中增加步骤显示

有两种使用方法:
1、@allure.step() 只能以装饰器的形式放在类或者方法上面
2、with allure.step():可以放在测试用例方法里面,但测试步骤的代码需要被该语句包含,用于格式化输出

添加Attach、Step,Report展示如下图:

在这里插入图片描述
代码实现

#! /usr/bin/env python
# -*-coding:utf-8-*-
 
import allure
import pytest
 
@allure.epic('allure.X--@allure.epic')
@allure.feature("Func01测试用例集合--@allure.feature")
@allure.tag('核心关注')
class TestFunc01Case(object):
    @allure.story('case01--@allure.story')
    @allure.severity('blocker')
    @allure.tag('重要的', 'bug回归')
    def test_func01_case_01(self):
       pass
 
    @allure.story('case02--step、attach用法--@allure.story')
    @allure.severity('critical')
    def test_func01_case_02(self):
        assert 2 == 2
        allure.attach('this is attach', 'attach用法')
        # 在报告中添加图片
        with allure.step('预期结果'):
            allure.attach.file('test.png', 'test11111', allure.attachment_type.PNG)
        with allure.step('实际结果'):
            print ('匹配')

Issue和TestCase定制详解

issue和testCase用法一样,但展示结果issue前面会有一个图标

添加Issue、TestCase,Report展示如下图:

在这里插入图片描述
代码实现

#! /usr/bin/env python
# -*-coding:utf-8-*-
 
import allure
import pytest
 
@allure.epic('allure.X--@allure.epic')
@allure.feature("Func01测试用例集合--@allure.feature")
@allure.tag('核心关注')
class TestFunc01Case(object):
    @allure.story('case01--@allure.story')
    @allure.severity('blocker')
    @allure.tag('重要的', 'bug回归')
    def test_func01_case_01(self):
        pass
 
    @allure.story('case04--issue、testcase@allure.story')
    @allure.severity('minor')
    @allure.issue("https://jira.ahi-fintech.com/browse/QA-1", 'Bug链接')
    @allure.testcase("http://www.testlink.com", 'testcase链接')
    def test_func01_case_04(self):
        u"""
        issue(url, name=None)
        testcase(url, name=None)
        return link(url, link_type=LinkType.ISSUE, name=name)
        return link(url, link_type=LinkType.TEST_CASE, name=name)
        """
        pass

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

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

相关文章

华为OD机试真题B卷 Java 实现【求小球落地5次后所经历的路程和第5次反弹的高度】,附详细解题思路

一、题目描述 假设一个球从任意高度自由落下,每次落地后反跳回原高度的一半; 再落下, 求它在第5次落地时,共经历多少米?第5次反弹多高? 数据范围:输入的小球初始高度满足 1 \le n \le 1000 \1≤n≤1000 ,且保证是一…

Mysql存储过程的递归调用及数据量过大group_concat()显示不全的问题

业务场景 使用mysql group_concat()函数,对查询的数据进行字符串连接操作。 由于查询的结果较多,连接后的结果很长导致不能完全显示。 第一种解决方案(不需要重启Mysql, 如果mysql重启后设置会失效,需重新设置) 执行…

代码随想录-哈希表

学习《代码随想录》 基础知识哈希函数哈希碰撞三种哈希结构 有效的字母异位词两个数组的交集两数之和暴力法Map 四数相加三数之和哈希解法双指针法 四数之和 基础知识 哈希表是一种根据关键码的值直接访问数据的数据结构。一般用来快速判断一个元素是否出现在集合中。 哈希函…

【AUTOSAR】Com通讯栈配置说明(二)---- CanIf模块

CanIf模块 CanIfCtrlDrvCfgs CanIfCtrlDrvBusOffNotification:busoff 发生后的callback函数 CanIfCtrlDrvWakeupNotification: wakeup 发生后的callback函数 CanIfCtrlId: 逻辑Canif id CanIfWakeupSupport:是否支持唤醒 CanIfMaxDlc:最大报文长度 CanIfCtrlCanCtrlRef: 关联…

我们是如何管理蓝精灵协会 PFP 集合的程序性生成的?

自从 Cryptopunks 和 Bored Apes 发布以来,大多数蓝筹 NFT 系列都在其创意基准中使用了相同的反复出现的概念:一幅插图肖像(也称为 PFP,用于个人资料图片或证明图片)通过使用随机分布的定制层而被改变成几千种略有不同…

【回顾经典AI神作】理解和实现ResNeXt(比ResNet最先进的图像分类模型)

与 ResNet 相比好在哪里? 相同的参数个数,结果更好:一个 101 层的 ResNeXt 网络,和 200 层的 ResNet 准确度差不多,但是计算量只有后者的一半 论文参考:https://arxiv.org/pdf/1611.05431.pdf 以下三篇是介绍和改进残差网络的论文: 用于图像识别的深度残差学习(链接…

ELECTRA模型简单介绍

目录 一、整体概要 二、生成器 三、判别器 四、模型训练 五、其它改进 一、整体概要 ELECTRA(Efficiently Learning an Encoder that Classifies Token Replacements Accurately)采用了一种“生成器——判别器”结构,其与生成式对抗网络…

报表服务器Stimulsoft Server v2023.2亮点:支持PostgreSQL、选项卡

Stimulsoft Server(原Stimulsoft Reports.Server)是一款完善的商业智能解决方案,采用C/S架构,提供报告和分析功能。前端用来展现数据,后台用来处理和存储数据。Stimulsoft Server(原Stimulsoft Reports.Ser…

IDEA性能优化设置(解决卡顿问题)

在我们日常使用IDEA进行开发时,可能会遇到许多卡顿的瞬间,明明我们的机器配置也不低啊?为什么就会一直卡顿呢? 原来这是因为IDEA软件在我们安装的时候就设置了默认的内存使用上限(通常很小),这就…

成都远石无人机航测服务的具体内容

成都远石拥有多年西南地区无人机航测作业经验,现具备DEM、DSM、DOM、三维实景模型及机载激光雷达全套数据成果的生产能力,致力于为各个行业提供准确的数据支持。现在,小编就来给大家介绍成都远石无人机航测服务的具体内容。 1、数字高程模型…

SocketTools Library Edition C++ Crack

SocketTools 库版 SocketTools Library Edition 是一套 Windows 库,可简化 Internet 应用程序开发。它提供您入门所需的一切,包括文档和示例,以及免费的技术支持来回答您遇到的任何开发问题。SocketTools Library Edition 包括本机 Windows 库…

Java集成influxDB 默认UTC时区问题

dd 我用的influxDB 1.8版本高版本我不清楚,因为1.x版本便于写sq语法。 influxDB时序库默认使用 UTC时区,并且无法通过配置来修改这个时区,很多文档说在查询数据的时候加上 tz(Asia/Shanghai)。 而这个在Windows环境下的influxdb会报错…

【youcans动手学模型】AlexNet模型CIFAR10图像分类

欢迎关注『youcans动手学模型』系列 本专栏内容和资源同步到 GitHub/youcans 【youcans动手学模型】AlexNet模型CIFAR10图像分类 1. AlexNet 卷积神经网络模型1.1 论文简介1.2 AlexNet 的主要贡献1.3 AlexNet 网络1.4 模型的运行结果 2. 在 PyTorch 中定义 AlexNet 模型类2.1 按…

Qt编写视频监控系统77-Onvif组件支持非正常时间的设备

一、前言 在经历了大量的现场设备测试,至少几十种厂家、几百种设备,遇见过奇奇怪怪的问题,一个个想方设法解决,发现有个问题是在下发鉴权的时候,需要带上设备的时间,而不是发送端的时间,如果带…

LeetCode 1110. 删点成林

【LetMeFly】1110.删点成林 力扣题目链接:https://leetcode.cn/problems/delete-nodes-and-return-forest/ 给出二叉树的根节点 root,树上每个节点都有一个不同的值。 如果节点值在 to_delete 中出现,我们就把该节点从树上删去&#xff0c…

MySQL 系统信息函数

文章目录 系统信息函数1. 查看当前 MySQL 数据库版本号2. 查看当前使用的数据库3. 查看当前服务器连接次数 系统信息函数 当我们需要知道当前 MySQL 数据库的一些基本信息和使用情况的时候,可以使用系统信息函数来获取相关信息,以随时掌握数据库的使用情…

【C++系列P2】引用——背刺指针的神秘刺客(精讲一篇过!)

前言 大家好吖,欢迎来到 YY 滴 C系列 ,热烈欢迎!如标题所示,本章主要内容主要来侃侃“引用”这个刺客!如下就是大纲啦~ 一.引用 1.含义与特点 引用,即取别名。它的最大特点是编译器不会为引用变量而开辟空间…

Segment Anything——图像分割的基础模型介绍

人工智能中的基础模型变得越来越重要。这个术语开始在 NLP 领域加快步伐,现在,随着 Segment Anything Model 的出现,他们也慢慢进入了计算机视觉领域。Segment Anything是 Meta 的一个项目,旨在为图像分割的基础模型构建起点。在本文中,我们将了解 Segment Anything 项目最…

Python:Python编程:从入门到实践__超清版:线程

Python线程与安全 实现线程安全有多重方式,常见的包括:锁,条件变量,原子操作,线程本地存储等。 💚 1. 锁2. 条件变量3. 通过 join 阻塞当前线程4. 采用 sleep 来休眠一段时间5. 原子操作5.1 使用 threading…

HTTP请求中token、cookie、session有什么区别

cookie HTTP无状态的,每次请求都要携带cookie,以帮助识别身份服务端也可以向客户端set-cookie,cookie大小4kb默认有跨域限制:不可跨域共享,不可跨域传递cookie(可通过设置withCredential跨域传递cookie) cookie本地存…