使用Allure框架创建个性化测试报告的步骤

news2024/12/25 12:50:43
  •  📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
  • 📢交流讨论:欢迎加入我们一起学习!
  • 📢资源分享:耗时200+小时精选的「软件测试」资料包
  • 📢 软件测试学习教程推荐:火遍全网的《软件测试》教程

前言

在之前的文章中我们介绍了Allure的基本用法,文末提到定制化报告,为啥需要定制呢?有时候,我们需要更加详细的信息,使得报告更加容易理解。

定制详细步骤

allure.step是Allure框架提供的一个注解,用于将测试用例分为多个步骤并记录每个步骤的执行结果。

使用allure.step可以帮助我们更细致地记录测试用例的执行情况,方便排查问题和定位错误。看一个示例:

class TestStudentController(TestCase):
​
    @pytest.mark.student
    @pytest.mark.parametrize("feedback, tag", [
        pytest.param(TestDataGenerator.text_(max_nb_chars=200), random.choice(['教学问题', '使用问题', '服务问题', '其他问题']))
    ])
    def test_feedback(self, headers, db_connection, feedback, tag):
        with allure.step("发送API请求"):
            ......
        with allure.step("验证API响应"):
            ......

在上述代码中,我们使用了allure.step将测试用例分为了两个个步骤,并为每个步骤添加了一个描述。当测试用例运行时,Allure会记录每个步骤的执行结果,并在测试报告中展示出来。

除了添加描述外,我们还可以使用allure.attach方法将一些额外的信息添加到测试报告中。例如,以下代码演示了如何将测试用例的请求和响应信息添加到测试报告中:

class TestStudentController(TestCase):
​
    @pytest.mark.student
    @pytest.mark.parametrize("feedback, tag", [
        pytest.param(TestDataGenerator.text_(max_nb_chars=200), random.choice(['教学问题', '使用问题', '服务问题', '其他问题']))
    ])
    def test_feedback(self, headers, db_connection, feedback, tag):
        with allure.step("发送API请求"):
            ......
            allure.attach("请求数据", feedback)
        with allure.step("验证API响应"):
            allure.attach("响应数据", self.response)
            ......
​

在上述代码中,我们使用了allure.attach方法将请求和响应信息以文本形式添加到了测试报告中。这样可以方便我们在测试报告中查看每个测试用例的请求和响应情况,有助于排查问题和定位错误。

定制内容描述

@allure.description是一个装饰器,用于在测试报告中为测试方法添加描述信息。你可以在测试方法上方使用@allure.description装饰器,并传入相应的描述文本作为参数。

以下是一个示例:

import allure
​
@allure.description("这是一个示例测试方法")
def test_example():
    # 测试代码

在上述示例中,我们使用@allure.description装饰器为test_example测试方法添加了描述信息。当测试报告生成时,该描述信息将显示在测试方法的部分下方。

动态描述,替换开始时的描述

可以从测试内动态更新最初的描述allure.dynamic.description,这是非常灵活的方式,代码如下:

import allure
​
@allure.description("这是一个示例测试方法")
def test_example():
    allure.dynamic.description('替换后的描述')
    # 测试代码

定制测试标题

@allure.title是一个装饰器,用于在测试报告中为测试方法添加标题。你可以在测试方法上方使用@allure.title装饰器,并传入相应的标题文本作为参数。

以下是一个示例:

import allure
​
@allure.title("测试方法")
def test_example():
    # 测试代码

在上述示例中,我们使用@allure.title装饰器为test_example测试方法添加了标题。当测试报告生成时,该标题将显示在测试方法的部分上方。

链接

@allure.link将在“链接”部分提供指向所提供的网址的可单击链接

@allure.link将在“链接”部分提供指向所提供的网址的可单击链接

@allure.testcase是一个装饰器,用于在测试报告中为测试方法添加测试用例链接。在测试方法上方使用@allure.testcase装饰器,并传入相应的测试用例链接作为参数。

以下是一个示例:

import allure
​
@allure.testcase("https://example.com/test_case_001")
def test_example():
    # 测试代码

在上述示例中,我们使用@allure.testcase装饰器为test_example测试方法添加了测试用例链接。当测试报告生成时,该链接将显示在测试方法的部分上方,供用户点击查看相关测试用例的详细信息。

自定义标签

@allure.feature@allure.story 是用于在测试报告中为测试方法添加特性和用户故事的装饰器。

@allure.feature 装饰器用于定义被测试功能的名称,例如:

import allure
​
@allure.feature('登录功能')
def test_login():
    # 测试代码

在上述示例中,使用 @allure.feature 装饰器来标识测试方法所属的功能模块。

@allure.story 装饰器用于定义测试方法的用户故事或场景,例如:

import allure
​
@allure.feature('登录功能')
@allure.story('使用有效用户名和密码登录')
def test_valid_login():
    # 测试代码

在上述示例中,我们使用了 @allure.feature@allure.story 装饰器结合起来为测试方法添加了功能和用户故事信息。

这些装饰器有助于组织测试报告,使其更具可读性和结构化,帮助用户更好地理解测试覆盖的功能和场景。

严重性标记

@allure.severity 是一个装饰器,用于为测试方法指定测试严重性级别。它可以帮助你在测试报告中标识测试的重要性和优先级。

以下是一个示例:

import allure
​
@allure.severity(allure.severity_level.CRITICAL)
def test_example():
    # 测试代码

在上述示例中,我们使用 @allure.severity 装饰器为 test_example 测试方法指定了 "CRITICAL" 严重性级别。你可以根据实际情况选择不同的级别,如 "BLOCKER"、"CRITICAL"、"NORMAL"、"MINOR" 或 "TRIVIAL"。

这些级别可以帮助你确定测试的优先级和重要性,以便更好地管理和评估测试结果。测试报告中会以可视化的方式显示测试的严重性级别,让读者能够快速了解测试的重要性。

重试信息展示

对于重试,可以使用pytest重新运行失败插件。例如,如果我们有一个方法经常失败,那么可以添加参数--reruns=5,pytest启动选项中指定参数后,我们会在Retries选项卡上看到所有未成功运行此测试的尝试。

最后

掌握了定制的方法,开始定制你的个性化用例吧。


行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群,里面有各种测试开发资料和技术可以一起交流哦。

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取 【保证100%免费】

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。在这里插入图片描述
在这里插入图片描述

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

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

相关文章

FindMy技术用于手表

手表是一种用于计时和显示时间的仪器,通常由机械、电子或石英等机制驱动。手表可以作为配饰佩戴在手腕上,具有方便携带、时尚美观等特点。手表的种类和款式很多,可以根据不同的需求和场合进行选择。常见的手表类型包括机械表、石英表、电子表…

如何进行产品数据分析一——移动应用APP分析方法

如何进行产品数据分析 产品的定义产品分析的构成移动应用APP分析方法AARRR1.流量拆解DAUMAU活跃率拆解流量深度 2.流量引入反作弊算法识别系统(量)拉新质量评估体系(质)渠道价值评估体系(值) 3.流量输出 产…

同义词替换器降低论文重复率的最新技术进展

大家好,今天来聊聊同义词替换器降低论文重复率的最新技术进展,希望能给大家提供一点参考。 以下是针对论文重复率高的情况,提供一些修改建议和技巧: 标题:同义词替换器降低论文重复率的最新技术进展 一、引言 随着学术…

RK3568全国产化多网口板卡带poe供电,支持鸿蒙麒麟系统

信迈XM-3568-01主板采用瑞芯微RK3568四核Cortex-A55 处理器,主频最高可达2.0GHz,效能有大幅提升最高可配8GB内存容量,频率高达1600MHz;支持全链路ECC,让数据更安全可靠配置双千兆自适应RJ45以太网口,并扩展…

kernel32.dll如何解决,教你如何快速修复kernel32.dll文件缺失问题

kernel32.dll是Windows操作系统中非常重要的一个动态链接库文件,它提供了许多系统级的功能和服务。本文将介绍kernel32.dll动态链接库报错的五种解决方法,并探讨kernel32.dll丢失对电脑的影响以及其作用的介绍。 一、kernel32.dll动态链接库报错的五种解…

每日一练2023.12.13——6翻了【PTA】

题目链接:L1-058 6翻了 题目要求: “666”是一种网络用语,大概是表示某人很厉害、我们很佩服的意思。最近又衍生出另一个数字“9”,意思是“6翻了”,实在太厉害的意思。如果你以为这就是厉害的最高境界,那…

docker容器-compose单机容器编排

yaml文件:是一种标记语言,以竖列的形式展示序列化的数据格式,可读性高 类似于json格式,语法简单 yaml通过缩进来表示数据结构,连续的项目用-减号来表示 yaml文件使用的注意事项 1、大小写敏感 2、通过缩进表示层级…

Python 递归及目录遍历

递归调用:一个函数,调用了自身,称为递归调用 递归函数:一个会调用自身的函数 凡是循环能做的事,递归都能做。 目录 递归示例 普通方法实现 递归方式实现 计算分析: 递归遍历目录 引入os 遍历目录 执…

安防视频/可视化监控云平台EasyCVR对接大华卡口摄像头告警的操作步骤

旭帆科技的国标GB28181视频融合平台EasCVR不仅具备传统的视频监控功能,还配备了智能分析算法,近期有用户需要在现场的摄像头配备AI识别的功能,如烟火、人脸识别、车牌识别等功能。 最新版的EasyCVR(V.3.4)目前可对接大…

DBA轻松应对慢查询挑战,使用NineData这款工具就够了!

对于一个 DBA 来说,从公司数据库系统的稳定程度可以看出他的能力几何,一个优秀的 DBA 不仅要保证数据库的稳定运行,还需要有能力有效处理数据库的各种突发性能问题,而最常见的性能问题,就是慢查询。 我们公司规模比较…

Linux基础项目开发2:物联网监控——MJP-streamer方案实现(二)

前言: MJPG-Streamer代码简单,并且对CPU的要求比较低,一般的处理器都能运行,我们可以通过它,大体了解一下视频监控的知识。 一、MJP-streamer 编译安装MJP-streamer 使用Buildroot编译 在100ASK_IMX6ULL上安装、运行 使…

通讯系列电路芯片选型分析

适用于电话机上的电路芯片D34018 工作电压范围6V~11V 采用SOP28封装形式 D34118 工作电压范围3.5V~6.5V 采用SOP28封装形式 压缩扩展器电路芯片D31101 D5015 D5020 窄带中频放大器电路D3361 D3380 D31136 收发器电路芯片 D232 低功耗3-5.5V供电RS-2…

-bash: docker-compose: 未找到命令

-bash: docker-compose: 未找到命令 我在使用Docker搭建Nacos容器时遇到了这个问题:是没有安装 docker-compose工具 。 docker-compose的用处主要体现在以下几个方面: 快速搭建开发环境:使用docker-compose可以快速搭建起开发环境&#xff0…

全球十大骨传导耳机排名,骨传导耳机排行榜品牌推荐

随着科技的进步,人们对音乐和通话的需求越来越高,而骨传导耳机作为一种新兴的耳机类型,逐渐受到人们的关注。它通过人的头骨将声音直接传递到内耳,不经过耳道,因此不会阻碍外界声音的进入,同时也能更好地保…

pytorch强化学习(1)——DQNSARSA

实验环境 python3.10 torch2.1.1 gym0.26.2 gym[classic_control] matplotlib3.8.0 numpy1.26.2DQN代码 首先是module.py代码,在这里定义了网络模型和DQN模型 import torch import torch.nn as nn import numpy as npclass Net(nn.Module):# 构造只有一个隐含层的…

【Python】计算最少排班人数(1)

需求背景: 某工作24小时需要人员,单个班次为8或9小时,需要根据每小时需要的人数、不同的班次计算最低需要的人数。 每小时需要的人数举例: 班次类型: 问题分析: 1、需要各个时段的人员数大于等于需要的人…

CV中的Attention机制:SENet

paper: Squeeze-and-Excitation Networks paper link:https://arxiv.org/pdf/1709.01507.pdf repo link:GitHub - hujie-frank/SENet: Squeeze-and-Excitation Networks 摘要: 卷积神经网络(CNNs)的核心构建块是卷积算子,它使…

微信小程序map视野发生改变时切换定位点

<!--地图--> <view><map id"myMap" style"width: 100%; height: 300px;" latitude"{{latitude}}" longitude"{{longitude}}"scale"{{scale}}" markers"{{markers}}" controls"{{controls}}&q…

OpenCV-Python:图像平滑操作

目录 图像平滑基础 本文目标 2D卷积 图像模糊&#xff08;图像平滑&#xff09; 平均模糊 高斯模糊 中值模糊 双边滤波 图像平滑基础 在尽量保留图像原有信息的情况下&#xff0c;过滤掉图像内部的噪声&#xff0c;这一过程称为对图像的平滑处理&#xff0c;所得的图像…