【深度解析】Jmeter性能测试指标的重要性与实现方法!

news2024/11/26 21:47:01

通常情况下,性能测试关注被测对象的时间与资源利用特性及稳定性。时间特性,即被测对象实现业务交易过程中所需的处理时间,从用户角度来说,越短越好。资源利用特性,即被测对象的系统资源占用情况,一般Web系统不关注客户端的资源占用情况,仅关注服务器端,通常为服务器端的CPU、内存、网络带宽、磁盘等(根据被测对象架构设计,还可分为Web服务器、中间件、数据库、负载均衡等)。稳定性,关注被测对象在一定负载情况下,持续稳定提供服务的能力。

不同的被测对象,不同的业务需求,可能有不同的指标需求,但大多数测试需求中都包含以下几个性能指标:

l 并发数

并发,即为同时出发,从应用系统架构层面来看,并发意为单位时间内服务器接受到的请求数。客户端的某个具体业务行为包括了若干个请求,因此,并发数被抽象理解为客户端单位时间内发送给服务器端的请求,而客户端的业务请求一般为用户操作行为,因此,并发数,也可理解为并发用户数,而这些用户是虚拟的,又可称为虚拟用户。

并发数,广义来讲,是单位时间内同时发送给服务器的业务请求,不限定具体业务类型,狭义来看,是单位时间内同时发送给服务器的相同的业务请求,需限定具体业务类型。在性能测试实施过程中需注意二者的区别。

l 响应时间

目前大多数的软件系统客户端与服务器交互过程如图7- 1所示,用户通过客户端(如浏览器)发出业务请求(网络传输时间T1),服务器接收并处理该请求(服务器处理时间T2),然后根据实际的处理模型返回结果(网络返回数据时间T3),客户端接收请求结果(客户端处理展示时间T4)。在这个处理流程中,涉及到的各个业务节点的处理时间总和T1+T2+T3即为系统响应时间。这个时间的计算忽略了用户端数据呈现的时间T4。从用户角度来讲,用户应用客户端发出业务请求,到客户端(通常为浏览器)展现相应的请求结果,这个时间越短越好,即用户视角的响应时间为T1+T2+T3+T4。从服务器角度来讲,服务器接收到客户端发来的请求,并给出结果的响应,这个过程所消耗的时间,记录为响应时间,即服务器仅关注T2的处理时间。因此,不同的视角,衡量的响应时间指标也不同。

通过上述两个不同视角的描述不难发现,用户与服务器所理解的响应时间存在明显的差异。用户关注的是发出请求至看到响应结果的时间,而服务器关注的是接受请求到返回结果的时间,对于用户而言,忽略了浏览器展示的时间,对于服务器而言,则忽略了浏览器展示、网络传输等时间。因此,在实际测试过程中,需明确以什么视角验证被测对象的性能。

大多数情况下,性能测试主要是以用户视角进行,因此在实际测试过程中,通常关注用户行为,所以,响应时间一般指客户端发出请求到接收到服务器端的响应数据所消耗的时间。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:110685036【暗号:csdn888】

需注意的是,性能测试工作中,客户有时可能需要测试公网的系统来验证性能指标,从测试经验来看,最好不要尝试在公网进行性能测试,原因有二:

第一、 可能影响现网用户。实施性能测试过程中,可能产生大量的压力与垃圾数据,从而破坏生产环境,导致缺陷的产生,影响实际的业务。

第二、 压力模拟可能无法真实体现。性能测试工程师实施性能测试时,利用测试工具,模拟了大量的并发数,产生了大量的业务数据,但因负载生成器所在的网络与服务器所在网络不同,或者服务器的网络安全设置,导致压力数据无法达到被测服务器,整个网络环境不可控,从而导致测试失败。

有一种情况除外,模拟固定带宽网络访问的场景,可在局域网中使用限制带宽的手段进行测试。遵循一个原则,测试过程中,任何资源都必须可控。

l 吞吐量

单位时间内系统处理用户请求的数量,可以用请求数/单位时间或者点击数/单位时间,或者字节数/单位时间等方式来衡量,其中通过字节数/单位时间的计算方式,与当前的网络带宽比较,可以找出网络方面的问题。例如,1分钟内系统可以处理1000次转账交易,则吞吐量为1000/60=16.7。吞吐量指标直接体现了软件系统的业务处理能力,尤其适用于系统架构选型,做对比测试。

l 系统资源耗用

系统资源耗用,客户端与服务器系统各项硬件资源的耗用情况,如CPU使用率、内存使用率、网络带宽占用率、磁盘I/O输入输出量等。一个系统的高效运行,除了软件资源外,硬件资源也是不可缺少的部分,因此在性能测试过程中,需关注系统资源的耗用。

l 业务成功率

业务成功率意为用户发起了多笔业务请求,成功的比率有多少。例如,测试银行营业系统的并发处理性能,全北京100个网点,中午12:30到13:30一个小时的高峰期里,要求能支持50000笔开户业务,其中成功率不少于98%,也就是需要成功开户49000笔,其他的1000笔可能是超时,或者其他错误导致未能开户成功。业务成功率展示了在特定压力或负载情况下,服务器正确稳定处理业务请求的能力。

l TPS

单位时间内服务器处理的事务数,该指标值越大越好。一般情况下,用户业务操作过程可能细分为若干个事务,单位时间处理的事务数越多,说明服务器的处理能力越强。

根据上述各个指标的概念,结合被测对象本身的业务情况,做出如下测试需求及指标分析。

ECShop是一个面向广大网络用户的电子商务系统。大部分用户会在某个时间段访问该电商平台,进行网络购物,但如何确定用户访问的时间段呢?

新系统没有上线时,没有历史数据可以依据,这种情况下,测试工程师可以通过竞品分析,获取友商系统的运营数据作为参考。以淘宝运营数据为例,通过运营团队统计,大部分消费者集中在如图7- 2所示的时间段访问电商平台。

通过上图分析,业务峰值几乎在15点-17点及21点-23点左右,业务峰值期持续2个小时左右,若要测试稳定性,则需根据实际业务情况模拟用户应用场景。

确定性能测试评估的时间段后,需确定在该时间段内需完成的业务量,这就需要统计有多少人在这个时间段使用ECShop电商系统。统计这个数据比较难,因为各个公司运营规模不一样。这种情况下,测试工程师需根据产品团队的业务规划、产品设计给出一个参考值,比如系统初期设计规模在单天15万业务量,峰值交易5000笔、最高并发100用户(如秒杀业务)等。通过对预设业务目标的分析,可得出以下几个数据:

1. 峰值时间段2个小时;

2. 单天15万业务量访问;

3. 峰值交易5000笔;

4. 最高并发100个用户。

接着分析,满足上述需求的同时,还需要考虑业务的响应时间。被测对象的响应时间,作为一个很直观的用户体验数据,可很好的衡量被测对象是否让用户感受好,但感受好并没有一个量化的指标,只是个相对的概念。响应时间在业内一个经验值,采用Apdex联盟的建议值:3秒、3秒-12秒,12秒以上。0-3秒的业务处理响应时间是非常理想的,而3秒-12秒则是普遍可容忍的时间,但超过12秒的响应时间,用户一般不会接受,可能选择刷新,甚至放弃操作。这样的经验值在实际测试中对确定响应时间有很高的参考价值,当然响应时间还应该根据业务类型确定,而不能仅从用户的感官考虑。本次项目测试采用常规的5秒为目标,也就是说ECShop平台处理登录、商品随机浏览购买等业务的服务器响应时间均不超过5秒。

单天15万业务量,表明在一天时间内总的业务量为15万,但未明确是哪些业务的数据量叠加,还是每项业务都是此要求。此处假定单项业务每天有15万的数据量。

从图7- 2得知,用户访问并非是均分在24个小时内,因此,在没有历史数据可依据的情况下,利用经济学中的“二八原则”进行分析,80%的业务量集中在20%的时间段内。单天峰值时间段共有2个:15点-17点,21点-23点,可得如下业务量分解数据:

15万*80%=12万

24个小时*20%=4.8小时

4小时/4.8小时=83%

以15点-17点,21点-23点为总考察时间段,则期望业务量值为:

12万*83%=9.96万

以15点-17点为测试考察段,则期望业务量值为:

12万*(2小时/4.8小时)=5万

通过上述分析,需测试ECShop平台在2小时内支持5万用户登录及商品随机浏览购买。

除了软件性能要求外,还应该对硬件资源进行监控,比如服务器CPU使用率、内存使用率、网络带宽等。如果用户需求、项目组或其他利益相关方未提出性能指标要求,则可按照行业经验,CPU使用率不超过80%、内存使用率不超过80%、网络带宽占用不超过50%等。CPU使用率超过80%表明CPU应用繁忙,如果持续维持在90%甚至更高,很可能导致机器响应慢、死机等问题。当然,过低也不好,说明CPU比较空闲,可能存在资源浪费的问题。对于内存存在同样的问题。当然,80%只是一个经验值,最终的性能测试指标需经过评审才能最终确定。

通过上述业务数据分析,最终得到本次测试的性能需求指标如下图所示

得出本次测试的性能参考指标后,测试工程师即可进行性能测试模型的建立

END,今天的分享就到此结束了!点赞关注不迷路!

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

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

相关文章

【axios】TypeScript实战,结合源码,从0到1教你封装一个axios - 基础封装篇

目录 前言版本环境变量配置引入的类型1、AxiosIntance: axios实例类型2、InternalAxiosRequestConfig: 高版本下AxiosRequestConfig的拓展类型3、AxiosRequestConfig: 请求体配置参数类型4、AxiosError: 错误对象类型5、AxiosResponse: 完整原始响应体类型 目标效果开始封装骨架…

Mac自动同步微信聊天记录(Mac显示资源库)

Mac自动同步微信聊天记录 在使用阿里云盘自动同步mac上微信的聊天记录时,遇到了/home/wangguagnjie/目录下没有资源库文件夹的情况 需要按照以下步骤将其显示到/home/用户名目录下,才能选中指定文件夹 使用阿里云盘,可以选择自动同步指定文…

ModBus电表与RS485电表有哪些区别?

在能源计量领域,ModBus电表和RS485电表是两种常见的设备,它们都具有监测和记录电能数据的功能。然而,它们之间存在一些区别,比如通信协议、连接方式、数据格式等等参数的区别有哪些? ModBus电表和RS485电表都是用于电能…

Java多线程其他细节知识

并发、并行 进程 并发的含义 并行的理解 线程的生命周期

奇葩问题:arp缓存与ip地址冲突(实际是ip地址被占用导致arp缓存出现问题)

文章目录 今天遇到个奇葩的问题 今天遇到个奇葩的问题 今天遇到个奇葩的问题,我把我们192.168.1.116的盒子ip改成192.168.2.116后,再改回来,发现我们盒子的http服务始终无法访问,用Advanced IP Scanner扫描一下,发现就…

虾皮选品分析工具:为卖家提供市场洞察和优化策略

随着电商平台的发展,越来越多的卖家选择在虾皮(Shopee)平台上销售产品。然而,如何在激烈的竞争中脱颖而出,成为卖家们面临的一大挑战。虾皮选品分析工具应运而生,为卖家提供了市场分析、选品策略和产品优化…

RHCSA---基本命令使用

文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 Linux中终端中的很多操作都是通过命令行实现的,最常用的输入命令的方法有以下两种。 (1).打开自带的终端,类似于Windows中的CMD (2).ssh远程连接,关于…

VUE2中使用阿里云播放器AliPlayer

简述 基于 Vue 的播放器单页应用, 利用 web 播放器 sdk 进行视频点播,包含播放列表、字幕、多语言、自适应码率,皮肤自定义等功能 Web播放器文档 已知问题 vue中使用截图,不太好使【已自行优化】无键盘快捷键,无法通过空格暂停…

力扣:184. 部门工资最高的员工(Python3)

题目: 表: Employee ----------------------- | 列名 | 类型 | ----------------------- | id | int | | name | varchar | | salary | int | | departmentId | int | ----------------------- 在 SQL …

人工智能原理复习--知识表示(二)

文章目录 上一篇产生式表示法推理方式 结构化表示语义网络语义网络表示知识的方法和步骤应用题目 框架表示法下一篇 上一篇 人工智能原理复习–知识表示(一) 产生式表示法 把推理和行为的过程用产生式规则表示,所以又称基于规则的系统。 产…

9.二维数组——打印出杨辉三角形(要求打印出10行)

文章目录 前言一、题目描述 二、题目分析 三、解题 程序运行代码 前言 本系列为二维数组编程题&#xff0c;点滴成长&#xff0c;一起逆袭。 一、题目描述 打印出杨辉三角形&#xff08;要求打印出10行&#xff09;。 二、题目分析 三、解题 程序运行代码 #include<s…

基于SpringCloud的动漫论坛

基于SpringCloud的动漫论坛《BOKI》 摘要&#xff1a;鉴于现如今的互联网网站的存在形式&#xff0c;网站内部有可能内嵌论坛&#xff0c;因此&#xff0c;该项目中实现一个整体的、可移植性强的插件式论坛&#xff0c;论坛就有可能突破ACG主题的限制&#xff0c;实现论坛与主…

亚马逊发布人工智能助手Amazon Q,一起来看看有什么功能

Amazon 在11.28日Re:Invent大会上推出人工智能助手Amazon Q&#xff0c;主要面向企业客户&#xff0c;提供个性化服务。号称是专为工作定制的生成式人工智能助手。Your generative Al-powered assistant tailored for work 核心能力企业知识库&#xff1a;为客户提供快速、相关…

YOLOv8独家原创改进:自研独家创新MSAM注意力,通道注意力升级,魔改CBAM

💡💡💡本文自研创新改进:MSAM(CBAM升级版):通道注意力具备多尺度性能,多分支深度卷积更好的提取多尺度特征,最后高效结合空间注意力 1)作为注意力MSAM使用; 推荐指数:五星 MSCA | 亲测在多个数据集能够实现涨点,对标CBAM。 在道路缺陷检测任务中,原始ma…

oracle官方的反解析工具:javap详解

1、解析字节码的作用 通过反编译生成的字节码文件&#xff0c;我们可以深入的了解java代码的工作机制。但是&#xff0c;自己分析类文件结构太麻烦了&#xff01;除了使用第三方的jclasslib工具之外&#xff0c;oracle官方也提供了工具&#xff1a;javap javap是jdk自带的反解…

laraval6.0 GatewayWorker 交互通信

laravel 6.0 GatewayWorker 通讯 开发前准备下载 GatewayWorker 及操作方式前端demo测试效果项目中安装GatewayClient开发前准备 GatewayClient 官网:https://www.workerman.net/ 当前使用的是宝塔操作 下载 GatewayWorker 及操作方式 前端demo 测试效果 项目中安装GatewayC…

Windows快速找到软件的exe文件路径

Windows快速找到软件的exe文件路径 你是否有如下困惑&#xff1a; 经常忘记软件的默认安装路径忘记了软件自定义的安装路径 以至于无法找到软件启动的可执行程序exe文件&#xff1f; 实际中&#xff0c;在Windows系统中使用pywinauto时经常需要去寻找软件启动的可执行文件ex…

从零开始的c语言日记day38——数组参数,指针参数

一维数组传参 要把数组或者指针传给函数&#xff0c;那函数参数如何设计&#xff1f; 上面各写法有问题嘛&#xff1f; 第一个没问题 第二个没问题 第三个没问题 第四个没问题 第五个解析&#xff1a;定义int*arr2[20]为20个int*类型的数组&#xff0c;test2之后用的是ar…

python项目报错

解决办法&#xff1a;不要用配置的镜像脚本&#xff0c;直接用此命令 pip install pandas -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

Vue拖拽div移动位置

<div id"TestDiv" mousedown"OnMouseDown"></div> css #TestDiv { position: absolute;left: 50%;top: 50%;width: 100px;height: 100px;z-index: 999;background-color: red; } 处理函数 const OnMouseDown(e:any)> {let videoBox:any…