前言
压测的时候,我们会经常关注2个重要的指标 TPS 和 RT
TPS:每秒处理的事务数(Transactions per Second),jmeter的Throughput为吞吐量(请求数/秒)
RT:响应时间(Reponse Time),从发起请求到完全接收到应答的时间消耗
一、监听器之每秒事务数
1、Transactions per Second
jmeter安装后,添加监听器,是默认不带 Transactions per Second
先安装jmeter插件管理器,前面一篇已经介绍过:
在插件管理界面,勾选 jpgc - Standard Set,点安装
安装完成会自动重启jmeter
2、监听器-jp@gc - Transactions per Second
Transactions per Second 插件的作用是在测试脚本执行过程中,监控查看服务器的TPS表现————比如整体趋势、实时平均值走向、稳定性等。
添加监听器-jp@gc - Transactions per Second
设置线程5,循环100次开始压测,聚合报告看到吞吐量9.6/sec
再查看 jp@gc - Transactions per Second 插件的报告,可以看到更详细的实时的TPS
红色是代表全部成功的,有报错的话会绿色显示
二、监听器之响应时间
1、每秒处理的事务数(Transactions per Second)
TPS:每秒处理的事务数,jmeter的Throughput为吞吐率(请求数/秒)
宏观上:TPS=并发数/响应时间,jmeter的Throughput = (number of requests) / (total time)
很多小伙伴会死记硬背公式来推算TPS值,这里涉及到一个概念并发数,这个并发数是指单位时间内发出去的请求数
这里的单位时间并不是1秒,是一个绝对的同一时间,比如0.0001秒,甚至更小的时间
那么这里的绝对并发,我们是没法知道的,我们通常说的并发是一个相对的并发,相对并发,也就是我们线程组里面设置的(线程数)虚拟用户数,可以这么理解
我们可以根据聚合报告看到,平均响应时间是94毫秒,吞吐量27.9/sec
通过上面的公式 tps = 线程数3/平均响应时间0.094秒 ,算出的结果是31.9,跟统计的27.9差不多。
也可以这样理解这个公式,绝对的并发是不存在的,请求发出的时间总有先后,绝对的TPS也是无法计算的,统计的角度看
TPS = 服务器处理请求总数/花费的总时间
我们设置线程组的持续压测时间为5秒,设置线程数3,于是压测的结果TPS值是27.5
根据公式TPS = 总请求数139/总时长5秒,得到的结果是27.8,这样就很接近报告的TPS值了
为了找到服务器的最大TPS值,我们一般设置不同的并发数(线程组)来压测
2、响应时间(Reponse Time)
RT 也就是平均响应时间(Reponse Time), 在聚合报告里面可以看平均值(单位是毫秒),如果我们想查看更详细的报告,跟着每个时间段的平均响应时间
添加-监听器-jp@gc - Response Times Over Time
压测后,先看聚合报告的平均值92毫秒再看实时监控的平均响应时间这种曲线图,在写性能报告的时候加上会显示更专业