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

news2024/12/24 2:29:46

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文件;如下图

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

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

相关文章

Linux基础指令大讲解

文章目录 1.linux的历史2.如何安装linux3.如何创建和删除用户4.目录,文件,文件夹区别5.pwd6.ls6.1基础语法6.2常用选项 7.alias 和 which的配套使用7.1基础格式7.2解释7.3与其关联的一些命令 8.cd8.1相对路径和绝对路径8.2运行可执行程序的方法8.3cd的基…

Java学习(韩顺平670-675)

目录 在我看来,我们在Java需要不断封包的原因就是为了使用不同类库中自己所需的方法,我们才要进行封装的,你怎么看? 你好,什么叫做关闭外层流 关于字符流要求 服务端/客户端 TCP网络通信编程//●//应用案例4 TCPFil…

dbForge Edge 4in1 Enterprise Edition Crack

单一解决方案中的四个数据库 IDE dbForge Edge 赋予自己开发和管理 SQL Server、MySQL、Oracle 和 PostgreSQL 数据库的广泛能力 概述 dbForge Edge:您的终极多数据库解决方案 让我们来看看。您需要处理多个数据库管理系统。同时,您希望能够灵活有效地…

好用的项目管理软件的具体功能有哪些

随着企业规模不断的扩大,项目管理往往会面临更多的挑战与难题,最常见的会出现以下几个问题:资源消耗失控,而项目部门和相关部门之间沟通越来越困难;团队凝聚力下降、项目进度难以把控,项目成本几乎失控&…

书接上回,接着研究当今世上缓存第一人

书接上回,接着研究当今世上缓存第一人,记得留下的关注,收藏起来以后观看。 五 三大特殊数据类型 1 geospatial(地理位置) 1.geospatial将指定的地理空间位置(纬度、经度、名称)添加到指定的ke…

国民技术N32G430开发笔记(12)- IAP升级 Settings区域数据初始化

IAP升级 Settings区域数据初始化 1、假如,有两个产品,A产品跟B产品,硬件都一样,要求一个软件里的board_name为N32G430C8L7_STB_A,另一个软件里的board_name为N32G430C8L7_STB_B。 那我们如何在不改boot程序跟App程序的…

Matlab App Designer制作一个UART的GUI总结

目录 前言 读取串口数据速度慢 Axes响应慢 总结 前言 最近尝试了一下用Matlab App Designer制作一个上位机通信软件,专门用于读取电机控制里面的相电流,角度等高实时性的数据,已经在VOFA里面实现了。STM32 VOFA串口调试助手提升电机控制调试…

拷贝构造函数和运算符重载

文章目录 拷贝构造函数特点分析拷贝构造函数情景 赋值运算符重载运算符重载operator<运算符重载 赋值运算符前置和后置重载 拷贝构造函数 在创建对象的时候&#xff0c;是不是存在一种函数&#xff0c;使得能创建一个于已经存在的对象一模一样的新对象&#xff0c;那么接下…

Kotlin注解

文章参考 1、概念 注解可以对 类、函数、函数参数、属性等 做标注 注解信息可用于 源码级、编译期、运行时 示例 Retention(AnnotationRetention.RUNTIME) //作用于运行时 Target(AnnotationTarget.CLASS) //限定作用于类 annotation class Api(val url: String)/*** Rete…

Nachos系统的上下文切换

Fork调用创建进程 在实验1中通过gdb调试初步熟悉了Nahcos上下文切换的基本流程&#xff0c;但这个过程还不够清晰&#xff0c;通过源码阅读进一步了解这个过程。 在实验1中通过执行Threadtest&#xff0c;Fork创建子进程&#xff0c;并传入SimpleThread执行currentThread->…

vulnhub靶场之Wayne Manor

1.信息收集 探测存活主机&#xff0c;发现192.168.239.174存活 对主机进行端口扫描&#xff0c;发现存在端口21、22、80&#xff1b;且21端口状态是filtered。 打开浏览器访问http://192.168.239.174&#xff0c;未发现可疑&#xff0c;进行目录扫描只发现robots.txt。 什…

集合详解之(七)泛型

文章目录 &#x1f412;个人主页&#x1f3c5;JavaSE系列专栏&#x1f4d6;前言&#xff1a;&#x1f380;泛型的由来--参数化类型&#x1fa80;元组的介绍 ( int...数组名x )&#x1fa84;类型通配符&#x1f387;使用泛型的注意事项&#x1f3c5;子类继承泛型类【两种情况】 …

Transformers 发展一览

动动发财的小手&#xff0c;点个赞吧&#xff01; Transformers 研究概览 1. 介绍 近年来&#xff0c;深度学习的研究步伐显着加快&#xff0c;因此越来越难以跟上所有最新发展。尽管如此&#xff0c;有一个特定的研究方向因其在自然语言处理、计算机视觉和音频处理等多个领域取…

CLion开发工具 | 04 - CLion内置工具和插件

专栏介绍 一、CLion内置工具 1. SSH终端工具 填写ssh远程连接信息&#xff1a; 连接后在Terminal栏即可使用&#xff1a; 2. HTTP请求 填写http请求内容&#xff0c;并发起请求&#xff0c;方便的一批&#xff1a; 二、插件 1. 管理已安装的插件 2. 简体中文插件 3. 主题…

React 环境搭建,并打包到服务器

一. 安装node.js brew install node 二. 创建react app npx create-react-app my-app cd my-app npm start 默认使用3000端口&#xff0c;本地3000端口被占用&#xff0c;修改/node_modules/react-scripts/scripts/start.js中的端口号 // 这是start.js部分源码 const DEFAU…

【前端客栈】使用CSS实现畅销书排行榜页面

&#x1f4ec;&#x1f4eb;hello&#xff0c;各位小伙伴们&#xff0c;我是小浪。大家都知道&#xff0c;我最近是在更新各大厂的软件测试开发的面试真题&#xff0c;也是得到了很大的反馈和好评&#xff0c;几位小伙伴也是成功找到了测开的实习&#xff0c;非常不错。如果能前…

移除链表元素

☃️个人主页&#xff1a;fighting小泽 &#x1f338;作者简介&#xff1a;目前正在学习C语言和数据结构 &#x1f33c;博客专栏&#xff1a;leetcode练习题 &#x1f3f5;️欢迎关注&#xff1a;评论&#x1f44a;&#x1f3fb;点赞&#x1f44d;&#x1f3fb;留言&#x1f4a…

ChatGPT 和 Elasticsearch:OpenAI 遇见私有数据(二)

在之前的文章 “ChatGPT 和 Elasticsearch&#xff1a;OpenAI 遇见私有数据&#xff08;二&#xff09;” 中&#xff0c;我们详细描述了如何结合 ChatGPT 及 Elasticsearch 来进行搜索。它使用了如下的架构&#xff1a; 在今天的文章中&#xff0c;我们来详细描述实现这个的详…

BatchNormalization 介绍

1 为何要用BatchNormalization 为了让深层网络更容易训练&#xff0c;有两种方法&#xff1a; 使用更好的优化器&#xff1a;如 SDGMomentun等&#xff1b; 改变网络结构&#xff0c;比如加入BN层&#xff0c;处理网络数据&#xff0c;让网络数据服从标准的高斯分布&#xff0…

人群计数传统方法:object detection, regression-based

数据标注方式&#xff1a; &#xff08;1&#xff09;人很少、人很大的时候用bounding box&#xff0c;把人从头到脚都框进长方形方框内&#xff0c;这个方框只用记录三个点的坐标&#xff0c;左下、左上、右下&#xff1b;测试集预测的时候&#xff0c;除了点的坐标还要输出这…