当前位置: 首页 > news >正文

Allure 在 Python 中的安装与使用

Allure 是一个灵活轻量级的测试报告工具,它能够生成详细且富有洞察力的测试报告。在 Python 中,Allure 通常与 Pytest 结合使用,以提供更加丰富的测试结果展示。下面我将介绍关于如何在 Python 中使用 Allure 的详细操作。

一、环境准备

在开始之前,确保你的环境中已经安装了 Python 和 Pytest。接下来,你需要安装 Allure 的命令行工具和 Python 库。

安装 Allure 命令行工具:

pip install allure-cmdline

安装 Allure Python 库:

pip install allure-pytest

二、编写测试用例

创建一个 Python 文件,比如 test_example.py,并编写以下代码:

import pytest
import allure# 定义一个测试函数,使用 allure 的 feature 来标记测试的特性
@allure.feature("加法运算测试")
class TestAddition:# 使用 allure 的 story 来标记具体的测试场景@allure.story("测试两个正数相加")def test_add_positive_numbers(self):# 一个简单的断言assert 3 + 4 == 7# 使用 pytest 的 parametrize 来实现参数化测试 @pytest.mark.parametrize("x,y,expected", [(1, 2, 3), (3, 4, 7)])@allure.story("测试加法的参数化场景")def test_add_with_parameters(self, x, y, expected):# 参数化测试的断言assert x + y == expected# 使用 allure 的 step 来记录测试步骤
@allure.step("执行加法操作")
def add_and_print_result(x, y):result = x + yprint(f"The result of {x} + {y} is {result}")return result# 测试用例中使用 allure step
def test_add_step(self):with allure.step("步骤1:输入两个参数"):x = 2y = 3result = add_and_print_result(x, y)with allure.step("步骤2:验证结果"):assert result == 5

三、运行测试用例

使用 Pytest 运行测试,并生成 Allure 报告:

pytest test_example.py --alluredir=allure-results

这条命令会执行 test_example.py 中的测试用例,并将 Allure 报告的生成结果存放在 allure-results 目录中。

四、生成 Allure 报告

在命令行中使用 Allure 命令行工具生成报告:

allure serve allure-results

执行该命令后,Allure 会启动一个本地服务器,并在默认的 Web 浏览器中打开生成的 Allure 报告。

五、Allure 报告的定制化

Allure 报告支持定制化,你可以通过添加不同的注解来丰富报告的内容。

自定义描述

使用 allure.description 来为测试用例添加描述:

@allure.description("""
这是一个复杂的测试用例,它执行多个步骤来验证登录流程。
""")
def test_complex_login(self):# ...

附件

你可以在测试用例中添加附件,比如截图或文本日志:

def test_with_attachment(self):with allure.step("生成报告并附加日志"):allure.attach("这是日志文件的内容", body="文本内容", attachment_type=allure.attachment_type.TEXT)

六、总结

Allure 是一个功能强大的测试报告工具,它能够提供清晰、易于理解的测试结果。通过上述步骤,你可以在 Python 中轻松地使用 Allure 来增强你的测试报告。

七、附录

  • Allure 官方文档:Allure GitHub
  • Pytest 插件:allure-pytest 安装和使用说明。

相关文章:

Allure 在 Python 中的安装与使用

Allure 是一个灵活轻量级的测试报告工具,它能够生成详细且富有洞察力的测试报告。在 Python 中,Allure 通常与 Pytest 结合使用,以提供更加丰富的测试结果展示。下面我将介绍关于如何在 Python 中使用 Allure 的详细操作。 一、环境准备 在…...

python实现动态时钟功能

欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 一.前言 时钟,也被称为钟表,是一种用于测量、记录时间的仪器。时钟通常由时针、分针、秒针等计时仪器组成,是现代社会不可或缺的一种计时工具。它的发明和使用极大地改变了人类的生活方式和时间观念。 时钟的类型有很多,…...

QueryPerformanceCounter实现高精度uS(微妙)延时

参考连接 C# 利用Kernel32的QueryPerformanceCounter封装的 高精度定时器Timer_kernel32.dll queryperformancecounter-CSDN博客https://blog.csdn.net/wuyuander/article/details/111831973 特此记录 anlog 2024年5月11日...

Logstash详解

Logstash详解:构建强大日志收集与处理管道的利器 一、引言 在大数据和云计算的时代,日志数据作为企业运营和故障排查的重要依据,其收集、处理和分析能力显得尤为重要。Logstash,作为一款强大的日志收集、处理和转发工具&#xf…...

QT设计模式:适配器模式

基本概念 适配器模式(Adapter Pattern)是一种结构型设计模式,允许将一个类的接口转换成客户端所期望的另一个接口,可以让原本由于接口不兼容而不能一起工作的类能够一起工作。 适配器模式需要实现的部分为: Target类…...

开发规范相关

1.对IDEA集成的代码检查 或 AliBaBa的代码检查 定义的规则进行取消或新增 代码自动扫描检查对于代码规范来说至关重要,但有时,我们希望忽略掉某些不必要的检查,比如忽略掉这个检查 可以如下操作 此时即可不再提示告警...

C++ 容器(五)——Set操作

一、Set容器定义 set 是一个有序关联容器,其中的元素按照升序排列,且不允许重复元素。 set 中的元素是唯一的,即任意两个元素不能相等。 1、set 可以用来对元素进行排序,因为它会自动对元素进行有序排列。 2、set 可以用来去重,当我们需要对一个容器中的元素进行去重操…...

【数字IC设计】芯片设计中的RDC

RDC问题定义 在芯片设计中,RDC是reset domain crossing 的缩写,类似于CDC(clock domain crossing),由于现在SOC芯片是有很多ECUs组成,为了使整个系统能够快速从复位中恢复, 用户希望SOC里面每个ECU模块都可以有自己独立的异步复位信号,这样可以在出问题的时候只复位有错…...

spark history server异常

现象:spark 日志文件突然新增了很多.hprof文件, 查找日志spark配置参数spark_log_dir进入日志目录: 查看historyServer日志: Spark Command: /usr/lib/jvm/java-1.8.0/bin/java -cp /opt/apps/JINDOSDK/jindosdk-current/lib/*:/…...

一个优秀 Maven 项目,各 Model 间最佳继承设计方案

1.单一职责原则 (Single Responsibility Principle): 每个模块应该专注于执行一个清晰且明确定义的功能,遵循单一职责原则,以降低模块的复杂性。 2.高内聚性 (High Cohesion): 模块内的组件和类应该紧密相关,共同实现模块的目标。高内聚性…...

MATLAB概述

文章目录 目录结构搜索路径高频命令clearclf/closeclc/homewho/whosformatsave/loadcd/pwdhelp/docsprintf/fprintf/disp tips MATLAB [1] 是美国 MathWorks公司出品的商业 数学软件,用于算法开发、数据可视化、数据分析以及 数值计算的高级技术计算语言和交互式…...

Redis5.0的Stream数据结构

Redis 5.0中引入的Stream数据结构是一种新的、持久化的、可查询的、可扩展的消息队列服务。它可以被视为一个日志或消息队列,由一个有序的、不断增长的日志序列来存储事件流数据。以下是关于Redis 5.0 Stream数据结构的详细解释: 一、Stream数据结构概述…...

避坑指南!RK3588香橙派yolov5生成RKNN模型!

地址1,转换模型 地址2,转换模型 地址3,解决ppa 下载k2 本文目录 一、将.pt模型转为onnx模型文件。(Windows)二、将.onnx模型转为.rknn模型文件。(Linux)三、将.rknn模型部署到开发板RK3588中…...

算法学习笔记(Nim游戏)

N i m Nim Nim游戏 n n n堆物品,每堆有 a i a_i ai​个,每个玩家轮流取走任意一堆的任意个物品,但不能不取,取走最后一个物品的人获胜。 N i m Nim Nim游戏是一种经典的公平组合游戏。现在对它进行分析。 首先定义两个博弈中的状…...

第13节 第二种shellcode编写实战(2)

在第二种shellcode编写实战(1)的基础上,新增加一个CAPI类,将所有用到的函数都在这个类中做动态调用的处理,这样使得整个shellcode功能结构更加清晰。 1. 新建类CAPI(即api.h和api.cpp两个文件): api.h&…...

【QuikGraph】C#调用第三方库实现迪杰斯特拉(Dijkstra)算法功能

QuikGraph库介绍 项目地址:https://github.com/KeRNeLith/QuikGraph QuikGraph为.NET提供了通用的有向/无向图数据结构和算法。 QuikGraph提供了深度优先搜索、广度优先搜索、A*搜索、最短路径、k最短路径,最大流量、最小生成树等算法。 QuikGraph最初…...

查看ubuntu当前路径的剩余存储空间

要查看Ubuntu当前路径所在磁盘分区的剩余存储空间,应该使用df命令,而不是du命令,因为df命令能显示磁盘分区的使用情况,包括总容量、已用空间和可用空间。为了使输出更易于阅读,可以加上-h选项。如果你还想知道特定挂载…...

利用预训练模型和迁移学习打造智能狗门

引言 在深度学习的世界里,预训练模型和迁移学习是两个强大的概念,它们允许我们利用已有的模型和知识来解决新的问题。在本博客中,我们将探索如何使用预训练的模型来创建一个智能狗门,这个系统将能够识别狗并允许它们进入&#xf…...

常用Linux命令详细总结

一、文档编辑、过滤、查看命令 1、cp 复制文件和目录 -a 复制文件并保持文件属性 -d 若源文件为链接文件,则复制链接文件属性而非文件本身 -i 覆盖文件前提示,如果不要提示,在命令前加上\ -r 递归复制,通常用于目录的复制 …...

基于SpringBoot的竹宣非遗宣传网站

摘要 随着互联网的普及和数字化时代的到来,竹编等非物质文化遗产的保护与传承面临新的机遇和挑战。该研究旨在使用SpringBoot后端框架与Vue前端框架,构建一个竹编非遗宣传网站,通过丰富的展示形式和交互体验,提升公众对竹编这一非…...

3分钟免费汉化Android Studio:社区中文语言包完整安装教程

3分钟免费汉化Android Studio:社区中文语言包完整安装教程 【免费下载链接】AndroidStudioChineseLanguagePack AndroidStudio中文插件(官方修改版本) 项目地址: https://gitcode.com/gh_mirrors/an/AndroidStudioChineseLanguagePack 还在为Andr…...

抖音内容采集系统架构设计与工程实践

抖音内容采集系统架构设计与工程实践 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support. 抖音批量下载工具&#x…...

告别传统打捞船:浅析‘子母船’协同算法如何解决水库、湖泊的浅水区垃圾清理难题

水域清洁革命:子母船协同算法如何重塑浅水区垃圾治理格局 清晨的阳光洒在湖面上,波光粼粼中却漂浮着刺眼的塑料瓶和食品包装——这是全球水库、湖泊管理者每天都要面对的环保噩梦。传统清漂方式在浅水区域显得力不从心,而一种融合了分布式机…...

WSL2网络抽风?能ping通宿主机但上不了网?试试这个一劳永逸的DNS修复脚本

WSL2网络故障终极解决方案:自动化DNS修复脚本实战指南 你是否遇到过这样的场景:在WSL2中能够ping通宿主机,却无法访问任何外网资源?每次重启后手动修改的/etc/resolv.conf配置总是被神秘重置?这种恼人的网络问题已经成…...

极为罕见!35米宽小行星近距离掠过地球

【环球时报特约记者 陈山】据美国全国广播公司(NBC)网站19日报道,一颗直径约50到115英尺(1英尺约合0.3米)的小行星于18日近距离飞掠地球,成为近年来非常罕见的一幕。小行星从地球附近掠过的概念图。欧洲航天…...

Faster-Whisper-GUI:高效本地语音识别与字幕生成终极指南

Faster-Whisper-GUI:高效本地语音识别与字幕生成终极指南 【免费下载链接】faster-whisper-GUI faster_whisper GUI with PySide6 项目地址: https://gitcode.com/gh_mirrors/fa/faster-whisper-GUI 在人工智能语音技术快速发展的今天,本地化语音…...

FPGA资源吃紧?看Artix7-35T如何“精打细算”实现MIPI视频解码与HDMI输出

Artix7-35T极限优化:在资源受限FPGA上实现MIPI-HDMI全流程处理 当医疗内窥镜或工业检测设备需要嵌入式图像处理时,工程师们常常面临一个残酷的现实:既要实现复杂的MIPI视频处理流水线,又不得不使用Artix7-35T这类入门级FPGA。这颗…...

手持式雷达车辆测速仪:基于多普勒效应的移动测速工具

手持式雷达车辆测速仪是一种基于多普勒效应原理的速度测量设备。它通过向目标发射24GHz无线电波,接收反射回来的信号,根据频率变化计算出目标的运动速度。设备重量约504g,内置3600mAh电池,续航可达10小时以上,支持手持…...

影刀RPA跨境店群自动化实战:Python协同Chromium底层调度与容器化环境隔离系统架构

定了。在这场旷日持久的跨境电商反爬风控拉锯战中,我们终于用一套基于 Python 深度协同的分布式微服务调度架构,重塑了跨境千店矩阵的自动化底座。 这几天,科技圈被“DeepSeek V4 首发华为昇腾芯片,国产 AI 开始打破英伟达 CUDA …...

嵌入式开发实战:基于RZ/G2L异构处理器与Linux的工业物联网平台深度体验

1. 项目概述:一次“零成本”的嵌入式开发深度体验最近在嵌入式开发圈里,一个消息引起了不小的讨论:米尔电子联合瑞萨,推出了基于RZ/G2L高性能处理器的开发板免费试用活动。简单来说,就是开发者可以申请免费借用这块开发…...