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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

每日学术速递4.26

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.AutoNeRF: Training Implicit Scene Representations with Autonomous Agents 标题:AutoNeRF:使用自主代理训练隐式场景表示 作者:Pierre Marz…

SaaS云HIS系统源码功能介绍

SaaS云HIS首页功能:包括工作计划、预警、主功能菜单、医院机构公告。 一、工作计划 1.值班概况:值班日期、值班时间、值班科室(内科、外科等) 2.待处理患者:内科人数、外科人数等 病历统计:入院病历、出…

华为面试题:1+4=5,2+5=12,3+6=21,问8+11=?网友:幼儿园级别

面试,一直都是职场人士绕不过去的坎,对于有的人来说,或许更擅长日常的工作,在面试环节可谓是自己的薄弱环节,但对于有的人来说,相比于工作,更擅长应付面试! 最近,有一位…

《面向基于人工智能的学习健康系统,使用心电图进行人群水平的死亡率预测》阅读笔记

目录 一、摘要 二、十个问题 Q1论文试图解决什么问题? Q2这是否是一个新的问题? Q3这篇文章要验证一个什么科学假设? Q4有哪些相关研究?如何归类?谁是这一课题在领域内值得关注的研究员? Q5论文中提到…

过来人转本考试后的感悟和经验,真的很受用

过来人转本考试后的感悟和经验,真的很受用!转本不仅是分数的较量,也是信息收集、时间管理、学习能力、毅力等等的较量。同学们在转本中难免会遇见一些困难,为了避免走弯路,一起来看看过来人的感悟和经验吧!…

项目范围控制:如何控制项目范围的变化?

一个成功的项目需要在进度、成本和质量之间取得平衡。控制项目交付范围是实现这个平衡的关键。然而,项目范围是会变化的,因此控制项目范围变化是必要的。 如何控制项目范围的变化? 1、了解项目的交付范围 项目经理、团队成员、利益相关者和…

verilog手撕代码3——序列检测和序列发生器

文章目录 前言一、序列检测器1.1 重复序列检测1.1.1 序列缓存对比/移位寄存器法1.1.2 状态机法 1.2 非重复序列检测 二、序列发生器2.1 移位寄存器法2.2 反馈法2.3 计数器法 前言 2023.4.25 2023.4.26 学习打卡,天气转晴 一、序列检测器 1.1 重复序列检测 1.1.1 …

等级保护、风险评估和安全测评分别是什么?

2022-06-17 15:17 迈入“等保2.0时代”以后,我国对于等级保护的要求更为严格和具体。等级保护、风险评估和安全测评这三个词,也因此总是出现在人们的视野之中,还总是被混淆。那这三者究竟分别是什么呢?如何区分它们?它…

【Bus】编写一个Demo虚拟的总线-设备-驱动模型

文章目录 1. 前言2. 总线驱动模型三要素2.1 总线2.2 设备2.3 驱动 3. Demo Code3.1 virt_bus_core.c3.2 virt_device.c3.3 virt_driver.c 4. 工程代码下载地址5. 参考资料 1. 前言 Linux平台为了驱动的可重用性,虚拟了很多的虚拟总线。很经典的就是platform总线&am…

如何编写高质量代码、提高编程效率?

一、 前言 高质量代码是指在满足功能需求的基础上,具备高性能、安全、可扩展、易维护、可测试等特点的代码。它不仅可以提高开发效率和代码质量,更能有效减少代码维护成本,促进团队协作和项目成功。因此,编写高质量代码对程序员来…

【Java】什么是SOA架构?与微服务有什么关系?

文章目录 服务化架构微服务架构 我的一个微服务项目,有兴趣可以一起做 服务化架构 我们知道,早期的项目,我们都是把前后端的代码放在同一个项目中,然后直接打包运行这个项目,这种项目我们称之为单体项目,比…

【Vue】Vue-cli,创建项目设置自定义默认配置

Vue2.0,Vue-cli项目配置 步骤一,打开文件夹,导航栏输入cmd,打开命令行窗口步骤二,输入命令步骤三,选择第三个自定义新建项目步骤四,选择需要的项目模块,空格选择完,回车步…

密码学|AES加密算法|学习记录

AES简介 AES加密是分组加密的一种 明文长度为固定的128位 密钥可长度为128,192,256位 128bit16字节,在AES中我们将数据用4x4字节的矩阵表示。(注排列顺序为先从上到下再从左到右) AES的一般步骤 对于上图最终轮区…

CASAIM高精度自动化三维扫描系统检测塑料件,自动检测形位公差

随着塑料工业的迅速发展,以及塑料制品在航空、航天、电子、机械、船舶和汽车等工业部门的推广应用,对塑料件的质量要求也越来越高。 为了检测塑料件的尺寸偏差以及测量关键部位的3D尺寸和形位公差,对影响总成零件精度的产品、工装、工艺进行精…

第十章_Redis集群(cluster)

是什么 定义 由于数据量过大,单个Master复制集难以承担,因此需要对多个复制集进行集群,形成水平扩展每个复制集只负责存储整个数据集的一部分,这就是Redis的集群,其作用是提供在多个Redis节点间共享数据的程序集。 官…

yield用法理解,配有代码块和解析

包含 yield 关键字的函数,是一个生成器 yield和return的区别 1、return是返回return关键字的值,被调用一次就返回一次,return只能放在一个函数代码块的最后面,运行到return的时候,就结束循环,结束这个函数…

用户画像系列——HBase 在画像标签过期策略中的应用

一、背景 前面系列文章介绍了用户画像的概念、用户画像的标签加工、用户画像的应用。本篇文章主要介绍一些画像的技术细节,让大家更加详细的了解画像数据存储和处理的逻辑 举个现实中的例子: 例子1:因为疫情原因,上线一个平台(…

没有U盘电脑如何使用本地硬盘安装Ubuntu20.04(双系统)

环境: DELL7080台式机 Ubuntu20.04 两块硬盘 问题描述: 没有U盘电脑如何使用本地硬盘安装Ubuntu20.04(双系统) 解决方案: 一、下载镜像文件 1.上线自行下载安装镜像文件 二、分区 1.win10下磁盘管理压缩2个分区一个10G左右制作安装盘,一个几百G安装系统使用 10…

辞了外包,上岸字节我落泪了,400多个日夜没人知道我付出了多少....

前言: 没有绝对的天才,只有持续不断的付出。对于我们每一个平凡人来说,改变命运只能依靠努力幸运,但如果你不够幸运,那就只能拉高努力的占比。 2023年3月,我有幸成为了字节跳动的一名自动化测试工程师&am…