测试报告?Python自动化测试-Allure测试报告使用大全,一篇全通透

news2025/1/11 3:51:01

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

安装并配置环境变量

Windows / Mac / Linux 通用安装方法:
下载 allure.zip 安装包,解压后配置环境变量即可:
配置路径(windos举例):
F:\从0到1开始搭建自动化测试框架\allure-2.17.3\bin

在命令行输入allure --version,能出现版本说明allure命令行已经安装成功了

allure --version

结合 pytest 使用,需要安装 python 插件:

pip install allure-pytest

allure特性及语法使用

@allure.step
allure报告最重要的一点是,它允许对每个测试用例进行非常详细的步骤说明
通过 @allure.step() 装饰器,可以让测试用例在allure报告中显示更详细的测试过程

@allure.step("第三步")
def nested_step():
    #具体测试步骤代码
    nested_step_with_arguments(1, 'abc')

allure.attach(挺有用的)
作用:allure报告还支持显示许多不同类型的附件,可以补充测试结果;自己想输出啥就输出啥,挺好的

语法: allure.attach(body, name, attachment_type, extension)

参数列表
body:要显示的内容(附件)
name:附件名字
attachment_type:附件类型,是 allure.attachment_type 里面的其中一种
extension:附件的扩展名(比较少用)

@allure.title("前置操作:登录")
@allure.step("第二步")
def step_with_nested_steps():
    allure.attach('在fixture后置操作里面添加一个附件txt', 'fixture后置附件',
                  allure.attachment_type.TEXT)
    nested_step()
@allure.title() (用例标题)

from time import sleep
import allure
 
import pytest
@allure.title("测试:title")
@allure.description("""
这是一个@allure.description装饰器
没有特别的用处
""")
@pytest.mark.parametrize("n", list(range(5)))
class TestWeibo:
    @allure.story("子功能/单个用例名称")
    def test_case1_01(self, open_weibo, n):
        sleep(1)
        print("查看微博热搜", n)
 
    def test_case1_02(self, open_weibo, n):
        sleep(1)
        print("查看微博詹姆斯", n)

@allure.description()
作用:可以添加足够详细的测试用例描述
写法同上。

@allure.description("""
这是一个@allure.description装饰器
没有特别的用处
""")

@allure.feature(“功能名称”)

@allure.feature("测试采购合同模块")  # 通常对测试类进行装饰
class TestPurchaseContract:

@allure.story(“子功能/单个用例名称”)

@allure.story("测试同步标识灯功能") # 通常对单个用例进行装饰
def test_synchronize(self):
"""
测试 同步标识灯 功能
:return:
"""
r = self.pending_request.synchronize()
assert r["msg"] == "同步更新申购单红、绿、蓝灯状态成功"
assert r["success"] is True

Allure特性-severity(测试用例的优先级)

class Severity(object):
    BLOCKER = 'blocker'
    CRITICAL = 'critical'
    NORMAL = 'normal'
    MINOR = 'minor'
    TRIVIAL = 'trivial'

@allure.severity(“minor”)
Blocker级别:中断缺陷(客户端程序无响应,无法执行下一步操作)
Critical级别:临界缺陷( 功能点缺失)
Normal级别:普通缺陷(数值计算错误)
Minor级别:次要缺陷(界面错误与UI需求不符)
Trivial级别:轻微缺陷(必输项无提示,或者提示不规范

allure生成报告命令

执行测试命令

pytest -n auto --alluredir=allure

测试报告生成命令

allure serve allure

报告预览

B1

B2

备注:
环境参数配置:environment.properties(需要放在allure目录下)

Browser=Chrome
Browser.Version=81.0.4044.92
Stand=Production
ApiUrl=pda
python.Version=3.7.2

测试类别配置文件categories.json(需要放在allure目录下)

[
  {
    "name": "忽略测试",
    "matchedStatuses": ["skipped"]
  },
  {
    "name": "Infrastructure problems",
    "matchedStatuses": ["broken", "failed"],
    "messageRegex": ".*bye-bye.*"
  },
  {
    "name": "Outdated tests",
    "matchedStatuses": ["broken"],
    "traceRegex": ".*FileNotFoundException.*"
  },
  {
    "name": "测试失败",
    "matchedStatuses": ["failed"]
  },
  {
    "name": "测试缺陷",
    "matchedStatuses": ["broken"]
 
  }
  ,
  {
    "name": "测试成功",
    "matchedStatuses": ["passed"]
  }
]

趋势模块不显示问题解决方案:
原因:allure-result文件中没有history文件夹
解决:手动将allure-report中的history复制到allure目录下

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

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

只有努力不懈地追求,才能让梦想翱翔于蓝天,让奋斗的火焰点亮心灵。相信自己的坚持,抓住每个机会,在汗水中收获辉煌,成就一段不平凡的人生。

只有不断超越自己,才能找到无限的可能性;只有努力拼搏,才能创造属于自己的辉煌未来。坚持奋斗,追逐梦想,你定会收获一切你所向往的!

只有奋斗才能点亮梦想之光,只有坚持才能跨越困难之山,只有勇敢才能超越自我。相信自己的力量,不停追求进步,终将成为那个无所不能的人。

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

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

相关文章

工业相机的基础参数释义

景深: 可以清晰拍摄被测物的距离范围。 工作距离: 相机镜头至被测物的距离。 物像距离: 被测物至芯片靶面的距离。 像元尺寸: 一个像素在长和宽方向上所代表的实际大小,单位通常为微米。像元尺寸越大,分辨率…

记录stm32c8t6使用TIM4_CH1、TIM4_CH2输出PWM波控制编码电机出现的问题

由于之前是使用PB9、PB7引脚即TIM4_ch3\TIM4_ch4,由于项目更改为c8t6的PB、PB7引脚(TIM4_ch3\TIM4_ch4) 改为配置后发现只有一边的轮子可以转到,明明配置没什么问题,编译也没有报错,最后将pwm的调制模式更改…

Android 进程与进程之间的通信--AIDL详细教程,以传递对象为例,两个app实现

我这里案例是 通过 IPC 传递对象 (以DemoBean类为例) 如下: AIDL 使用一种简单语法,允许您通过一个或多个方法(可接收参数和返回值)来声明接口。参数和返回值可为任意类型,甚至是 AIDL 生成的其…

TypeScript 学习笔记 环境安装-类型注解-语法细节-类-接口-泛型

文章目录 TypeScript 学习笔记概述TypeScript 开发环境搭建 类型注解类型推断 数据类型JS的7个原始类型Array数组object、Object 和 {}可选属性 ? 和 可选链运算符?. function函数TS类型: any类型 | unknow类型TS类型: void类型TS类型:never类型 (几乎…

数据库应用:CentOS 7离线安装MySQL与Nginx

目录 一、理论 1.安装依赖 二、实验 1.离线安装MySQL与Nginx 2.离线安装Nginx 三、问题 1.执行nginx -v命令报错 四、总结 一、理论 1.安装依赖 (1)概念 安装依赖是指在软件开发中,为了运行或者编译一个程序或者库,在计…

JVM——类加载和垃圾回收

目录 前言 JVM简介 JVM内存区域划分 JVM的类加载机制 1.加载 双亲委派模型 2.验证 验证选项 3.准备 4.解析 5.初始化 触发类加载 JVM的垃圾回收策略 GC 一:找 谁是垃圾 1.引用计数 2.可达性分析 (这个方案是Java采取的方案&#x…

k210学习篇(一)环境搭建

一、为什么选择Canmv开发板? 便宜!便宜!便宜!淘宝200即可买到一个能带摄像头和LCD屏等等的开发板 二、利用Maix Hub在线训练 Maix Hub官网https://maixhub.com/home Maix Hub使用教程:K210学习笔记——MaixHub在线训练模型(新版) 注意: 三、配置开发环境 1.MaixPy IDE…

某网站提交登陆信息加密JS逆向实战分析

1. 写在前面 对于爬虫开发者来说,职业生涯中可能或多或少会遇到各种各样的网站,其中有些必要要求登陆才能浏览。那么模拟登陆的时候发现提交的登陆信息(用户名、密码)都是经过加密后的,如何处理?这里找到了…

我只改五行代码,接口性能提升了 10 倍!

背景 某公司的一个 ToB 系统,因为客户使用的也不多,没啥并发要求,就一直没有经过压测。这两天来了一个“大客户”,对并发量提出了要求:核心接口与几个重点使用场景单节点吞吐量要满足最低500/s的要求。 当时一想&am…

C++ IO流

文章目录 C语言的输入与输出流是什么?CIO流C标准IO流C文件流 stringstream的简单介绍 C语言的输入与输出 在C语言中,我们使用最频繁的输入输出方式为: scanf 和 printf. scanf : 从输入设备(键盘)读取数据,并将值存放在变量中.printf: 将指定的文字/字符串输出到标准输出设备…

数据库约束与表的关系(数据库系列4)

目录 前言: 1.数据库的约束 1.1约束类型 1.1.1 not null 1.1.2 unique 唯一约束 1.1.3 default 默认值约束 1.1.4 primary key 主键约束 1.1.5 foreign key 外键约束 2.表的关系 2.1 一对一 2.2 一对多 2.3 多对一 3.新增 4.聚合查询 4.1聚合函数 4.…

Pinecone - 向量数据库

文章目录 关于 PineconeRoadMapSemantic SearchChatbots购买查看 API Key创建索引代码调用安装库 pinecone-client查看已经创建的索引创建索引插入数据获取索引统计分析信息查询索引,获取相似向量删除索引关于 Pinecone 官网 : https://www.pinecone.i

利用layui构建OA系统基本操作

一.编写方法(增加,删除,修改,查询) 通过继承BaseDao来实现通用,从而减少代码量,提高小路 1.增加 public int add(User user) throws Exception {String sql "insert into t_oa_user(name…

Windows7中使用SRS集成音视频一对一通话

SRS早就具备了SFU的能力,比如一对一通话、多人通话、直播连麦等等。在沟通中,一对一是常用而且典型的场景, 让我们一起来看看如何用SRS做直播和RTC一体化的一对一通话。 一、启动windows7-docker 二、拉取SRS镜像 执行命令:docker pull oss…

修改jar包中的文件内容

文章目录 导引查找是否存在需要修改的文件vim命令修改配置文件jar命令替换jar包中的文件(也可新增)解压jar包,修改后重新打包jar修改clas文件jar命令参数 导引 首先问问为什么要直接修改jar包中的文件,而不是重新打包,在非必要的情况下&…

【动手学深度学习】pytorch-参数管理

pytorch-参数管理 概述 我们的目标是找到使损失函数最小化的模型参数值。 经过训练后,我们将需要使用这些参数来做出未来的预测。 此外,有时我们希望提取参数,以便在其他环境中复用它们, 将模型保存下来,以便它可以在…

python数据挖掘基础环境安装和使用

文章目录 一.安装python环境二、库的安装2.1 使用pip命令安装virtualenvv扩展:cmd无法使用pip,报错:Fatal error in launcher: Unable to create process using ... 2.2 安装virtualenvwrapper-win2.3 新建一个用于人工智能环境的…

腾讯云 API 3.0(V3版签名) 通用接口 Delphi 版

目录 一、腾讯云API 3.0 简介: 二、Delphi 接口函数说明: 1. Delphi 接口包含的单元: 2. 同步调用和异步调用的区别: 3. 程序调用示例: 三、Delphi 版腾讯云API 3.0 版接口函数下载 四、演示程序录播 下载源程序…

DB2数据库SQL将不同行做合计

DB2数据库SQL将不同行做合计 案例: 将’GL’和’RZ’做合计,其他的不动。 SELECT SALE_TYPE,ROUND(CAST(SUM(aatp_weight) AS DOUBLE),2) AS aatp_weight FROM( SELECT CASE WHEN SALE_TYPE GL THEN RZ ELSE SALE_TYPE END AS SALE_TYPE, DEMAND_NUM / …

基于NXP iMX8MP处理器M7核心LVGL移植

By Toradex胡珊逢 LVGL (Light and Versatile Graphics Library)是一个轻量级的开源图形库,采用 C 或者 MicroPython 语言开发。可以在资源有限的 MCU 上轻松地绘制图形界面。Verdin iMX8M Plus 模块的处理器除了 Cortex-A53 核心外,还具有一个 Cortex-M…