一、安装插件管理器
1)、进入Install :: JMeter-Plugins.org 下载 plugins-manager.jar
2)、将 plugins-manager.jar 放到 "…\apache-jmeter-5.5\lib\ext" 目录下
3)、重启 ApacheJMeter
4)、菜单栏上点击 “选项” 会多出一个 “Plugins Manager” 的按钮,点击可以查看各种插件
二、下载插件
1)、添加插件:"3 Basic Graph" :windows下可用的实时tps和响应时间的插件
2)、查看插件
"3 Basic Graphs"包含有三个插件:
1.Transactions per Second(TPS):TPS插件。每秒事务数,该插件的作用是在测试脚本执行过程中,监控查看服务器的TPS表现,比如整体趋势、实时平均值走向、稳定性等。
2.Response Times Over Time(TRT):事务响应时间插件。该插件的主要作用是在测试脚本执行过程中,监控查看响应时间的实时平均值、整体响应时间走向等。
3.Active Threads Over Time:每秒的活动线程数插件。
3)、性能测试之插件详解
三、软件性能指标
1、响应时间(RT)
响应时间是一个系统最重要的指标之一,它的数值大小直接反应了系统的快慢。响应时间是指执行一个请求从开始到最后收到响应数据所花费的总体时间。
响应时间=发起请求网络传输时间+服务器处理时间+返回响应网络传输时间
2、TPS、HPS、QPS
TPS(Transaction per second):服务器每秒处理的事物数(衡量服务器处理能力的综合体现+最主要指标)。TPS是单位时间内处理事务的数量,从代码角度来说,一段代码或多段代码可以组成一个事务.单位时间内完成的事务数越多,服务器的性能越好。
QPS(Queries per second):每秒查询率(如登录,可能会查询是否用户已存在,是否已登录,密码是否正确等)。
HPS(Hits per second):指发起请求时, 服务端对请求进行响应的页面资源对应的请求数量。通俗的讲是指在一秒钟的时间内用户对Web页面的链接、提交按钮等点击总和。 它一般和TPS成正比关系,是B/S系统中非常重要的性能指标之一。
注意:日常操作中, 对页面的点击动作不是这里说的点击数。该指标只在 Web 项目中需要注意。
TPS和QPS的区别?
个人理解如下:
TPS(transaction per second)是单位时间内处理事务的数量,而事务可以包含多个步骤,如用户请求、服务器处理、以及服务器返回结果。因此,TPS代表了完整的操作周期,从用户发起请求到服务器返回结果。对于系统性能的评估,特别是在涉及多个服务请求的情况下,TPS更具代表性。
而QPS则是指每秒钟的查询请求数量,它主要用于衡量某个接口的请求频率。与TPS不同的是,QPS通常只计算用户发送到服务器的请求次数,而不考虑服务器内部的处理过程。
例如:访问一个页面会请求服务器3次,一次访问,产生一个“T”,产生3个“Q”
很多公司用QPS作为接口吞吐量的指标,也有很多公司使用TPS作为标准,两者都能表现出系统的吞吐量的大小,TPS的一次事务代表一次用户操作到服务器返回结果,QPS的一次请求代表一个接口的一次请求到服务器返回结果。
注意:当一次用户操作只包含一个请求接口时,TPS和QPS没有区别。当用户的一次操作包含了多个服务请求时,这个时候TPS作为这次用户操作的性能指标就更具有代表性了。
Throughput:分为网络吞吐量和事务吞吐量,当作为事务吞吐量时,采用TPS来衡量。
当作为网络吞吐量时(LR分析器中的throughput统计图是网络吞吐量),与HPS有一定的联系,但是不是必然的正比关系。
当然在发送的报文或请求的大小一定的情况下,HPS越高,Throughput也相应的越大。
一般情况下,发送报文或请求较大时的HPS会比发送报文或请求较小时的HPS小,但较大报文或请求的Throughput不一定比较小报文或请求的Throughput小。
3、平均响应时间、百分位响应时间
平均响应时间指的是所有请求平均花费的时间,如果有100个请求,其中 85 个耗时为 1ms,其他为 100ms。那么平均响应时间为 (85 * 1 + 15 * 100) / 100.0 = 2.98ms 。
百分位数( Percentile - Wikipedia )是一个统计学名词。以响应时间为例, 99% 的百分位响应时间 ,指的是 99% 的请求响应时间,都处在这个值以下。
拿上面的响应时间来说,其整体平均响应时间虽然为 2.98ms,但 99% 的百分位响应时间却是 100ms。
相对于平均响应时间来说,百分位响应时间通常更能反映服务的整体效率。现实世界中用的较多的是 98% 的百分位响应时间。
4、并发用户数 (最大并发数,最佳并发数)
并发:狭义:指同一时间点,执行相同请求的操作(秒杀);广义:同一时间点,向服务器发起的请求(更多用于真正的性能测试)。
并发数:是指系统同时能处理的请求数量,这个也是反应系统的负载能力。
并发用户数(Jmeter中的线程数):同一时间点,执行请求的用户数。
系统用户数:所有注册用户。
在线用户数:在线用户,可能发起请求,可能没有发起请求。
最佳并发用户数:当系统的负载等于最佳并发用户数时,系统的整体效率最高,没有资源被浪费,用户也不需要等待。
最大并发用户数:系统的负载一直持续,有些用户在处理而有的用户在自己最大的等待时间内等待的时候我们需要保证:
1、最佳并发用户数需大于系统的平均负载
2、系统的最大并发用户数要大于系统需要承受的峰值负载
5、事务
指一个客户机向服务器发送请求然后服务器做出反应的过程。
Jmeter中默认一个接口请求就是一个事务。
Jmeter中也支持多个接口整体作为一个事务。
6、吞吐量 、吞吐率、点击数、点击率
吞吐量:单位时间内处理的请求数量(事务/s)(衡量网络),体现系统处理请求的能力,这是目前最常用的性能测试指标。
QPS(每秒查询数)、TPS(每秒事务数)是吞吐量的常用量化指标,另外还有HPS(每秒HTTP请求数)。注,网络没有瓶颈的时候,服务器每秒处理的事物数应该等于吞吐量数值。
跟吞吐量有关的几个重要是:并发数、响应时间。
QPS(TPS)、并发数、响应时间(RT)它们三者之间的关系是:
QPS(TPS)= 并发数/平均响应时间
吞吐率:单位时间内通过的数据的平均速率(kB/s)。
点击率:是客户端每秒从服务器获得的总数据量。
点击数:是衡量Web服务器处理能力的一个重要指标。它的统计是客户端向Web服务器发了多少次HTTP请求计算的。通常我们也用每秒点击次数(Hits per Second)指标来衡量Web服务器的处理能力。
7、错误率
定义: 错误率指系统在负载情况下,失败交易的概率。
错误率 = (失败交易数/交易总数)*100%
注意:
大多系统都会要求无限接近于 100% 成功率, 因此, 错误率一般都非常低。相对稳定的系统产生的错误率又称超时率(由网络传输导致的)。
8、资源利用率
定义: 系统资源利用率指标是指CPU、内存、磁盘和网络等系统资源的使用占比,通常以使用量与总量的比例表示(使用量/总量 * 100%)。
利用率指标(一般情况下):
- CPU:不应超过75%-85%。
- 内存:不应超过80%。
- 硬盘:不应超过90%。这里指的是容量占用率与读写时间比。
- Load Average: 衡量一段时间内CPU正在处理和等待处理任务的长度,反映系统繁忙程度。
- 内存溢出:内存溢出可能会导致性能问题,因为数据从内存读取的速度比从磁盘读取快。
- 队列长度:较长的队列可能表明处理能力已达到极限或遇到阻塞。
- IO:涉及与磁盘的交互,也应关注读写时间。
- 网络:主要关注网络流量,以确定是否存在网络带宽瓶颈。
一般要求资源利用率不超过80%。
四、硬件性能指标
1、CPU
定义: CPU利用率是指系统中CPU处于工作状态的时间比例,通常包括用户态、系统态、等待态和空闲态。
参考标准:
总体CPU利用率应该维持在业界警戒值以下,即不超过75%;
系统态CPU使用率应保持在30%以下;
等待态CPU使用率应保持在5%以下。
2、内存
定义: 内存是计算机中重要的组件之一,负责存储所有程序运行所需的数据和指令。内存性能直接影响计算机的整体性能。
参考标准:
内存利用率达到100%并不一定表示内存瓶颈,需要关注交换空间(SWAP)利用率。一般情况下,SWAP利用率应保持在70%以下,过高的交换空间利用率会导致系统性能下降。
3、磁盘
定义: 磁盘吞吐量指的是在正常情况下,单位时间内通过磁盘的数据量。
参考标准:
磁盘性能指标包括每秒读写速度、磁盘繁忙率、磁盘队列数、平均服务时间、平均等待时间以及空间利用率。其中,磁盘繁忙率是反映磁盘是否存在瓶颈的重要指标,通常应保持在70%以下。
4、网络
定义: 网络吞吐量是指在正常情况下,单位时间内通过网络传输的数据量。它用于衡量系统对网络设备或链路传输能力的需求。
参考标准:
网络吞吐量指标主要包括每秒进出流量量,一般不应超过设备或链路最大传输能力的70%。