其他分享
首页 > 其他分享> > JMeter 阶梯式压测

JMeter 阶梯式压测

作者:互联网

l 测试背景  

  1.被测项目是一个 B2B 类的工业品商城网站,商城地址:https://b2b.homedo.com/
  2.需仿真实际应用的软件环境及多用户注册账号过程的系统负荷,来测试被测服务器的可靠性,同时还要测试被测服务器的响应时间。
  3.验证系统的承压能力,估测系统可承受的访问压力
  4.查找定位注册接口的瓶颈

l 测试目的

300并发下: 

  1. 注册接口响应时间1s内
  2. 注册成功率90%

| 测试方案

  1. 测试工具:Jmeter
  2. 执行时间:工作日白天(a.白天应急能力强 b.获取真实的压测数据)
  3. 场景:从10并发开始,每5s加压20并发,直至达到目的并发数300并维持30min,之后保持每5s停止50并发的速率关闭
  4. 结果:吞吐量、平均响应时间、错误率的关系图表(硬件占用数据无法监控)

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个线程。

  8.执行测试,查看聚合报告

  Label:请求名称
  #样本:总请求数量
  平均值:平均响应时间,单位为毫秒
  中位数:中间位请求响应时间,比如这里是45621个请求,按照从小到大进行排序,排名22811请求的响应时间为379毫秒
  90%百分位:同理,按照从小到大进行排序,排名41869请求的响应时间为1011毫秒
  95%百分位:同理,按照从小到大进行排序,排名44195请求的响应时间为1455毫秒
  99%百分位:同理,按照从小到大进行排序,排名45165请求的响应时间为2339毫秒
  最小值:最短的响应时间,单位为毫秒
  最大值:最大的响应时间,单位为毫秒
  异常%:失败请求占总请求百分比
  吞吐量:每秒处理多少个请求
  接收KB/S:数据接收速率,每秒从服务器接受到的数据量
  发送KB/S:数据发送速率,每秒像服务器发送的数据量

 

 l 测试总结

  期待结果:

  1. 注册接口响应时间1s内
  2. 注册成功率90%

  测试结果:

  1. 注册接口响应时间1s内
  2. 注册成功率36.36%

  在线程数达到210时,错误率出现并开始上升,到达最大值300,并持续30秒时,错误率呈直线上升,而后逐渐关闭线程数至200左右时,错误率停止在63.64%
  说明注册接口的瓶颈在200左右,距客户要求相差甚远,需优化

 

测试完成

 

标签:插件,请求,毫秒,压测,阶梯式,300,响应,线程,JMeter
来源: https://www.cnblogs.com/forgetm/p/15936107.html