一、常用的线程组
线程数:并发用户数
ramp-up:启动时间(线程数的准备时间),在这个时间点结束时,所有用户都准备好
循环次数:填写具体的数值---->每个线程组,运行多少遍;
勾选永远---->一直执行,一般和“调度器”一起使用
调度器:持续时间,一直执行,持续执行多少秒
二、安装插件
安装插件:jmeter plugins manager
怎么看有没有安装成功呢?在jmeter中,打开选项,找到最下面的
当你点进去后,可以进行更新
install plugins:已经安装的插件、available plugins:可以安装的插件、upgrades:可以升级的插件
勾选这个,右下角申请安装(Apply Changes and Restart JMeter)一下即可;安装下载重启(jmeter会自动重启,不需要我们手动去关闭再重启)
重启之后,可以看到线程组有这些东西可以用的,监听器也增加了一些
三、负载测试
负载测试:逐步增加用户并发数,有两种场景;阶梯场景和波浪式场景
3.1 阶梯场景
测试计划-->添加-->线程-->Stepping Thread Group
那么,我们怎么来看这张图呢?
This group will start:最大线程数100个
First,wait for:初始化等待时间0秒
Then start:初始化线程数0个
初始化后,每次增加10个线程,花费5秒,增加后持续运行30秒
Next,add:每次增加10个线程
Threads every:持续运行30秒
Using ramp-up:花费5秒
Then hold load for:达到最大线程数后,运行60秒
运行60秒后,每次减少5个线程,花费1秒
Finally,stop:每次减少5个线程
Threads every:花费1秒
通过添加监听器来跑一例子看看结果图并分析
Transactions per Second:TPS每秒请求事物数
Response Times Over Time:随着时间变化的响应时间
Active Threads Over Time:活跃的线程数
现在通过设置这样的数据,来看看监听器返回的结果是哪些?先看响应图如下:
说明在60秒的时候,响应时间达到了1.5秒;那么此时去活跃的线程图中找信息
再去看看tps的数值,也可以看出个大概是多少
Tips:为什么要1.5秒,因为在我们测试行业,1.5秒是用户所能接受的最慢的时间,相当于一根标尺一样
500ms满意、1500ms可以接受、 超过1500ms无法接受 ,这是针对接口的响应时间此种情况
3.2波浪式场景
测试计划-->添加-->线程-->Ultimate Thread Group
Start Threads Count:最大启动线程数100个
Initial Delay,sec:初始化等待0秒
Start up Time,sec:增加到最大线程数,花费30秒
Hold Load For,sec:保持最大线程数,运行60秒
Shutdown Time:减少到0个线程,花费10秒
适用场景:订餐系统,用餐时间点时,系统访问量很大,用餐时间为波浪的波峰
拿一个例子来跑一下,看看结果并分析:
响应时间图:
活跃线程图:
所能承受的最大数值是20,说明拐点大概就是20
Tps图:
不管是哪种类型的结果分析,几乎是同样的分析方法:
分析的方法总结:第一步,先去响应时间图中,找出1.5秒对应的纵坐标运行时间
第二步,再去活跃线程图中找出纵坐标运行时间对应的横坐标,就差不多可以确定拐点区间是多少
第三步,去tps图上找出大概的tps数值是多少,取中间平均出现的大概的数值
性能场景的设计原则:缓起步,快结束
一个完整的脚本 包括线程组,取样器,监听器