首先,我们来了解几个jmeter中的概念
我们在添加一个线程组时通常都要配置这几个属性
线程数:即并发用户数
ramp-up时间(秒):持续时间,加速时间
比如,并发数是1000个,持续时间设置为10,表示跑完1000个线程,我要花费10s,那每秒钟就要发送100个线程
并发数是1000个,持续时间是50s,表示50s要跑到1000个线程,那每秒钟就是1000/50=20,每秒钟发送20个请求
并发数1000个,持续时间1000s,那每秒就是1s个线程。
一、准备工作
首先,我们需要安装jp@gc - Ultimate Thread Group插件,这个不再详述
二、配置jmeter
测试计划-》添加-》线程(用户)-》jp@gc - Ultimate Thread Group,配置后,如下:
在这个线程组下面,我们再配置测试的http请求,添加一个监听器jp@gc - Active Threads Over Time,即可查看线程运行情况
http请求的配置这里不再详述,我们主要研究下jp@gc - Ultimate Thread Group 这个小可爱
创建线性负载:
如下图,我这里创建的就是一个线性负载,我的测试场景是60s内启动100个线程,持续运行60s,花10s的时间结束:
这个场景就比如说,高考成绩公布,这个时候系统60s内涌入了100个用户并发,他们访问系统持续时间60s,10s钟都退出了系统
运行后,查看监听器jp@gc - Active Threads Over Time,
把鼠标点击到监听器的图上,显示横坐标,纵坐标。从这个监听器的图就可以得知,1分钟的时候,线程总数100个,持续运行1分钟,又花了10s停止线程,因此总共耗时了2分10s。
查看聚合报告;
目的:
这里的持续时间,就是要看看系统达到这些负载后,能不能稳定运行,性能会不会恶化?但是这样的话,我们不确定这个负载量是多少,我们不确定服务器能处理的负载量是多少,哪些负载不能处理?
所以,我们要按步骤增加负载,慢慢加上去,这就是我们的步进负载
创建步进负载:
场景:
想看系统的负载量是多少,最大负载多少,是否可以平稳运行
这里我们就要用到多个线程组,在线性基础上增加多个线程组。比如我想每分钟增加25个线程,这25个线程启动耗时话费15s,设置如下:
通过以上配置,观察日志和监听器,就可以知道系统在哪个负载下面平稳运行,能承担多大的负载。
监听结果
创建波浪形测试负载:
场景:
比如12306抢票的时候,每次开放抢票时,有大量用户涌入,等到下次开放时,又有大量用户涌入,这个时候,就像波浪一样,不断敲击服务器,考验服务器的性能
这里,我们就用到jp@gc - Ultimate Thread Group
配置说明:
第一个阶段,花20s的时间,启动25个线程,持续运行60s,用5s的时间停止掉
第二个阶段,第一阶段的线程都停止后,再开始启动第二个阶段的线程,花20s的时间再启动25个线程,再持续60s,用5s停掉
第三个阶段,等第二个线程都结束后,再花20s的时间启动25个线程,持续60s,再停掉
这样像波浪一样拍打服务器,观察服务器的性能,看系统是否能平稳运行。