JMeter 阶梯式压测
作者:互联网
l 测试背景
1.被测项目是一个 B2B 类的工业品商城网站,商城地址:https://b2b.homedo.com/
2.需仿真实际应用的软件环境及多用户注册账号过程的系统负荷,来测试被测服务器的可靠性,同时还要测试被测服务器的响应时间。
3.验证系统的承压能力,估测系统可承受的访问压力
4.查找定位注册接口的瓶颈
l 测试目的
300并发下:
- 注册接口响应时间1s内
- 注册成功率90%
| 测试方案
- 测试工具:Jmeter
- 执行时间:工作日白天(a.白天应急能力强 b.获取真实的压测数据)
- 场景:从10并发开始,每5s加压20并发,直至达到目的并发数300并维持30min,之后保持每5s停止50并发的速率关闭
- 结果:吞吐量、平均响应时间、错误率的关系图表(硬件占用数据无法监控)
l 测试步骤
1.下载jmeter-plugins-manager-1.7.jar插件,将这个插件下载好以后方到jmeter目录-->lib-->ext文件夹下 官网下载:https://jmeter-plugins.org/install/Install/
2.重新启动jmeter,在选项中就能看到Plugins Manager (has upgrades)插件管理这个选项。
3.点击这个插件管理,首先展示的是标准的插件(已安装的)
4.Available Plugins第三方可安装的插件
5.点击右下角Apply Changes and Restart JMeter 会自动安装并重启Jmeter
6.添加jp@gc - stepping thread group 线程组
7.添加http请求,添加聚合报告,添加查看结果树,添加计数器(保证注册账号不会重复,每次都能注册成功)
The group will start 300 threads: 一共会启动300个线程,即最大值是300
First,wait for 5 seconds,then start20 threads: 刚开始启动的时候,等待5秒,再启动10个线程
Then add 20 threads every 5 seconds: 然后每5秒,增加20个线程
using ramp-up 0 seconds: 这个表示在每5s增加20个线程,无需间隔时间,直接增加下一个20个线程,单位为s
Then hold load for 30 seconds: 到达最大值300后,持续30s
Finally stop 50 threads every 5 seconds: 最后,每5秒停止50个线程。
Label:请求名称
#样本:总请求数量
平均值:平均响应时间,单位为毫秒
中位数:中间位请求响应时间,比如这里是45621个请求,按照从小到大进行排序,排名22811请求的响应时间为379毫秒
90%百分位:同理,按照从小到大进行排序,排名41869请求的响应时间为1011毫秒
95%百分位:同理,按照从小到大进行排序,排名44195请求的响应时间为1455毫秒
99%百分位:同理,按照从小到大进行排序,排名45165请求的响应时间为2339毫秒
最小值:最短的响应时间,单位为毫秒
最大值:最大的响应时间,单位为毫秒
异常%:失败请求占总请求百分比
吞吐量:每秒处理多少个请求
接收KB/S:数据接收速率,每秒从服务器接受到的数据量
发送KB/S:数据发送速率,每秒像服务器发送的数据量
l 测试总结
期待结果:
- 注册接口响应时间1s内
- 注册成功率90%
测试结果:
- 注册接口响应时间1s内
- 注册成功率36.36%
在线程数达到210时,错误率出现并开始上升,到达最大值300,并持续30秒时,错误率呈直线上升,而后逐渐关闭线程数至200左右时,错误率停止在63.64%
说明注册接口的瓶颈在200左右,距客户要求相差甚远,需优化
| 测试完成
标签:插件,请求,毫秒,压测,阶梯式,300,响应,线程,JMeter 来源: https://www.cnblogs.com/forgetm/p/15936107.html