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

pytest自动化框架之allure测试报告的用例描述设置

allure测试报告的用例描述相关方法;如下图

allure标记用例级别severity

在做自动化测试的过程中,测试用例越来越多的时候,如果执行一轮测试发现了几个测试不通过,我们也希望能快速统计出缺陷的等级。

pytest结合allure框架可以对用例的等级做详细的划分。

allure对用例的等级划分成五个等级:

  • blocker 阻塞缺陷(功能未实现,无法下一步)
  • critical 严重缺陷(功能点缺失)
  • normal 一般缺陷(边界情况,格式错误)
  • minor 次要缺陷(界面错误与ui需求不符)
  • trivial 轻微缺陷(必须项无提示,或者提示不规范)

写法一:

@allure.severity("blocker")
@allure.severity("critical")
@allure.severity("normal")
@allure.severity("minor")
@allure.severity("trivial")

写法二:

@allure.severity(allure.severity_level.Blocker)
@allure.severity(allure.severity_level.critical)
@allure.severity(allure.severity_level.normal)
@allure.severity(allure.severity_level.Minor)
@allure.severity(allure.severity_level.Trival)

如果想根据用例等级去执行用例可以使用下面的参数:

 allure命令行参数allure-severities

pytest --alluredir=./report/allure --allure-severities=blocker

pytest --alluredir=./report/allure --allure-severities=blocker,critical

执行代码如下:

import os
import pytest
# 根据优先级过滤 --allure-severities=blocker,normal
pytest.main(['-s','-v','--alluredir=./allure_json_path','--clean-alluredir','--allure-severities=blocker'])
os.system('allure generate %s -o %s --clean'%('./allure_json_path','./allure_html_path'))

敏捷模型中的常用概念

allure测试报告用例描述相关方法实战

1、使用pycharm工具新建一个项目test_suites,在该目录下新建login_module模块、product_module模块,如下图

2、在login_module模块下新建 test_login.py文件下

代码如下:

import allure
# 用例步骤  写法一 用例步骤可写在公有层
@allure.step('步骤一:打开小叮当电商登录界面')
def step_01():
    pass

# epic 项目名称描述
@allure.epic('[epic] 小叮当电商系统')
# feature 项目版本
@allure.feature('[feature] 小叮当电商系统_V1.0')
class TestLogin:
    # 用例模块
    @allure.story('[story] 用户登录模块')
    # 用例标题
    @allure.title('[Title] 验证正确的用户名和密码能否成功登录')
    # 管理测试用例的链接地址
    @allure.testcase(url='http://47.107.187.45/zentao/www/index.php?m=testcase&f=view&caseID=17&version=1',name='用例连接')
    # 管理缺陷的链接地址
    @allure.issue(url='http://47.107.187.45/zentao/www/index.php?m=bug&f=browse&productID=4',name='缺陷地址')
    # 用例描述
    @allure.description('登录测试用例 执行人:小白')
    # 定义一个链接
    @allure.link(url='https://www.baidu.com/',name='百度搜素')
    # 用例等级 blocker、critical、normal、minor、trivial
    # @allure.severity('normal')  # 用例等级写法1
    # 用例等级 blocker、critical、normal、minor、trivial
    @allure.severity(allure.severity_level.BLOCKER)  # 用例等级写法2
    def test_login_case_01(self):
        step_01()
        # 用例步骤 写法二 用例步骤可写在方法内部
        with allure.step('步骤二:输入用户名admin'):
            pass
        with allure.step('步骤三:输入密码123456'):
            pass
        # @allure.attach 报告添加附件
        with open('C:/Users\Jeff\PycharmProjects\APP_AUTO_DEMO/test_suites\login_module/test.jpeg', 'rb') as img_file:
            img_file_obj = img_file.read()
            allure.attach(img_file_obj,'测试报错截图',allure.attachment_type.JPG)

        print("TestLogin test_login_case_01",end=' ')
        assert True

    @allure.story('[story] 用户登录模块')
    @allure.title('[Title] 验证错误的用户名和密码能否正确处理')
    def test_login_case_02(self):
        print("TestLogin test_login_case_02",end=' ')
        assert True

3、在product_module模块下新建test_product.py文件

代码如下:

import allure

@allure.epic('[epic] 小叮当电商系统')
@allure.feature('[feature] 小叮当电商系统_V1.0')
class TestProduct:
    @allure.story('[story] 商品模块')
    @allure.title('[Title] 验证能够成功添加商品到购物车')
    def test_product_case_01(self):
        print("TestProduct test_product_case_01",end=' ')
        assert True
    @allure.story('[story] 商品模块')
    @allure.title('[Title] 验证商品能成功支付')
    def test_product_case_02(self):
        print("TestProduct test_product_case_02",end=' ')
        assert True

4、在项目test_suites根目录下新建执行文件run_cases.py

代码如下:

import os
import pytest

pytest.main(['-s','-v','--alluredir=./allure_json_path','--clean-alluredir'])
os.system('allure generate %s -o %s --clean'%('./allure_json_path','./allure_html_path'))

5、执行run_cases.py文件,在项目test_suites目录下生成两个目录文件夹 allure_json_path和allure_html_path

allure_json_path目录下生的是allure测试报告的json数据源

allure_html_path目录下生成的是allure测试报告html

如下图:

使用谷歌浏览器打开allure_html_path目录下index.html文件;如下图

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关文章:

pytest自动化框架之allure测试报告的用例描述设置

allure测试报告的用例描述相关方法;如下图 allure标记用例级别severity 在做自动化测试的过程中,测试用例越来越多的时候,如果执行一轮测试发现了几个测试不通过,我们也希望能快速统计出缺陷的等级。 pytest结合allure框架可以对…...

在编程中遇到的问题总结

IDEA空包粘黏问题 创建好目录以后会发现idea自动将空包合并在一起了,而且点击设置里面也没有Compact Middle Package Compact Middle Package如果不在设置的主面板上,则点击Tree Appearance,会发现Compact Middle Package在Tree Appearance里…...

【数据库设计和SQL基础语法】--SQL语言概述--SQL的基本结构和语法规则(二)

一、数据控制语言(DCL) 1.1 授权(GRANT) 数据控制语言(DCL)是SQL的一个子集,用于控制数据库中的数据访问和权限。GRANT语句是DCL中的一种,用于向用户或角色授予特定的数据库操作权…...

easyexcel多级表头导出各级设置样式(继承HorizontalCellStyleStrategy实现)

easyexcel多级表头导出各级设置样式(继承HorizontalCellStyleStrategy实现) package com.example.wxmessage.entity;import com.alibaba.excel.metadata.data.WriteCellData; import com.alibaba.excel.write.handler.context.CellWriteHandlerContext;…...

QMLfor python pyside6

QML QML是一种用于创建用户界面的声明性语言,它是Qt生态系统中的一部分。QML使用JavaScript语言和其独特的语法来定义用户界面组件,使得开发人员可以轻松地创建现代化、漂亮而又响应迅速的应用程序。 QML是基于QtQuick技术构建的,QtQuick是…...

几何教学工具 Sketchpad几何画板 mac软件特色

Sketchpad几何画板 for Mac是一款适用于macOS系统的几何教学工具,用户可以在其画板上进行各种几何图形的绘制、演示,帮助教师了解学生的思路和对概念的掌握程度。此外,Sketchpad更深层次的功能则是可以用来进行几何交流、研究和讨论&#xff…...

华清远见嵌入式学习——C++——作业5

作业要求&#xff1a; 代码&#xff1a; #include <iostream>using namespace std;//沙发 类 class Sofa { private:string sitting; //是否可坐double *cost; //花费 public://无参构造函数Sofa(){}//有参构造函数Sofa(string s,double c):sitting(s),cost(new double(…...

Java中的类与类之间的关系

1、Java中类与类之间的关系 依赖&#xff08;Dependency&#xff09;&#xff1a;一个类依赖于另一个类的定义。这种关系通常通过在一个类的方法中创建另一个类的实例来实现。依赖关系是类与类之间最基本的关系之一。关联&#xff08;Association&#xff09;&#xff1a;关联…...

全新仿某度文库网站源码/在线文库源码/文档分享平台网站源码/仿某度文库PHP源码

源码简介&#xff1a; 全新仿某度文库网站源码/在线文库源码&#xff0c;是以phpMySQL开发的&#xff0c;它是仿某度文库PHP源码。有功能免费文库网站 文档分享平台 实现文档上传下载及在线预览。 仿百度文库是一个以phpMySQL进行开发的免费文库网站源码。仿某度文库实现文档…...

HTTPS的安全问题及应对方案

HTTPS是一种在网络通信中广泛使用的安全协议&#xff0c;通过使用SSL/TLS加密来保护数据的传输。然而&#xff0c;即使在使用了HTTPS的情况下&#xff0c;仍然存在一些潜在的安全问题。本文将深入探讨HTTPS的安全问题&#xff0c;并提供一些有效的应对策略&#xff0c;以确保数…...

TensorRT-LLM保姆级教程(一)-快速入门

随着大模型的爆火&#xff0c;投入到生产环境的模型参数量规模也变得越来越大&#xff08;从数十亿参数到千亿参数规模&#xff09;&#xff0c;从而导致大模型的推理成本急剧增加。因此&#xff0c;市面上也出现了很多的推理框架&#xff0c;用于降低模型推理延迟以及提升模型…...

使用Redis构建简易社交网站(3)-状态与信息流

目的 本文目的&#xff1a;实现获取主页时间线和状态推送功能。&#xff08;完整代码附在文章末尾&#xff09; 相关知识 在我上一篇文章 《使用Redis构建简易社交网站(2)-处理用户关系》中提到了实现用户关注和取消关注功能。 那这篇文章将教会你掌握&#xff1a;1&#x…...

Python,非二进制的霍夫曼编码

一般来说&#xff0c;霍夫曼编码是二进制的&#xff0c;但是非二进制的也可以。本文中&#xff0c;通过修改N&#xff0c;可以得到任意进制的霍夫曼编码。 非二进制编码的作用&#xff1a;例如&#xff0c;设计九键输入法&#xff0c;希望根据拼音的概率来编码&#xff0c;常用…...

详解—[C++数据结构]—红黑树

目录 一、红黑树的概念 ​编辑二、红黑树的性质 三、红黑树节点的定义 四、红黑树结构 五、红黑树的插入操作 5.1. 按照二叉搜索的树规则插入新节点 5.2、检测新节点插入后&#xff0c;红黑树的性质是否造到破坏 情况一: cur为红&#xff0c;p为红&#xff0c;g为黑&…...

甘草书店记:6# 2023年10月31日 星期二 「梦想从来不是一夜之间实现的」

甘草书店 今天收到甘草书店第二版装修设计平面图&#xff0c;与理想空间越来越近。 于我而言&#xff0c;每一次世俗意义上所谓的成功都不如文艺作品中表现的那样让人欢腾雀跃。当你用尽120分努力&#xff0c;达到了冲刺满分的实力时&#xff0c;得个优秀的成绩也并不意外。 …...

基于Java SSM车辆租赁管理系统

现代生活方式下&#xff0c;人们经常需要租赁车辆&#xff0c;比如婚庆、自驾游等&#xff0c;车辆租赁公司应运而生&#xff0c;车辆租赁管理系统就是借助计算机对车辆租赁情况进行全面管理。系统的主要管理对象及操作有&#xff1a; 车辆信息&#xff1a;包括车辆类型、车辆名…...

侯捷C++八部曲(一,面向对象)

头文件和类的声明 inline inline修饰函数&#xff0c;是给编译器的一个建议&#xff0c;到底是否为inline由编译器来决定&#xff0c;inline修饰的函数在使用时是做简单的替换&#xff0c;这样就避免了一些函数栈空间的使用&#xff0c;从能提升效率。从另一种角度看&#xff…...

《数据库系统概论》学习笔记——王珊 萨师煊

第一章 绪论 一、数据库系统概述 1.数据库的4个基本概念 &#xff08;1&#xff09;数据 描述事物的符号记录称为数据 &#xff08;2&#xff09;数据库 存放数据的仓库 &#xff08;3&#xff09;数据库管理系统 主要功能&#xff1a; &#xff08;1&#xff09;数据定…...

关于使用百度开发者平台处理语音朗读问题排查

错误信息&#xff1a;"convert_offline": false, "err_detail": "16: Open api characters limit reach 需要领取完 识别和合成都要有...

安全认证 | CISP和CISP-PTE的区别在哪里?

CISP和CISP-PTE的区别在哪里&#xff1f; 在国内安全信息认证体系中&#xff0c;虽然CISP认证与CISP-PTE认证都是中国信息安全测评中心负责颁发&#xff0c;均获得政府背景的认可&#xff0c;但二者还是有区别的。 今天就详细为大家介绍一下。 01 定义不同 ★ 注册信息安全专…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互

物理引擎&#xff08;Physics Engine&#xff09; 物理引擎 是一种通过计算机模拟物理规律&#xff08;如力学、碰撞、重力、流体动力学等&#xff09;的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互&#xff0c;广泛应用于 游戏开发、动画制作、虚…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级

在互联网的快速发展中&#xff0c;高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司&#xff0c;近期做出了一个重大技术决策&#xff1a;弃用长期使用的 Nginx&#xff0c;转而采用其内部开发…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

高防服务器能够抵御哪些网络攻击呢?

高防服务器作为一种有着高度防御能力的服务器&#xff0c;可以帮助网站应对分布式拒绝服务攻击&#xff0c;有效识别和清理一些恶意的网络流量&#xff0c;为用户提供安全且稳定的网络环境&#xff0c;那么&#xff0c;高防服务器一般都可以抵御哪些网络攻击呢&#xff1f;下面…...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元&#xff08;GRU&#xff09;长短期记忆神经网络&#xff08;LSTM&#xff09…...

Spring数据访问模块设计

前面我们已经完成了IoC和web模块的设计&#xff0c;聪明的码友立马就知道了&#xff0c;该到数据访问模块了&#xff0c;要不就这俩玩个6啊&#xff0c;查库势在必行&#xff0c;至此&#xff0c;它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据&#xff08;数据库、No…...

AI,如何重构理解、匹配与决策?

AI 时代&#xff0c;我们如何理解消费&#xff1f; 作者&#xff5c;王彬 封面&#xff5c;Unplash 人们通过信息理解世界。 曾几何时&#xff0c;PC 与移动互联网重塑了人们的购物路径&#xff1a;信息变得唾手可得&#xff0c;商品决策变得高度依赖内容。 但 AI 时代的来…...

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1&#xff09;下载安装包2&#xff09;配置环境变量3&#xff09;安装镜像4&#xff09;node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1&#xff09;使用 http-server2&#xff09;详解 …...