pytest结合Allure生成测试报告

news2024/11/18 20:28:48

文章目录

  • 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 os

import pytest


def 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 os

import 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 os

import 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=

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

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

相关文章

【深度学习】微调通义千问模型:LoRA 方法,微调Qwen1.8B教程,实践

官网资料: https://github.com/QwenLM/Qwen/blob/main/README_CN.md 文章目录 准备数据运行微调设置网络代理启动容器执行 LoRA 微调修改 finetune/finetune_lora_single_gpu.sh运行微调 执行推理 在本篇博客中,我们将介绍如何使用 LoRA 方法微调通义千问模型&#…

Qt_快速安装指南

下载Qt在线安装程序(不仔细介绍)注册Qt账号(不仔细介绍)使用快速运行的命令,按照指定的下载地址下载 在Qt指定目录打开cmd命令窗口.\eqt-unified-windows-x86-4.0.1-1-online. exe --mirror https://mirrors.ustc.edu.…

C++:派生类的生成过程(构造、析构)

目录 派生类的生成过程 派生类的构造函数与析构函数: 构造函数: 派生类组合类的构造和析构: 构造函数和析构函数调用顺序: 派生类的生成过程 三步骤: 吸收基类(父类)成员:实现代…

多输入时序预测|GWO-CNN-LSTM|灰狼算法优化的卷积-长短期神经网络时序预测(Matlab)

目录 一、程序及算法内容介绍: 基本内容: 亮点与优势: 二、实际运行效果: 三、算法介绍: 灰狼优化算法: 卷积神经网络-长短期记忆网络: 四、完整程序下载: 一、程序及算法内容…

CLion 2023:专注于C和C++编程的智能IDE mac/win版

JetBrains CLion 2023是一款专为C和C开发者设计的集成开发环境(IDE),它集成了许多先进的功能,旨在提高开发效率和生产力。 CLion 2023软件获取 CLion 2023的智能代码编辑器提供了丰富的代码补全和提示功能,使您能够更…

snmp协议开通教程

目录 一、什么是snmp协议? 二、snmp协议可以用来干什么? 三、snmp协议的开通 1、snmpv2协议开通 2、snmpv3协议开通 一、什么是snmp协议? SNMP(Simple Network Management Protocol)是一种用于网络管理的标准协议&a…

软件测试总结报告.doc

编写测试总结报告主要有以下几个目的: 1. 通过对系统测试结果分析,确保软件质量符合交付要求。 2. 分析测试的过程,产品,资源,信息,为以后的其他测试制定测试计划提供参考。 3&#…

【 JS 进阶 】Web APIs (一)

“生命是一曲奇妙的交响,每一段都是挑战,每一个音符都是机遇。在激情的旋律中,用勇气弹奏,创造出属于自己的华彩人生。” - 贝多芬 了解 DOM 的结构并掌握其基本的操作,体验 DOM 的在开发中的作用 知道 ECMAScript 与 …

【Python如何求出水仙花数】

1、求水仙花数Python代码如下: # 求水仙花数:只需要个十百位的3次幂之和与原数相等 for i in range(100, 1000): # 循环100-999整数i1 i % 10 # 取个位 “%”表示除以后取余数i2 i // 10 % 10 # 取十位i3 i // 100 # 取百位 “//”表示除以后取整…

node.js使用multer在vue中实现图片上传

效果演示 点击上传选择要上传的图片。 上传成功会加载图片的缩略图。 此时,图片以保存在后端的静态目录中。 设计思路 vue中使用input标签上传图片,绑定change事件,事件负责把图片发送给后端,后端通过multer模块处理前端传来的…

通俗易懂理解CA(Coordinate Attention)

一、参考资料 github代码:CoordAttention Coordinate Attention 二、相关介绍 通道注意力与空间注意力 关于通道注意力和空间注意力的详细介绍,请参考另一篇博客:通俗易懂理解通道注意力机制(CAM)与空间注意力机制(SAM) 注意力机制是用…

8、电源管理入门之休眠唤醒

目录 1.基本概念和框架 1.1 基本概念 1.2 休眠唤醒技术框架 2. 核心代码分析 3. 详细分析 3.1 suspend sys节点入口 3.2 state_store&pm_suspend 3.3 enter_state 3.3.1 valid_state 3.3.2 suspend_prepare 3.3.3 suspend_devices_and_enter 3.3.4 dpm_suspend…

基于ssm框架的高校班级管理系统设计与实现

为解决当前高校班级管理中管理方式落后、手段落后及效率低下等问题而以当前主流的互联网技术设计一款高校班级管理系统。该系统采用B/S模式的设计思路而将前端(JSP技术)和后端(SSM框架MySQL数据库)整合于一体并通过Java语言代码编…

可视化 RAG 数据 — EDA for Retrieval-Augmented Generation

目录 一、说明 二、准备好 三、准备文件 四、拆分和创建数据集的嵌入 五、构建 LangChain 六、问一个问题 七、可视化 八、下一步是什么? 九、引用 一、说明 像 GPT-4 这样的大型语言模型 (LLM) 在文本理解和生成方面表现出令人印象深刻的能力…

fpga_直方图均衡

直方图均衡是一种用于图像增强和对比度调整的图像处理技术。它通过重新分配图像中像素的灰度级分布,使得图像的直方图变得更加均衡,从而增强图像的视觉效果。 一 直方图 直方图源于柱状图 二 数字图像与灰度直方图 如图所示,灰度直方图是读…

【Vue渗透】Vue Devtools 浏览器插件

下载地址 Vue Devtools 浏览器插件 Vue站点渗透思路 【Vue渗透】Vue站点渗透思路 简介 Vue Devtools 是 Vue 官方发布的调试浏览器插件,可以安装在 Chrome 和 Firefox 等浏览器上,直接内嵌在开发者工具中,使用体验流畅。Vue Devtools 由…

【扩散模型】【网络结构探索】神经网络扩散:Neural Network Diffusion(论文解读)

项目地址:https://github.com/NUS-HPC-AI-Lab/Neural-Network-Diffusion 文章目录 摘要一、前言二、Nerual Network Diffusion (神经网络扩散)2.1扩散模型(预备知识)2.2 总览2.3 参数自动编码器2.4 参数生成 三、实验3…

harbor(docker仓库)仓库部署 - 高可用

harbor(docker仓库)仓库部署 - 高可用 1. harbor高可用1.1 方案说明1. 双主复制2. 多harbor实例共享后端存储 1.2 部署高可用(多harbor实例共享后端存储)1. 服务器划分2. 安装harbor(先部署一套Harbor,用于…

【LeetCode每日一题】 单调栈的案例84 柱状图中最大的矩形

84 柱状图中最大的矩形 给定 n 个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。 求在该柱状图中,能够勾勒出来的矩形的最大面积。 示例 1: 输入:heights [2,1,5,6,2,3] 输出:10 解释…

unity ui界面优化

优化一个比较复杂的界面,里面有多个rt和组件。 在初次打开这个界面的时候会发生1s多的卡顿,还是非常严重的。 分析 通过profiler分析 1.打开界面时卡顿。 分析:除了update和dotween相关逻辑,主要在于打开时的lua function调用…