问题:有一个页面,需要测试一下最大支持多少用户并发?

此时需计算的是最大用户并发数,强调的是同时操作,也可以理解为同时发起请求;

针对这个问题,我们可以通过rps定时器或阶梯加压线程组测试每秒最大的请求数;

首先需要导入jmeter-plugins插件 ,然后去初始化需要用到的插件

在平衡状态下,并发数=RPS*响应时间

ios 系统的最大并发量 最大并发数怎么测试_响应时间

a)使用jp@gc - Throughput Shaping Timer(吞吐量成形计时器,调节rps的定时器);

设置线程组中线程数为50,ramp-up时间为1s,永远循环;

同时在请求下面加Throughput Shaping Timer定时间,rps由1增加到400/s;

测试最终运行时间取 线程组运行时间 与 定时器时间的最小值;

ios 系统的最大并发量 最大并发数怎么测试_ios 系统的最大并发量_02

 

ios 系统的最大并发量 最大并发数怎么测试_线程组_03

设置后我们需要添加几个性能测试中常用的监听器:

添加监听器Hits per Second(每秒请求数)

观察HPS走势,HPS在140的时候持续了十几秒,随后HPS稳定在100

ios 系统的最大并发量 最大并发数怎么测试_ios 系统的最大并发量_04

 

 添加监听器 Transaction per second

TPS在48/s稳定了十几秒,然后稳定在30/s

ios 系统的最大并发量 最大并发数怎么测试_监听器_05

  添加监听器 jp@gc - Response Times Over Time

平均响应时间在3s以内

 

ios 系统的最大并发量 最大并发数怎么测试_线程组_06

ios 系统的最大并发量 最大并发数怎么测试_监听器_07

 在比较稳定的情况下,最大rps=140/s,平均响应时间=1.6s,则最大并发=140*1.6=224,也就是224个线程同时启动可满足1s内140/s HPS压力值

b)使用阶梯加压线程组

ios 系统的最大并发量 最大并发数怎么测试_监听器_08

功能如下:

This group will start 100 threads:设置线程组启动的线程总数为400个;

First,wait for N seconds:启动第一个线程之前,需要等待N秒;

Then start N threads:设置最开始时启动N个线程;

Next,add 100 threads every 2 seconds,using ramp-up 10 seconds:每隔2秒,在10秒内启动100个线程;

Then hold load for 40 seconds:启动的线程总数达到最大值之后,再持续运行40秒;

Finally,stop 100 threads every 0 seconds:同时停止100个线程;

设置阶梯线程组各配置项后,再添加各个监听器后观察,发现得出的tps,rps,平均响应时间与添加rps监听器测试出的结果基本一致

 

下面可以来验证一下,线程组的线程数设置为224,其它值可随意,(如,设置定时60s,循环次数设置为100,因为并发数=rps*响应时间 是在平衡状态下得出的结论,所以运行时间不能太短)

添加监听器Hits per Second,Transactions per Second,Response Times Over Time 查看这些指标是否和上面得出的结果一致(预期应该是满足的)

ios 系统的最大并发量 最大并发数怎么测试_监听器_09