为什么要使用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插件 常用于模拟负载测试场景。