Jmeter阶梯加压找到性能拐点

一、压力测试理解

大部分同学都有使用jmeter做压力测试的经验,那么请问:怎么做压力测试?大家可能会回答:“加线程组,加并发,查看结果树或者聚合报告”。那么请问什么是压力呢?
在我们实际工作中,压力通常用RPS来表示。RPS(Request Per Second)每秒钟的请求数,它代表对服务器实际发出压力的大小。
RPS由并发数,和服务器的响应时间(RT)决定,他们之间的计算公式为:并发数=RPS*RT

二、对****首页进行压测

1、设置线程组信息(设置200个线程,不限制迭代次数)在这里插入图片描述

2、新建首页HTTP请求,在该请求下添加Throughput Shaping Timer(吞吐量控制器):用来控制吞吐量的控制器,通过延缓线程运行来整体控制取样器产生的RPS

Jmeter没有Throughput Shaping Timer插件需要去官网下载:
下载地址:https://jmeter-plugins.org/?search=jpgc-tst
下载插件后放在jmeter的目录lib/ext下面,重启Jmeter

3、在Timer下方添加Throughput Shaping Timer(大家也可以下载汉化版本便于理解):
在这里插入图片描述

4、配置Throughput Shaping Timer在这里插入图片描述

0-10s:RPS请求从1逐步增加到200
10-30s:RPS请求从200逐步增加到400

120-180s:RPS为1000/s持续一分钟
每当我们主动增加一行信息,下方的折线图会实时变动,代表着阶段性RPS请求数变化

5、添加监听器
除了平时常用的结果树和聚合报告,我们也可以使用:Transaction per Second / Hits per Second / Response Times Over Time / Active Threads Over Time…每一个都能监听特定指标在运行过程中的变化
在这里我们添加三个监听器:TPS,HPS,RT
TPS:分析吞吐量
HPS:单位时间的点击率,可以理解为用户触发的请求数
RT:整个事务运行期间的响应时间

如果有同学发现Listener下方没有上述的监听器,不要紧张,先百度,如果还没有找到答案,请到官网下载Plugins-Standard和Plugins-Extras两个插件,丢到ext目录下,然后再重启。在这里插入图片描述

三、运行并分析结果

终于到运行这步了,撒花✿✿ヽ(°▽°)ノ✿在这里插入图片描述

3.1 首先分析Hits per Second,在1分10秒之前,RPS逐步增长,有同学会问,怎么会是RPS?不是HPS吗?因为在单接口请求下,我么可以认为HPS和RPS是相等的。

3.2 在1分10s这个节点,最大RPS=662/s(测试环境相当好的一个数据了,给游卡点赞),可以理解为:最大支持1秒内662个用户同时访问****的首页。

3.3 还记得我们文章开头处的公式吗?并发数=RPS*RT在这里插入图片描述

我们的RT是0.263s(也是比较正常的一个数值),这时候可能会有同学说,你这里不能取平均时间,不具有代表性,我们还应该考虑90%,95%,99%不同比例的接口响应时间。对的,个人认为,这些数值在和平均值没有过大的区别的情况下,我们可以取平均值来计算,如果说出现了较大的波动,那么我们需要考虑是不是服务器的内存,cpu出现了问题。

这里我们算下并发数:662*0.263=174,可以理解为:****的首页支持174个用户在1s内不断的刷新首页。

3.4 我们大家看下TPS(服务器每秒处理的事务数)这张图:在这里插入图片描述

虽然服务器在31s之后出现了较大的波动,但是一直都是success的,没有报错。

我们加大RPS的请求数,缩短时间,再来一波:在这里插入图片描述

查看结果:在这里插入图片描述

还是没有报错,我们服务器这么厉害的吗,心中越来越怀疑,可能是哪里弄错了。

我们点击其中的一个请求:在这里插入图片描述

code的值为1,也被识别成功了,心中万马奔腾。。。。

我们乖乖的加个简单的断言–“code”:0

再跑一下:在这里插入图片描述

惊不惊喜,意不意外,从3s以后,就开始有绿色的折线图(代表失败),应该是测试环境已经崩掉了。需要重启下服务器。正常情况下,在开始出现绿色拐点处,代表服务器每秒处理事务的极限。

这时候有同学问了,我们不是还应该观察服务器cpu,内存,I/O的变化吗?这个可以有的,需要在服务器上装个插件,就能在一个可视化的页面上看到各项指标随着RPS的增加而实时变动的折线图。

四:总结

这篇随笔简单的记录了****首页接口的压力测试过程,可能有一些遗漏和说错的地方,估计日后回过头来再看时,心中自然冒出一句:这个菜鸡…
Jmeter还可以做接口测试,还可以读取csv,还可以自定义脚本,自定义变量…各种各样的插件,功能非常强大,希望大家能一起学习进步。

  • 9
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值