性能场景设计

一、常用的线程组

线程数:并发用户数

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数值是多少,取中间平均出现的大概的数值

性能场景的设计原则:缓起步,快结束     

一个完整的脚本  包括线程组,取样器,监听器