从0到1精通自动化测试,pytest自动化测试框架,allure标记用例级别severity(二十一)

news2024/11/14 16:15:54

目录

一、前言

二、用例等级

三、pytest用例

四、统计缺陷

五、allure命令行参数allure-severities


一、前言

我们在做功能测试的时候,执行完一轮测试用例,输出测试报告的时候,会有统计缺陷的数量和等级

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

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

二、用例等级

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

blocker:阻塞缺陷(功能未实现,无法下一步)

critical:严重缺陷(功能点缺失)

normal:一般缺陷(边界情况,格式错误)

minor:次要缺陷(界面错误与ui需求不符)

trivial:轻微缺陷(必须项无提示,或者提示不规范)比如我的用例有以下4条

那么对应的用例的等级应该是

1.修改个人信息-sex参数为空 这个属于边界值情况的测试,应该是normal级别

2.修改个人信息-sex参数传F和M两种类型,成功(枚举类型) 这个是针对接口的功能点详细测试 critical级别

3.修改个人信息-修改不是本人的用户信息,无权限操作 这个是针对接口的功能点详细测试 critical级别

4.修改个人信息-修改自己的个人信息,修改成功 这是用例是测试主流程 blocker级别

三、pytest用例

根据测试用例的重要性划分测试用例等级,如果没指定等级,默认为normal级别

import pytest
import allure
'''

@allure.severity装饰器按严重性级别来标记case   
执行指定测试用例 --allure-severities blocker
BLOCKER = 'blocker'  阻塞缺陷
CRITICAL = 'critical' 严重缺陷
NORMAL = 'normal'    一般缺陷
MINOR = 'minor'      次要缺陷
TRIVIAL = 'trivial'  轻微缺陷 
'''

@allure.severity("normal")
def test_case_1():
    '''修改个人信息-sex参数为空'''
    print("test case 11111111")


@allure.severity("critical")
def test_case_2():
    '''修改个人信息-sex参数传F和M两种类型,成功(枚举类型)'''
    print("test case 222222222")

@allure.severity("critical")
def test_case_3():
    '''修改个人信息-修改不是本人的用户信息,无权限操作'''
    print("test case 333333333")

@allure.severity("blocker")
def test_case_4():
    '''修改个人信息-修改自己的个人信息,修改成功'''
    print("test case 4444444")

def test_case_5():
    '''没标记severity的用例默认为normal'''
    print("test case 5555555555")

cd到用例的目录,执行用例,查看报告

pytest —alluredir ./report/allure
allure serve ./report/allure

 查看报告详情

四、统计缺陷

如果执行用例的过程中有测试用例不通过的情况,也可以统计缺陷的严重等级

# 修改上面2个用例,故意让用例失败
@allure.severity("blocker")
def test_case_4():
    '''修改个人信息-修改自己的个人信息,修改成功'''
    print("test case 4444444")
    assert 1==2

def test_case_5():
    '''没标记severity的用例默认为normal'''
    print("test case 5555555555")
    assert 1==2

重新执行用例,查看报告-图表

五、allure命令行参数allure-severities

pytest -h可以查看到allure相关的几个命令行参数
—allure-severities=SEVERITIES_SET
             Comma-separated list of severity names. Tests only
             with these severities will be run. Possible values
             are: blocker, critical, normal, minor, trivial.
如果有很多测试用例,现在只想做个快速的回归测试,只测试用例级别为blocker和critical级别的测试用例

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

 也可以这样写

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

 如果只执行blocker级别的用例

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

          【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图】


一、Python编程入门到精通


二、接口自动化项目实战  

三、Web自动化项目实战


四、App自动化项目实战 

五、一线大厂简历


六、测试开发DevOps体系 

七、常用自动化测试工具


八、JMeter性能测试 

九、总结(尾部小惊喜)

生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!

生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!

只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到!  

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

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

相关文章

SpringBoot3【② Web开发】

SpringBoot3-Web开发 SpringBoot的Web开发能力,由SpringMVC提供。 0. WebMvcAutoConfiguration原理 1. 生效条件 AutoConfiguration(after { DispatcherServletAutoConfiguration.class, TaskExecutionAutoConfiguration.class,ValidationAutoConfiguration.clas…

12-C++算法笔记-递推

📖 引入 让我们从一个有趣的例子开始,棋盘放米的问题。假设有一个 8 8 8\times8 88 的棋盘,皇帝想要奖赏一位大臣。大臣提出的要求是在棋盘上按如下规则领赏:第一个格子上放一粒米,随后的每个格子都放置前一个格子上…

IM即时通讯APP在聊天场景中的应用

即时通讯(IM)应用可以满足人们随时随地进行文字、语音、图片、视频等多媒体信息的传递需求,为个人和企业提供了高效、便捷的沟通方式。在企业中,IM即时通讯APP更是发挥着重要的作用,促进了协作和团队工作的效率提升。以…

jenkins邮箱设置报:501 mail from address must be same as authorization user

jenkins配置邮箱时遇到如下错误:501 mail from address must be same as authorization user 原因是管理员邮箱地址与发送邮箱地址不统一,配置管理员邮件地址:系统管理-系统配置-Jenkins Location,输入与发件人统一的地址即可

Airtest:Windows桌面应用自动化测试三【Airtest脚本的点击位置与点击偏移】

Airtest脚本的点击位置与点击偏移 1. 前言2. Airtest的点击位置3.Airtest的点击偏移图像点击偏移,常用于下述场景中:3.1、一个是,当我们的页面中,存在很多个相同的图标,我们想指定点击某个位置的图标,就有可…

台灯的功能作用有哪些?分享好用的台灯

照明对于我们来说是非常重要的,从远古时期的钻木取火到古代的蜡烛、油灯以及近代电灯,可以说人们在不断的创造着能够发亮的东西,而现在电灯的种类很多,包括壁灯、吊灯、台灯等,因为实际用到的环境不同起到的作用也不尽…

抖音矩阵号/抖音短视频SEO矩阵系统源码开发及开发者思路分享....

抖音矩阵号短视频系统,抖音矩阵号系统源码开发,思路分享,说一点开发者掏心窝子的话...... 一套优秀的短视频获客系统,支持短视频智能剪辑、短视频定时发布,短视频排名查询及优化,短视频智能客服等,那么短视…

C语言进阶---动态内存管理

1、为什么存在动态内存分配? 我们已经掌握的内存开辟方式有: int a 20; //在栈空间上开辟四个字节。 char arr[20]; //在栈空间上开辟10个字节的连续空间。但是上述的开辟空间的方式有两个特点: 开辟空间大小是固定的数组在申…

基于JSP+Servlet+Mysql客户管理系统

基于JSPServletMysql客户管理系统 一、系统介绍二、功能展示1.项目骨架2.登录界面3.个人信息修改4.数据分析5.市场管理6.线索管理7、联系人8、客户管理9、交易管理 四、其它1.其他系统实现五.获取源码 一、系统介绍 项目类型:Java web项目 项目名称:基…

【弱网】clumsy的filter语法设置

clumsy 官方说明 jagt WinDivert 的语法 https://github.com/basil00/Divert/wiki/WinDivert-Documentation#7-filter-languageDivert大神们的改版 clumsy-regoutbound 发送 inbound

CVPR2023 Openlanev2 挑战赛:第一名方案解读

引言: 如第一篇挑战赛的博客(# CVPR2023挑战赛之-开放车道拓扑信息(OpenLane Topology)的测试【1】)所说,这项任务,实际上是一个复合任务,其评价指标也是语义分割、目标检测加拓扑位置关系三个指标的精准性平均值。本博客就第一名公布的Arxiv方法进行了解读,并对topol…

iview input组件clearable清空属性无法清空双向绑定值的原因解决

最近在使用iview新版本 input组件时,刚开始发现使用v-modal绑定的值,在点击clearable清除input框内容时,再次搜索发现参数还是没有被清掉 于是仔细查看代码的细节,才发现问题所在: 原来我绑定的参数的中文名称&#x…

【C1】数据类型,运算符/循环,数组/指针,结构体,main参数,static/extern,编译预处理,gdb,makefile

文章目录 1.数据类型:编译器(compiler)与解释器(interpreter),中文里的汉字和标点符号是两个字节,不能算一个字符(单引号)2.运算符/循环:sizeof/size_t3.数组…

SQL中的——左连接(Left join)、右连接(Right join)、内连接(Inner join)

前言 最近有一个开发需求,需要实现一个复杂年度报表,前后端都是博主开发,这里的业务逻辑比较复杂,也很锻炼sql能力,这里博主也将表的内外连接做了一个整理分享给大家 一、概念 首先还是介绍一下这三个的定义 1.Lef…

C#难点语法讲解之abstract---从应用需求开始讲解

一、背景故事 我们正常写的脚本,一般都是非常完整的,脚本完整意味着需求完整。 例如,我是售货员,现在苹果5元,梨子3元,西瓜20元, 一个人,来买了5个苹果,4个梨子&#xf…

springcloud二回头

Spring Cloud 一种微服务,以往的单体项目在一定程度的累积后,一些服务需要进行拆分,独立进行开发,然后再合起来,之前的是装成一个包进行部署 不同的搭配: spring cloud和boot的对应版本: Rest…

JavaScript 内置对象 数据类型

目录 JavaScript 内置对象 1.内置对象 2.查文档 2.1MDN 2.2 如何学习对象中的方法 3.Math对象 3.1Math 概述 3.2随机数方法 random() 4. 日期对象 4.1Date 概述 4.2Date() 方法的使用 4.3 日期格式化 4.4获取毫秒的总的毫秒形式 5.数组对象 5.1数组对象的创建 5…

1. Netty核心功能与线程模型详解

Netty 1. 认识Netty2. 第一个Netty程序 本文是按照自己的理解进行笔记总结,如有不正确的地方,还望大佬多多指点纠正,勿喷。 课程内容: 01、Netty核心组件快速了解 02、Hello,Netty! 03、深入理解Channel、EventLoop(Group) 04、深…

MySql的使用

目录 一、安装与启动1.1 Ubuntu下的使用1.2 Mac下的使用 二、MySQL图形化管理工具的使用三、数据完整性3.1 数据类型3.2 约束 四、常用的sql语句4.1 数据库操作4.2 数据库表操作1.查看当前数据库中所有表2.查看建表的数据结构3.创建表4.添加字段5.修改字段6. 删除字段7. 查看表…

nodejs之net模块的使用

vscode的底层ipc通讯都是基于node的net模块进行封装,今天大概讲解下net模块的使用 官方文档地址:https://nodejs.cn/api/net.html net模块的作用 net模块提供了基于流的方式构建tcp或ipc服务器和客户端的能力。 node:net 模块提供异步网络 API&#x…