性能测试中,有时需要模拟一种实际生产中经常出现的情况,即:从某个值开始不断增加压力,直至达到某个值,然后持续运行一段时间。
在jmeter中,有这样一个插件,可以帮我们实现这个功能,这个插件就是:Concurrency Thread Group
相关介绍以及下载地址如下:https://jmeter-plugins.org/wiki/ConcurrencyThreadGroup/
其实最好的办法,是直接下载jmeter的第三方插件Plugin Manager(其中包含了很多扩展支持插件),解压后将其放入jmeter安装目录的jmeter-3.0\lib\ext路径下,然后重启即可。
下载地址:https://jmeter-plugins.org/wiki/PluginsManager/
安装完成后,我们开始创建测试计划,并选择Concurrency Thread Group:
得到下图:
上部分,是对遇到错误时的判断操作,停止或继续测试,可以根据需要进行选择使用。
下部分,是该压测的并发数据输入框。来看下各个参数的含义:
Target Concurrency:目标并发数
Ramp Up Time:加速时间
Ramp-Up Steps Count:加速次数
Hold Target Rate Time:保持目标速率时间
Time Unit:时间单位
Thread Iterations Limit:线程迭代次数限制,即循环次数(空,即为一次)
Log Threads Status into File:将线程状态记录到文件中(保存日志文件);
以图中所示为例,首先Time Unit选择的是min(分),输入的数据为:
Target Concurrency: 50
Ramp up Time(min): 1
Ramp-up Steps Count: 5
Hold Target Rate Time(min): 1
Thread Iterations Limit: (空)
此用例场景为 ,在“Ramp up Time(min): ”1分钟的时间内,一共产生目标线程“Target Concurrency: ”50个;并且,分成“Ramp-up Steps Count: ”5个阶段来完成;在目标线程产生结束后,维持该线程生产速度“Hold Target Rate Time(min): ”1分钟;并且循环执行“Thread Iterations Limit: ”1次。over。
图中红色线条显示了单个循环内线程的产生概况,X轴为时间,共2min;Y轴为线程数,最高50条。5个阶梯显示出了线程的阶梯状分布。
现在对某个主页进行压测实验,并发参数就是上面输入的参数。
聚合报告如下:
Active Threads Over Time如:
从“Active Threads Over Time”这个图里可以清楚看到,并发线程数量呈现出明显的阶梯形状。在不同的时间段内,服务器处在不同的压力级别当中。
希望大家能够相互交流学习,
谢谢大家观看!