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

pytest结合Allure生成测试报告

文章目录

  • 1.Allure配置安装
  • 2.使用
    • 基本命令
    • 报告美化
      • 1.**前置条件**
      • 2.**用例步骤**
      • **3.标题和描述**
      • **4.用例优先级**
  • 3.进阶用法
    • allure+parametrize参数化
    • parametrize+ids
    • parametrize+@allure.title()
  • 4.动态化参数
  • 5.环境信息
    • **方式一**
    • **方式二**
  • 6.用例失败截图

1.Allure配置安装

要求:

​ 1.需要安装jdk环境

​ 2.下载Allure安装包,下载地址:Allure下载地址

​ 3.解压后放置英文路径下并配置环境变量PATH

image-20240221181923327

验证:allure --version

image-20240221182246655

​ 4.安装allure-pytest插件pip install allure-pytest

验证:pip show allure-pytest

image-20240221182447358

2.使用

基本命令

1.使用allure时需要在cmd中执行,可以使用os.system命令省去在cmd窗口中再次执行一次;

import osimport pytestdef test_01():print('开始登录')def test_02():print('上传数据')def test_03():print('数据浏览')if __name__ == '__main__':pytest.main(['-sv','test_allure01.py','--alluredir', './result'])#pytest.main(['test_allure01.py','--alluredir', './result','--clean-alluredir'])os.system('allure generate ./result -o ./report --clean')
  • '-sv','test_allure01.py'表示执行指定的测试文件并在控制台中输出;

    ​ 注:使用‘-sv’后,测试报告中就不会再记录控制台的信息了;

  • '--alluredir', './result'表示创建allure报告的路径,allure生成的报告文件都是json文件

image-20240222100412162

  • '--clean-alluredir'表示清除allure之前生成的json数据,如果不加这个参数会导致:如果对某些用例进行注释或删除,生成的测试报告仍会有之前的记录数据;

  • os.system('allure generate ./result -o ./report --clean')表示在main中转换allure生成的报告文件为html格式;

  • ./result -o :开始执行上面allure 生成的json文件

  • ./report :生成的html格式报告存放路径

  • –clean:清除之前生成的报告,但是不会清除文件,记录仍会保留

  • 使用pytest -h可以查看相关参数

    image-20240223094030734

    –alluredir=DIR 在指定目录中生成 Allure 报告(目录可能不存在)

    –clean-alluredir 如果存在,则清理 alluredir 文件夹

    –allure-no-capture 不将 pytest 捕获的日志/标准输出/标准错误附加到报告中

    –inversion=INVERSION 运行不在测试计划中的测试

执行完后会生成很多文件,右键浏览器中打开index.html文件

image-20240222100828308

报告美化

1.前置条件

前置条件只要在测试用例中使用到,测试报告中会自动添加上用例前置函数的名称;

conftest.py

import pytest@pytest.fixture
# @allure.title('前置准备')  # 可以修改fix01的名字
def fix01():print('用例准备前置工作')

test_allure01.py

import osimport allure
import pytest@allure.step('步骤1:执行登录')
def login():print('开始登录')print('输入账号')print('输入密码')@allure.step('步骤2:上传数据')
def upload_data():print('点击上传按钮')print('上传数据')def test_01(fix01):# 测试用例中调用登录业务login()def test_02():# 调用登录业务upload_data()

image-20240222102748961

image-20240222141721279

2.用例步骤

使用装饰器@allure.step()在需要说明的测试步骤函数上装饰后,在测试用例的测试步骤上就能显示出来;

@allure.step('步骤1:执行登录')会带上函数中的传参和对应的值

@allure.step("登陆")
def log(user, pwd):print(user)print(pwd)@pytest.fixture
def fix01():log('zz', '123')print('用例准备前置工作')

image-20240222135754308

``with allure.step(‘步骤1:执行登录’)`不会带上函数里面的传参

def log(user, pwd):with allure.step('用户名'):print(user)with allure.step('密码'):print(pwd)@pytest.fixture
def fix01():log('zz', '123')print('用例准备前置工作')

image-20240222135955772

3.标题和描述

import osimport allure
import pytest@allure.step('步骤1:执行登录')
def login():print('开始登录')print('输入账号')print('输入密码')@allure.step('步骤2:上传数据')
def upload_data():print('点击上传按钮')print('上传数据')class TestUpload:@allure.story("一级模块")  # 表示一级模块,同名的一级模块会把用例归纳在一起@allure.title("登录")  # 用例的title@allure.issue("http://127.0.0.1:8080/zentao/buge-login.html", name=

相关文章:

pytest结合Allure生成测试报告

文章目录 1.Allure配置安装2.使用基本命令报告美化1.**前置条件**2.**用例步骤****3.标题和描述****4.用例优先级**3.进阶用法allure+parametrize参数化parametrize+idsparametrize+@allure.title()4.动态化参数5.环境信息**方式一****方式二**6.用例失败截图1.Allure配置安装 …...

Linux--ACL权限管理

一.ACL权限管理简介 ACL(Access Control List,访问控制列表)是一种文件权限管理机制,它提供了比传统的UGO(用户、组、其他)权限更灵活的权限设置方式。以下是ACL的一些主要功能: 针对特定用户或…...

Xcode中App图标和APP名称的修改

修改图标 选择Assets文件 ——> 点击Applcon 换App图标 修改名称 点击项目名 ——> General ——> Display Name...

Spring 手动实现Spring底层机制

目录 一、前言 二、Spring底层整体架构 1.准备工作 : 2.架构分析 : (重要) 3.环境搭建 : 三、手动实现Spring容器结构 1.自定义注解 : 1.1 Component注解 1.2 Scope注解 2.自定义组件 : 3.自定义用于封装Bean信息的BeanDefinition类&a…...

CSV数据导入到ClickHouse数据库

问题描述:手头上有一个数据量较大的CSV文件,希望导入到指定的ClickHouse数据中,ClickHouse部署在服务器中。 解决方案:通常来说,数据量较少的CSV文件可以直接通过DBeaver软件的可视化界面导入数据。 若数据量较大&…...

第十二天-ppt的操作

目录 创建ppt文档 安装 使用 段落的使用 段落添加数据 段落中定义多个段落 自定义段落 ppt插入表表格 PPT插入图片 读取ppt 读取ppt整体对象 ​编辑 获取ppt文本 获取表格内容 创建ppt文档 安装 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple python…...

计算机网络-网络层,运输层,应用层

网络层/网际层 网络层的主要任务包括: 提供逻辑上的端到端通信:网络层负责确定数据的传输路径,使数据能够从源主机传输到目标主机,即实现端到端的通信。数据包的路由和转发:网络层根据目标主机的地址信息&#xff0c…...

Python爬虫学习

1.1搭建爬虫程序开发环境 爬取未来七天天气预报 from bs4 import BeautifulSoup from bs4 import UnicodeDammit import urllib.request url"http://www.weather.com.cn/weather/101120901.shtml" try:headers{"User-Agent":"Mozilla/5.0 (Windows …...

台式电脑黑屏无法开机怎么办 电脑开机黑屏的解决方法

经常有朋友电脑一开机,发现电脑黑屏没法用了。很多人看到黑屏就懵了,以为电脑要报废了,这是什么原因?电脑开机黑屏怎么解决?一般常说的黑屏故障分为两种,显示屏没有任何显示以及显示英文。下面小编要为大家带来的是台式电脑黑屏…...

【Docker】初学者 Docker 基础操作指南:从拉取镜像到运行、停止、删除容器

在现代软件开发和部署中,容器化技术已经成为一种常见的方式,它能够提供一种轻量级、可移植和可扩展的应用程序打包和部署解决方案。Docker 是目前最流行的容器化平台之一,它提供了一整套工具和技术,使得容器的创建、运行和管理变得…...

突破编程_C++_面试(数组(1))

面试题1:详细说明一下数组名是什么? 在 C 中,数组名代表数组首元素的地址。更具体地说,数组名是一个指向数组第一个元素的常量指针。这意味着,当使用数组名时,实际上是在使用指向数组第一个元素的指针。 例…...

基于springboot+vue的靓车汽车销售网站(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…...

【知识整理】Git Commit Message 规范

一. 概述 前面咱们整理过 Code Review 一文,提到了 Review 的重要性,已经同过gitlab进行CodeReview 的方式,那么本文详细说明一下对CodeReivew非常重要的Git Commit Message 规范。 我们在每次提交代码时,都需要编写 Commit Mes…...

HarmonyOS学习--三方库

文章目录 一、三方库获取二、常用的三方库1. UI库:2. 网络库:3. 动画库: 三、使用开源三方库1. 安装与卸载2. 使用 四、问题解决1. zsh: command not found: ohpm 一、三方库获取 在Gitee网站中获取 搜索OpenHarmony-TPC仓库,在t…...

【服务器数据恢复】FreeNAS+ESXi虚拟机数据恢复案例

服务器数据恢复环境: 一台服务器通过FreeNAS(本案例使用的是UFS2文件系统)实现iSCSI存储,整个UFS2文件系统作为一个文件挂载到ESXi虚拟化系统(安装在另外2台服务器上)上。该虚拟化系统一共有5台虚拟机&…...

【GPT-2】论文解读:Language Models are Unsupervised Multitask Learners

文章目录 介绍zero-shot learning 零样本学习 方法数据Input Representation 结果 论文:Language Models are Unsupervised Multitask Learners 作者:Alec Radford, Jeff Wu, Rewon Child, D. Luan, Dario Amodei, I. Sutskever 时间:2019 介…...

基于机器学习、遥感和Penman-Monteith方程的农田蒸散发混合模型研究_刘燕_2022

基于机器学习、遥感和Penman-Monteith方程的农田蒸散发混合模型研究_刘燕_2022 摘要关键词 1 绪论2 数据与方法2.1 数据2.2 机器学习算法2.3 Penman-Monteith方程2.4 Medlyn公式2.5 模型性能评估 3 基于机器学习算法的混合模型估算农田蒸散量的评价与比较4 利用人工神经网络算法…...

博客 cn 站搭建 v3 v3.1

1. 架构设计 v3.1 版本 2. v2.x 存在的痛点 在v2.x版本中,围绕 服务器 遇到了两个主要的问题: 服务器成本高:博客以静态页面为主,理论上可以实现无服务器部署,但是为了防止恶意攻击,不得不使用服务器进…...

2024全国水科技大会暨流域水环境治理与水生态修复论坛(六)

论坛召集人 冯慧娟 中国环境科学研究院流域中心研究员 刘 春 河北科技大学环境与工程学院院长、教授 一、会议背景 为深入贯彻“山水林田湖是一个生命共同体”的重要指示精神,大力实施生态优先绿色发展战略,积极践行人、水、自然和谐共生理念&…...

Python实战:读取MATLAB文件数据(.mat文件)

Python实战:读取MATLAB文件数据(.mat文件) 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程 👈 希望得到您的订阅…...

技术赋能B端拓客:号码核验行业的迭代与价值升级,氪迹科技法人股东号码核验系统,阶梯式价格

2026年,B端市场竞争进入白热化阶段,拓客逻辑已从“规模扩张”转向“价值深耕”,“精准、高效、低成本”成为所有拓客团队的核心追求。号码核验作为B端拓客的前置基础性环节,其服务质量直接决定线索价值、人力效能与投入回报比&…...

EVA-01效果展示:多场景图文问答案例,看AI如何精准识别与深度分析

EVA-01效果展示:多场景图文问答案例,看AI如何精准识别与深度分析 1. 视觉神经同步系统初体验 当你第一次打开EVA-01视觉神经同步系统,最直观的感受就是它独特的"暴走白昼"界面设计。与传统AI工具常见的深色背景不同,这…...

Chord视频分析工具实操手册:预览区播放控制与分析结果同步验证

Chord视频分析工具实操手册:预览区播放控制与分析结果同步验证 1. 工具概览与核心价值 Chord视频时空理解工具是一款基于Qwen2.5-VL架构开发的本地智能视频分析解决方案。这个工具专门针对视频内容分析需求设计,能够在完全离线的环境下对视频进行深度理…...

UCI心脏病数据集实战:用XGBoost构建预测模型的全流程指南(附特征重要性分析)

UCI心脏病数据集实战:用XGBoost构建预测模型的全流程指南(附特征重要性分析) 医疗数据科学正在重塑现代医学诊断方式。当我在克利夫兰诊所实习期间,亲眼见证了机器学习模型如何辅助医生识别高风险心脏病患者。本文将带您完整复现这…...

**跨平台开发新范式:Flutter + Dart实战构建高性能多端应用**在移动与桌面融

跨平台开发新范式:Flutter Dart 实战构建高性能多端应用 在移动与桌面融合加速的今天,跨平台开发早已不是“妥协”的代名词,而是开发者提升效率、降低维护成本的核心策略。本文将带你深入 Flutter Dart 的实战体系,通过真实项目…...

数组运算18题:从递归求和解到Kadane算法

1. 数组运算进阶指南:18道经典题目深度解析数组作为最基本的数据结构,在编程面试和实际开发中无处不在。掌握数组的各种运算技巧不仅能帮助你在面试中脱颖而出,更能提升日常编码的效率和质量。本文将深入解析18个经典的数组运算题目&#xff…...

爬虫自动化(DrissionPage)

目录 ?一.介绍: 下载DrissionPage,还是我们熟悉的pip: 环境准备: ?二.基本代码: 它对于的导包和类使用: 窗口的设置: 和获取的页面的滑动: 3.进一步认识DrissionPage: 浏览器可以多开…...

企业员工福利平台选型:技术架构与对接难点拆解

企业员工福利平台选型:技术架构与对接难点拆解“选对企业员工福利平台,技术架构与系统对接是决定落地成败的关键——忽略技术适配性的选型,往往会让福利项目陷入‘上线易、用着难’的困境。”随着企业数字化转型加速,员工福利从“…...

FreeRTOS实战:如何用TIM2定时器精准统计任务运行时间(附完整代码)

FreeRTOS任务性能调优实战:基于硬件定时器的精准统计与优化 在嵌入式系统开发中,任务执行时间的精确测量是性能调优的基础。想象一下,当你发现系统响应变慢时,如何快速定位哪个任务消耗了过多CPU资源?或者当系统出现偶…...

CSS 容器查询:组件级响应式设计

CSS 容器查询:组件级响应式设计代码如诗,容器如画。让我们用容器查询的强大能力,创建真正自适应的组件。什么是容器查询? 容器查询(Container Queries)是 CSS 中一项革命性的特性,它允许我们根据…...