JMeter的梯度压测
前言
Apache JMeter 是 Apache 组织基于 Java 开发的压力测试工具,用于对软件做压力测试。
一般大家所熟悉的压测脚本方案是,通过一次次去提高线程数量,来对接口性能峰值进行摸底,如果压测任务中出现了几十几百个接口,每个接口都去压5min的(10、20、30、40.。。并发)这样很浪费时间。那么这里介绍另一种方案,可以更高效的对接口的性能进行摸底;即梯度式压测;
1、 梯度式压测,需要先安装,JMeter插件管理器,需要JMeter官网去下载jar包,下载地址:https://jmeter-plugins.org/install/Install/
插件管理器的jar包下载好以后,我们需要把jar包放在lib\ext目录下边。然后重启JMeter客户端,在Options中,就可以看到我们的plugins-manager,进入页面后,在available Plugins 里边搜索jpgc,然后点击右下角按钮安装,完成后重启JMeter;
2、插件的使用,
在Test Plan中,右键添加线程组,Stepping Thread Group
3、线程组的设置方案
这儿需要设置的,已经在图中详细写明,具体根据接口的实际情况去设置线程数,一般的接口上限设置50-70基本就可以了,如果是性能特别好的接口,那么上限就要放大一点,避免还没摸到性能瓶颈,时间就结束了。设置完成以后,可以通过下面的红线趋势图,看懂届时线程数具体是什么执行的。
4、请求头和监控的设置
这里我们不多去讲HTTP Request 的写法,只要放在上一步添加的线程组就行,按照下图去添加,响应时间和TPS趋势图的监控。
5、结果分析
下图我们采用的是10-60梯度压测法,用时7分钟,一次性成功摸底该接口的性能瓶颈。
通过下面的TPS图,很明显,就能看的出来,该接口的最高性能就是350左右,后续攀升到400以后,就开始报错且处理不过来,性能开始下降。
以下这种情况,就代表,设置的线程组上限不够了,TPS还在持续且稳定增长,那么就需要调整上线。增加并发数。
再例举一种情况,下图这种,就说明我们线程数上限设置过大,当然这并不是坏事,毕竟我们没有真正实际去压测时并不知道接口实际情况,如果遇到这种情况,在TPS已经稳定时,stop就可以了,没必要继续压下去了。
结语
亲爱的朋友:
希望本文中描述的问题以及解决方案,可以帮助到您。当然,我们深知,问题和挑战总是层出不穷,新的情况也在不断涌现。如果读者朋友您有更好的方案,或者在实际应用中发现了文中的不足之处,请不吝分享您的宝贵建议。诚挚地邀请每一位读者加入我们的行列,共同完善这份教程。
感谢您的阅读与支持!
Dear frends,
We hope that the questions and solutions presented in this article can
be of assistance to you. Of course, we are fully aware that problems and
challenges are always emerging in an endless stream, and new situations
are constantly arising. If you, our readers, have better solutions or
have discovered any deficiencies in this article through practical
application, please do not hesitate to share your valuable suggestions
with us. We sincerely invite every reader to join us in continuously
improving this tutorial.
Thank you for your reading and support!
See you,Parting is for better meeting!