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就可以了,没必要继续压下去了。
标签:压测,梯度,接口,线程,设置,TPS,JMeter From: https://www.cnblogs.com/xiaodi888/p/18152803