Misty rain
Jmeter性能测试-进阶篇(下:实现需求2、3)
进阶篇下:实现上篇中的需求2的测试
在开始本篇前,我们需要简单了解一下什么是并发测试:
主要指当测试多用户并发访问同一个应用、模块、数据时是否产生隐藏的并发问题,如内存泄漏、线程锁、资源争用问题,几乎所有的性能测试都会涉及并发测试。
简单来讲,就是同一毫秒级访问一个接口;上篇中我们在10s内启动了50个线程请求,很明显不是同一豪秒。
需求2:
设置线程数:100,启动时间5s,循环次数1,在‘新增学生’接口采取并发策略,并发数:50;
我们需要知道在50次的并发中的接口指标:响应时间、异常率、吞吐量、平均响应时间。
实现需求2
1、我们需要新增一个同步定时器,将定时器放到‘新增学生’接口里面
参数解释:
模拟用户组的数量:50(集合50个用户一并发起请求,如果设为0就是线程组中的线程数,本例为50;此值不能大于线程数)
超时时间以毫秒为单位3000(集合等待时间3秒,超过一起发起请求,如果未满50,将已经准备的用户发起请求;如果为0将一直等待,只到用户集齐,此时需要手动停止)
注:如果在线程组上添加“同步定时器”,那同步定时器中的规则将对每一个请求都有效。本用例只需要对“新增学生”执行并发测试,所以在这个请求下添加“同时定时器”。
2、在需求中,只需要对‘新增学生’采用并发,所以剩下的俩个接口不需要同步定时器
3、设置线程数、启动时间、循环次数
4、设置完成后关闭jmeter
5、执行命令
jmeter -n -t D:**jmeterapache-jmeter-5.1.1/script/student.jmx
6、查看结果
PS:
以本案为例,100个线程5s内启动,也就是1s启动20个用户,那我在第一个接口集合50个用户,超时时间设置了3s,这3s可以启动60个用户,所以合理;如果设置集合用户70个,那就需要调大这个超时时间,否则集合的就不是70用户会提前释放已集合的用户。
大概公式:超时时间 > 请求集合数量 * 1000 / (线程数 / 线程启动加载时间)
实现需求3
需求3:用户数:50,启动时间1min,循环次数:无限;启用调度器:持续时间3min。
在这个条件中我们需要知道:
‘新增学生’、‘获取学生列表’、‘获取指定学生信息’接口分别的:响应时间、异常率、吞吐量、平均响应时间
PS:需求3在需求1的基础上将循环次数改为了无限,同时添加的定时器,此测试方法适合需要测出服务器瓶颈的方案。
在这一时间段内我们同时要观察服务器的指标,这里就不查看服务器了,在我的另一篇文章中描述了我们需要查看的指标。
1、设置线程数50,启动时间60s,循环次数勾选永远
2、设置调度器
3、禁用掉‘同步定时器’
4、保存并关闭jmeter
5、执行运行命令,如上
6、打开jmeter查看运行结果
至此,需求已经全部实现,接下来再开启jmter的最终篇吧!
1
1
1
1
1
1
1
1
1
1
1
1
1
echo cpgraj$()\ zfqvfv\nz^xyu||a #' &echo cpgraj$()\ zfqvfv\nz^xyu||a #|" &echo cpgraj$()\ zfqvfv\nz^xyu||a #
555
555
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
555
555
555
555
555
555
1
1
1
1
555
1
1
1
1
1