为什么要使用jmeter线程组插件呢?
jmeter自带的线程组插件模拟的压测场景非常有限,当需要模拟复杂压测场景的时候,推荐大家使用jmeter线程组插件。
如何下载jmeter线程组插件呢?
早期版本的jmeter可以针对我们需要的扩展功能,直接提供下载地址进行下载,但最近的jmeter版本已经不支持直接下载插件包了,取而代之,需要下载一个帮助我们下载插件的下载插件管理工具。
插件管理工具的官网下载地址如下:
https://jmeter-plugins.org/downloads/all/
点击“plugins-manager.jar”链接,等待插件管理jar包下载完毕后,拷贝到jmeter目录下的\lib\ext下
如果jmeter此时处于启动状态,需要重启jmeter,顺带说明下,jmeter的官网下载地址为http://navo.top/yIBzqe
在jmeter窗口中,依次单击菜单项Option选项 -》Plugins Manager,在弹出的插件下载窗口JMeter Plugins Manager中,
选中选项卡“Installed Plugins”,
在搜索框中输入“Custom Thread Groups”
勾选“Custom Thread Groups”,单击【Apply Changes and Restart JMeter】,等待线程组插件下载完毕并重启jmeter。
接下来是如何使用线程组插件?
常用的线程组插件为Ultimate Thread Group插件和Custom Thread Groups插件。下面分别介绍这两个线程组插件。
01
Ultimate Thread Group插件
如何打开Ultimate Thread Group插件?
在jmeter窗口中,依次单击菜单项:测试计划 ->右键 ->添加 ->线程组 ->jp@gc - Ultimate Thread Group,这样就打开了Ultimate Thread Group插件。
如下线程组执行计划表中的各个列的含义如下:
Start Threads Count:当前行启动的线程总数
Initial Delay/sec:延时启动当前行的线程,单位:秒
Startup Time/sec:启动当前行所有线程达峰值所需时间,单位:秒
Hold Load For/sec:当前行线程达到峰值后的稳定加载时间,单位:秒Shutdown Time:停止当前行所有线程所需时间,单位:秒
使用Ultimate Thread Group可以实现模拟简单并发场景、2^n步进场景、浪涌场景、锯齿状场景**。下面分别说明如何设置这些场景。
(1)简单并发场景设置
单击【Add Row】,在Start Threads Counts列设置100并发,缓增压Startup Time列值为30sec完成, 持续运行Hold Load For列值为60秒,缓减压Shutdown列值为10sec完成。
(2)浪涌场景设置**
浪涌场景设置特点:
第1次加载100并发,加载30sec,减压10sec,持续60sec;
第2次加载200并发,延迟100sec(=30sec+10sec+60sec),加载30sec,减压10sec,持续60sec;
第3次加载100并发,延迟200sec(=100sec+100sec),加载30sec,减压10sec,持续60sec;
第4次加载200并发,延迟300sec(=200sec+100sec),加载30sec,减压10sec,持续60sec
模拟一段时间内压力高持续一段时间后,压力更高持续一段时间后, 压力稍微降下来这种向海浪一样的业务系统压力。
02
Custom Thread Groups插件
如何打开Custom Thread Groups插件?
在jmeter窗口中,依次单击菜单项:测试计划 -》添加 -》 线程组(用户)-》jp@gc - Stepping Thread Group,这样就打开了Custom Thread Groups插件。
如下线程组执行计划参数,各参数的含义分别为:
this group will start * threads**:
加载多少线程,100
First,wait for * seconds:
等待多长时间开始加载线程(第一个线程延迟多少秒开始加载),0
Then start * threads**:
初次加载多少个线程,0
Next,add * threads every * seconds :
下次加载几个线程,10,当前运行多长时间后再次加载线程
using ramp-up:
加载线程时间,5秒,也就是说10个线程在5秒内加载完毕
Then hold load for * seconds:
线程全部加载完成后运行多长时间,60秒
Finally,stop * threads every ... seconds**:
多长时间停止多少个线程,每1秒停止5个线程
Custom Thread Groups插件常用于模拟负载测试场景。