亲测有效!性能压测异常竟能自动化分析!

news2024/9/20 22:57:37

性能压测是一种评估系统运行效率和稳定性的方法,通过模拟真实的使用场景和负载条件,对系统进行压力测试和负载测试,并对测试结果进行分析,以评估系统的性能,其中性能压测结果分析是性能压测的重要环节。以往的性能压测,测试执行和分析是分开的,分析的结果具有滞后性,且依赖于测试人员经验,存在分析标准不统一的问题。为解决上述问题,笔者探索了一个基于指标趋势和阈值规则的自动化异常分析方法,并将方法嵌入性能压测执行过程,实现实时、自动的捕获测试异常,帮助测试人员分析和评估系统在特定条件下的表现。

一、优化压测执行过程

性能压测执行过程一般由系统自动完成,无需人工参与,主要包含发压、数据聚合、结果汇总三个环节。笔者探索在性能压测执行过程中增加分析节点,接收实时的测试结果数据流,根据分析方法对其进行分析,捕获异常点,汇总展示给用户。

图1:增加分析节点的性能压测执行过程

二、流数据&流处理

性能压测结果数据是标准的流数据,测试结果是随着时间的推移而产生的数据元素序列。流处理是对流数据的处理,与批处理不同,流数据会在产生后立即被逐一处理,其具有以下特点:

无界数据:流数据是一种不断增长的、无限的数据集,不能作为一个整体来操作。

无界的数据处理:由于适用于无界数据,流处理本身也是无界的。与批处理相比,工作负载可以均匀地分布在不同的时间。

低延迟、近实时:流处理可以在数据产生后就进行处理,以极低的延迟获得结果。

三、分析指标

本文方法针对性能压测结果中关注类指标和统计类指标进行分析。其中关注类指标包括响应时间、吞吐错误率、资源利用率等,统计类指标包括分位数、标准差等。

图2:分析指标

四、分析方法

1.基于趋势的分析

异常毛刺通常指的是在性能压测期间出现的TPS、响应时间或其他资源使用率的短暂、剧烈波动,如图3。

图3:性能压测过程的异常毛刺点

异常毛刺点有两个特点,一是处于异常趋势中,一个是有剧烈波动,例如TPS的陡降,响应时间的陡升。趋势分析则通过分析压测过程中指标的趋势走向,识别异常趋势中波动剧烈的毛刺点,从而实现异常毛刺点识别。所以,如何识别趋势和计算波动是整个趋势分析中最关键的技术。本文方法利用时态窗口实现了对指标的趋势识别,同时利用状态保存机制,根据上下文信息计算波动幅度,实现异常毛刺点识别。

2.基于阈值规则的分析

性能压测过程中,项目组会根据业务预估交易运行预期,制定相应通过准则。本文方法支持用户根据通过准则自定义阈值规则,规则在测试开始时生效,测试结束停止,期间可以实时捕获没有达到通过准则的数据。

五、搭建规则管道

在流处理中,规则代表了一项计算工作,它定义了输入源,计算逻辑和结果,比如一条分析规则,它以性能测试结果为数据源,分析方法为计算逻辑,捕获的异常点作为输出。规则与规则可以进行串联,形成一个规则管道,完成一系列操作。基于规则管道可以实现分析节点的自动化运行。以响应时间异常点分析为例子,规则1实现了将所有测试结果根据测试id和接口名称进行分流,规则2对分流数据响应时间指标进行分析,标记异常点,规则3实现了异常点入库,将3个规则串联就可以实现一个完整的自动分析过程。

图4:响应时间分析的规则管道

六、实践

基于上述,笔者在性能压测执行环节通过规则管道搭建了一个分析节点,节点可基于阈值和指标趋势自动的、实时的对性能测试结果进行分析,无需人工参与,分析结果如图5所示。

图5:测试分析结果

七、总结

本文探索了一个基于指标趋势和阈值规则的自动化异常感知分析方法,该方法利用时态窗口和状态保存机制实现了对性能压测过程中异常毛刺点捕获,同时方法可以根据用户自定义的阈值规则自动捕获没有达到通过准则的数据。并通过搭建规则管道,将分析融入性能压测执行过程中,实现了自动化分析,提高了分析效率。

文末了:

可以到我的个人号:atstudy-js,可以免费领取一份10G软件测试工程师面试宝典文档资料。同时我邀请你进入我们的软件测试学习交流平台,大家可以一起探讨交流软件测试,共同学习软件测试技术、面试等软件测试方方面面,了解测试行业的最新趋势,助你快速进阶Python自动化测试/测试开发,稳住当前职位同时走向高薪之路。

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

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

相关文章

ONLYOFFICE 桌面编辑器 8.1 发布:全新功能齐备的 PDF 编辑器、丰富的幻灯片版式

前言 在当前数字化迅速发展的时代,办公软件套件作为企业日常工作的核心工具,其功能的全面性和使用的便捷性直接影响着工作效率和团队协作的效果。在众多办公软件中,ONLYOFFICE凭借其卓越的性能和丰富的功能,备受用户青睐。近日&a…

深入了解 GPT-4 和 ChatGPT 的 API---OpenAI Playground

文章目录 基本概念OpenAI API 提供的可用模型在 OpenAI Playground 中使用 GPT 模型 掌握GPT-4 和 ChatGPT 的 API 的使用方法,以便有效地将它们集成到 Python 应用程序中。首先,需要了解 OpenAI Playground。这将使你在编写代码之前更好地了解模型。接着…

React尚硅谷115-126(setState、Hooks、Fragment、context、组件优化、renderprops

122,context 只能用value传,可以传对象,字符串 一种组件间通信方式, 常用于【祖组件】与【后代组件】间通信 使用: 创建Context容器对象: const XxxContext React.createContext() 渲染子组时,外面包…

MIT6.s081 2021 Lab Utilities

Boot xv6 按照示例切换到 util 分支后,看到目录下包含 Makefile 文件,执行 make qemu 即可。 sleep 思路 借助系统调用 sleep 实现一个命令行程序,关键是要找到封装了系统调用的 C 函数的位置,根据提示: … user/u…

软件测试--花了我一周时间整理各种测试模板

2024软件测试面试刷题,这个小程序(永久刷题),靠它快速找到工作了!(刷题APP的天花板)-CSDN博客跳槽涨薪的朋友们有福了,今天给大家推荐一个软件测试面试的刷题小程序。https://blog.c…

北邮《计算机网络》MAC子层笔记

文章目录 缩写复习MAC层所在层次动态分配信道算法们的简要介绍信道的五条基本假设多路访问的协议(理论上的协议)aloha协议CSMA协议其他冲突避免协议无线局域网协议 ,MACA 以太网协议802.3(实际协议,刚刚是理论&#xf…

光猫BOB 功率调测误差分析与校验指南

DDM(Digital Diagnostic Monitoring)数字诊断监控技术,是光模块中使用的技术,以便用户能够监控光模块的实时参数。这些参数包括工作温度、工作电压、工作电流、发射和接收光功率等,还可以显示模块的常规波长、速率、传…

在Vue表单中设置缺省值

有个需求,在新增记录的时候,打开新增页面,员工姓名处获取到当前登录用户的用户名,并将其设置为缺省值。 /** 新增按钮操作 */handleAdd() {this.reset();this.open true;// this.form.employeeName this.$store.state.user.name…

计算机网络 DHCP以及防护

一、理论知识 1.DHCP:用于在网络中自动分配IP地址及其他网络参数(如DNS、默认网关)给客户端设备。 2.VLAN:逻辑上的局域网分段,用于隔离和管理不同的网络流量。 3.DHCP地址池:为每个VLAN配置不同的DHCP地…

【语义分割系列】基于cityscape的DDRNet算法

基于cityscape的DDRNet算法 前言 DDRNet是专门为实时语义分割设计的高效主干。该模型由两个深度分支组成,在这两个分支之间执行多次双边融合,并且还设计了一个新的上下文信息抽取器,名为深度聚合金字塔池模块(DAPPM),用于扩大有效的接受域,并基于低分辨率特征映射融合…

QT在VS环境中使用,控件显示中文乱码解决方法

首先来看乱码显示的效果如下: 上图左侧显示内容为中文,控件对应代码如下: QLabel* UserNameLabel new QLabel(QString("用户名:")); QLabel* NameLabel new QLabel(tr("姓名:"));下面我们对QL…

【Spine学习15】变换约束

变换约束:能让一个骨骼受另一个骨骼的变化影响。 1、选择m创建一个变换约束: 2、点击这个约束, 将移动数值拉的越满,m越接近s骨骼 当约束为0也就是默认的时候,m骨骼将不会受影响,变换约束可有可无。 tips…

物联网系统运维——实验备份与恢复,数据镜像软件DRBD介绍,DRBD的安装和应用,extundelete的安装和应用(重点),环境准备,配置设置

一.数据备份 1.数据备份的重要性 备份是系统中需要考虑的最重要的事项,虽然这在系统的整个规划,开发和测试过程中甚至占不到1%,看似不太重要且默默无闻的工作只有到恢复的时候才能真正体现出其重要性,任何数据的丢失与数据宕机,都是不可以被接收的。 2.数据备份策…

数据结构与算法笔记:高级篇 - 最短路径:地图软件是如何计算出最优出行路径的?

概述 基础篇的时候,我们学习了图的两种搜索算法,深度优先搜索和广度优先搜索。这两种算法主要是针对无权图的搜索算法。针对有权图,也就是图中的每一条变都有一个权重,我们该如何计算两点之间的最短路径(经过的边的权…

ViT:3 Compact Architecture

大模型技术论文不断,每个月总会新增上千篇。本专栏精选论文重点解读,主题还是围绕着行业实践和工程量产。若在某个环节出现卡点,可以回到大模型必备腔调或者LLM背后的基础模型重新阅读。而最新科技(Mamba,xLSTM,KAN)则…

VMware共享文件夹设置

1、VMWare设置 1)虚拟机 -> 设置 2)点击 选项 -> 共享文件夹 -> 设置为 总是启用 -> 并 添加一个本地共享文件夹。设置完毕,点击 确定。 2、创建共享文件夹、挂载 1)打开终端,在mnt/目录下创建一个名为…

原Veritas(华睿泰)中国研发中心敏捷教练、项目集经理郑鹤琳受邀为第十三届中国PMO大会演讲嘉宾

全国PMO专业人士年度盛会 原Veritas(华睿泰中国)中国研发中心敏捷教练、项目集经理郑鹤琳女士受邀为PMO评论主办的2024第十三届中国PMO大会演讲嘉宾,演讲议题为“敏捷项目管理-知行合一”。大会将于6月29-30日在北京举办,敬请关注…

So:万法皆空,唯因果不空

在《long long ago》中,我们说到long一词中藏着因果关系,long通汉字“以”字。long是生育过程中,婴儿已经呱呱坠地,但尚未剪掉脐带的形象。 下面我们来解剖另一个英语单词:so。 一、so:万法皆空&#xff…

前端vue-cli相关知识与搭建过程(项目创建,组件路由)very 详细

一.关于vue-cli 1.什么是vue Vue (读音 /vju ː /,类似于 view) 是一套用于构建用户界面的渐进式框架。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。 Vue.js 是前端的主流框架之一,和 Angular.js…

【大数据】Hadoop学习笔记

基本概念 Hadoop组成 HDFS: Hadoop分布式文件存储系统, 在Haddop中处于底层/核心地位YARN: 分布式通用的集群资源管理系统和任务调度平台, 支撑各种计算引擎执行MapReduce: 第一代分布式计算引擎, 但因为部分原因, 许多企业都不直接使用MapReduce, 但许多底层软件仍然在使用Ma…