pytest--allure报告中添加用例详情
前言
前面介绍了如何生成allure的报告,看着allure的页面非常好看,但是感觉少了一些内容,allure还可以增加一些用例详情内容,这样让我们的报告看着更加绚丽。
allure增加用例详情
我们可以在报告测试套件中增加用例详情内容。
用例标题
1、需要导入allure模块
2、在每条用例函数前需要加上 @allure.title('标题内容')
3、正常执行生成allure报告。
-
import allure -
class TestCase: -
@allure.title('用例1的名称') -
def test_01(self): -
print('---用例01---') -
assert 1 -
@allure.title('用例2的名称') -
def test_02(self): -
print('---用例02---') -
assert 1 -
@allure.title('用例3的名称') -
def test_03(self): -
print('---用例03---') -
assert 2
通过在cmd中输入 pytest --alluredir ./report/result 执行测试用例,在执行 allure serve report/result 打开allure报告。这样就能在报告中看出生成了三条用例,并将对应的用例名称显示出来了。

用例描述
用例除了用例标题显示出用例内容外,我们也可以通过用例描述更加详细的在allure中展示出来
这里和unittest的时候显示标题一样,直接通过python的语法在用例中增加注释
-
import allure -
class TestCase: -
@allure.title('用例1的名称') -
def test_01(self): -
'''用例_01的描述内容''' -
print('---用例01---') -
assert 1 -
@allure.title('用例2的名称') -
def test_02(self): -
'''用例_02的描述内容''' -
print('---用例02---') -
assert 1 -
@allure.title('用例3的名称') -
def test_03(self): -
'''用例_03的描述内容''' -
print('---用例03---') -
assert 2
同样通过cmd命令行中输入对应的打开allure的报告内容。可以进入到用例详情页面中查看到,描述已经成功添加了。

用例操作步骤
allure中也可以添加将用例的操作步骤进行添加进去,这里通过 allure.step() 的方法来实现添加操作步骤
-
import allure -
class TestCase: -
@allure.title('登录用户') -
def test_01(self): -
'''登录用户''' -
print('---用例01---') -
with allure.step('输入登录用户名'): -
print('输入用户名') -
with allure.step('输入登录的密码'): -
print('输入密码') -
with allure.step('点击登录'): -
print('点击登录!') -
assert 1 -
@allure.title('进入测试页面') -
def test_02(self): -
'''进入测试页面''' -
print('---用例02---') -
with allure.step('进入测试页面'): -
print('进入测试页面') -
with allure.step('点击测试内容'): -
print('点击测试内容') -
assert 1
和上面的操作一样,打开cmd进行生成allure命令。通过在allure中进行查看报告内容。可以看到已经在测试步骤中添加上了。

定义测试用例相关链接
自动化测试用例都是通过功能用例转换过来的,我们也可以通过allure将我们的测试用例相关的链接到我们的自动化测试用例中,并通过allure展示出来,这里可以通过 @allure.issue() 进行添加bug缺陷内容, @allure.testcase() 添加测试用例链接
-
import allure -
class TestCase: -
@allure.issue('https://home.cnblogs.com/u/qican/') -
@allure.testcase('https://www.baidu.com/') -
@allure.title('登录用户') -
def test_01(self): -
'''登录用户''' -
print('---用例01---') -
with allure.step('输入登录用户名'): -
print('输入用户名') -
with allure.step('输入登录的密码'): -
print('输入密码') -
with allure.step('点击登录'): -
print('点击登录!') -
assert 1 -
@allure.issue('https://home.cnblogs.com/u/qican/') -
@allure.testcase('https://www.baidu.com/') -
@allure.title('进入测试页面') -
def test_02(self): -
'''进入测试页面''' -
print('---用例02---') -
with allure.step('进入测试页面'): -
print('进入测试页面') -
with allure.step('点击测试内容'): -
print('点击测试内容') -
assert 1
继续通过allure的报告执行方式,生成allure报告和打开allure报告,就可以看到我们的测试用例相关链接已经添加好了。

用例标签模块
功能测试中可以对测试用例根据不同的模块进行划分,自动化中也可以对用例进行不同模块的划分,然后通过allure的形式进行展示出来,这里我们可以通过 @allure.feature() 对其用例进行增加不同模块。也可以通过 @allure.epic 设置用例整体标签以及模块内容
-
import allure -
@allure.epic("属于登录标签") -
@allure.feature('登录模块') -
class TestCase: -
@allure.title('登录用户') -
def test_01(self): -
'''登录用户''' -
print('---用例01---') -
with allure.step('输入登录用户名'): -
print('输入用户名') -
with allure.step('输入登录的密码'): -
print('输入密码') -
with allure.step('点击登录'): -
print('点击登录!') -
assert 1 -
@allure.title('进入测试页面') -
def test_02(self): -
'''进入测试页面''' -
print('---用例02---') -
with allure.step('进入测试页面'): -
print('进入测试页面') -
with allure.step('点击测试内容'): -
print('点击测试内容') -
assert 1 -
@allure.epic("属于退出登录标签") -
@allure.feature('退出登录模块') -
class Test01: -
def test_01(self): -
print('---用例03---') -
def test_02(self): -
print('---用例04---')
同样通过cmd进行生成allure报告,然后通过查看allure报告内容,通过下图已经可以很清楚的看出来在增加了用例标签和用例模块

总结
通过上面简单的总结,allure还是很强大的,可以将我们的报告设计的更加好看,对应测试用例模块的划分也很好的展示出来,最最最主要的是领导能看懂了。好了,感谢您的阅读,希望对您有所帮助
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

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


视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方进群即可自行领取。
相关文章:
pytest--allure报告中添加用例详情
前言 前面介绍了如何生成allure的报告,看着allure的页面非常好看,但是感觉少了一些内容,allure还可以增加一些用例详情内容,这样让我们的报告看着更加绚丽。 allure增加用例详情 我们可以在报告测试套件中增加用例详情内容。 …...
【深度学习笔记】9_5 多尺度目标检测
注:本文为《动手学深度学习》开源内容,部分标注了个人理解,仅为个人学习记录,无抄袭搬运意图 9.5 多尺度目标检测 在9.4节(锚框)中,我们在实验中以输入图像的每个像素为中心生成多个锚框。这些…...
Linux--vim
一.什么是vim Vim(Vi IMproved)是一种文本编辑器,通常在Linux和其他类Unix操作系统中使用。它是Vi编辑器的增强版本,提供了更多的功能和定制选项。Vim具有强大的文本编辑和编程功能,支持语法高亮、代码折叠、宏录制、…...
FreeRTOS操作系统学习——中断管理
中断管理介绍 嵌入式实时系统需要对整个系统环境产生的事件作出反应。这些事件对处理时间和响应时间都有不同的要求。事件通常采用中断方式检测,中断服务例程(ISR)中的处理量应当越短越好。ISR是在内核中被调用的, ISR执行过程中,用户的任务…...
DHCP中继实验(思科)
华为设备参考:DHCP中继实验(华为) 一,技术简介 DHCP中继,可以实现在不同子网和物理网段之间处理和转发DHCP信息的功能。如果DHCP客户机与DHCP服务器在同一个物理网段,则客户机可以正确地获得动态分配的IP…...
基于SpringBoot的“心灵治愈交流平台”的设计与实现(源码+数据库+文档+PPT)
基于SpringBoot的“心灵治愈交流平台”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能界面图 登录、用户注册界面图 心灵专…...
【SpringBoot】自定义工具类实现Excel数据新建表存入MySQL数据库
🏡浩泽学编程:个人主页 🔥 推荐专栏:《深入浅出SpringBoot》《java对AI的调用开发》 《RabbitMQ》《Spring》《SpringMVC》《项目实战》 🛸学无止境,不骄不躁,知行合一 文章目录 …...
Retelling|Facebook1
录音 Facebook 1 Retelling|Facebook1 复述转写 Today Im totally going to talk about Facebook. The aspects of this (its)rising fame and fortune, and the rise (小停顿)in(rising) fame and fortune of s founder Mark Zuckerberg, Mark Zuckerberg created this plat…...
【2024-03-12】设计模式之模板模式的理解
实际应用场景:制作月饼 过程描述: 一开始,由人工制作月饼, 第一个:根据脑子里面月饼的形状,先涅出月饼的形状,然后放入面粉和馅料把开口合并起来。 第二个:根据脑子里面月饼的形状&…...
Transformer模型引领NLP革新之路
在不到4 年的时间里,Transformer 模型以其强大的性能和创新的思想,迅速在NLP 社区崭露头角,打破了过去30 年的记录。BERT、T5 和GPT 等模型现在已成为计算机视觉、语音识别、翻译、蛋白质测序、编码等各个领域中新应用的基础构件。因此&#…...
【Kotlin】运算符函数、解构函数、中缀函数
1 一元运算符 1.1 符号和函数 符号函数aa.unaryPlus()-aa.unaryMinus()!aa.not()aa.dec()a--a.inc() 1.2 案例 fun main() {var stu Student("Tom", 13)println(-stu) // 打印: [moT, 31] }class Student(var name: String, var age: Int) {operator fun unaryM…...
springboot268码头船只货柜管理系统
码头船只出行和货柜管理系统的设计与实现 摘要 针对于码头船只货柜信息管理方面的不规范,容错率低,管理人员处理数据费工费时,采用新开发的码头船只货柜管理系统可以从根源上规范整个数据处理流程。 码头船只货柜管理系统能够实现货柜管理…...
Java面试题11MySQL之执行计划到事务及慢查询
你对MySQL执行计划怎么看 执行计划就是SQL的执行查询的顺序,以及如何使用索引查询,返回的结果集的行数 在MySQL中,我们可以通过explain命令来查看执行计划。其语法如下: EXPLAIN SELECT * FROM table_name WHERE conditions;在…...
算法时空复杂度分析:大O表示法
文章目录 前言大O表示法3个时间复杂度分析原则常见的时间复杂度量级空间复杂度参考资料 前言 算法题写完以后,面试官经常会追问一下你这个算法的时空复杂度是多少?(好像作为一名算法工程师,我日常码代码的过程中,并没…...
threejs简单创建一个几何体(一)
1.下包引入 //下包 npm install three yarn add three//引入 import * as THREE from three2.创建场景,摄像机 // 1.创建场景const scene new THREE.Scene()// 2.创建摄像机//第一个参数是视角,一般在60-90之间,第二个参数是场景的尺寸,一般取显示器的宽高,第三个参数是开始位…...
msfconsole数据库连接不了的问题【已解决】
msfconsole数据库连接 1.msf数据库端口 msf使用的是postgresql,这个数据库默认端口是5432 单个模块的使用可以不需要数据库,但是模块与模块之间需要沟通的时候就会用到数据库。 2.查看msf数据库连接状态 db_status #msf内部查看systemctl status p…...
7. Linux进程环境
进程是操作系统运行程序的一个实例,也是操作系统分配资源的单位。在Linux环境中,每个进程都有独立的进程空间,以便对不同的进程进行隔离,使之不会互相影响。深入理解Linux下的进程环境, 可以帮助我们写出更健壮的代码。 在 Linux 中,进程是程序的一次执行过程,它包含了程…...
[linux] 静态图和动态图
动态图(Dynamic Graphs)和静态图(Static Graphs)通常用来描述深度学习框架中模型的构建方式。 静态图(Static Graphs) 静态图是指模型的计算图在运行前就被定义好并且编译优化的方式。也就是说,…...
1.Spring核心功能梳理
概述 本篇旨在整体的梳理一下Spring的核心功能,让我们对Spring的整体印象更加具体深刻,为接下来的Spring学习打下基础。 本片主体内容如下: Bean的生命周期依赖注入的实现Bean初始化原理推断构造方法原理AOP的实现这里要说明一下,我们这里说到的Spring,一般指的是Spring F…...
活动预告:如何培养高质量应用型医学人才?
在大数据时代与“新医科”建设的背景下,掌握先进的医学数据处理技术成为了医学研究与应用的重要技能。 为了更好地培养社会所需要的高质量应用型医学人才,许多高校已经在广泛地开展面向医学生的医学数据分析教学工作。 在“课-训-赛”育人才系列活动的…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...
微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】
微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...
cf2117E
原题链接:https://codeforces.com/contest/2117/problem/E 题目背景: 给定两个数组a,b,可以执行多次以下操作:选择 i (1 < i < n - 1),并设置 或,也可以在执行上述操作前执行一次删除任意 和 。求…...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...
JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题
分区配置 (ptab.json) img 属性介绍: img 属性指定分区存放的 image 名称,指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件,则以 proj_name:binary_name 格式指定文件名, proj_name 为工程 名&…...
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
ZYNQ学习记录FPGA(一)ZYNQ简介
一、知识准备 1.一些术语,缩写和概念: 1)ZYNQ全称:ZYNQ7000 All Pgrammable SoC 2)SoC:system on chips(片上系统),对比集成电路的SoB(system on board) 3)ARM:处理器…...
AD学习(3)
1 PCB封装元素组成及简单的PCB封装创建 封装的组成部分: (1)PCB焊盘:表层的铜 ,top层的铜 (2)管脚序号:用来关联原理图中的管脚的序号,原理图的序号需要和PCB封装一一…...
