51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 53837|回复: 21

手把手教你jmeter压测

[复制链接]

该用户从未签到

发表于 2018-4-9 10:05:54 | 显示全部楼层 |阅读模式
 我知道我迟早是要踏上了后台测试之路的,只是没想到来的这么突然。新接手了一个项目,在第一版发出后,
产品需要做运营活动拉量,因为我担心突然的流量涌入是否会对后台造成压力呢?因此决定做一下压测:

  下面就一步一步的介绍我从0到1的压测过程吧。

  我下载的是 apache-jmeter-2.13,因为这个包下载下来通用linux和windows的,所以我们现在windows下
打开它。





  直接点击bat,打开jmeter:



  添加一个线程组:



  添加完成之后,先设置这两项:





  然后右击左边的线程组,添加一个http请求



  添加完成之后,我们可以看到右边有了可以编辑的地方:



  这里打算压测这样一个url,这个url请求是 http://cm.browser.qq.com/test_xianwu/api/buy

  也就是拉取App的首页的信息





  我们直接用浏览器打开是这样的:



  见下图,我们需要把url分成两部分填写





  这个时候点击保存,保存的文件路径自己指定,我保存到了bin目录下,保存完之后,是一个jmx文件。





  保存完毕之后呢,我们需要,在压测的过程中,去查看请求的结果,因此需要添加一个“查看结果树”



  添加完毕之后的样子:



  这个时候我们点击启动,看看效果吧:



  这个时候我们把线程数加大,先加达到100



  加完之后,我去App端看了一眼,然后发现首页悲剧了,一片白屏:



  这时候我们在网站上去看一下,发现果然,返回的子串当中,list的内容为空了,而这个list就是我们首页
要展示出的物品:



  既然我们知道了请求返回失败的特征是list为空,那么就增加一个断言,让他直接帮我们筛选出请求失败
的样本。

  同样右击,“添加”-“断言”-“响应断言”,添加完成之后,我们添加一个substring:



  这里说一下location是什么鬼。因为在请求成功的情况下,返回的list当中的信息当中有location,所以我
们可以简单的认为,当location字段存在的时候,这个请求是成功的。

  这个时候我们再运行一下,看看结果树当中会不会帮我们辨别出来:  



  我们可以看到红色就是失败的个数。数量有点多,所以我们需要借助Aggregate Graph



  添加完成之后,我们启动我们的服务,这个时候就能在这里看到一个大概的数据了:



  这样我们就可以不断的去改变线程数,然后去观察失败率和吞吐量,得到一个当前请求的一个最佳的相
应数。

  在测试的过程中我发现,如果手动去强制停止的话,最后的几条请求会因为手动停止而抛出异常,因此
我们决定让他去请求2w次,2w次结束收自动停止。那么我们就需求在开始的地方设置采集次数:



  这里需要注意线程数和循环次数的乘积等于一个固定值就可以,然后你可以变换两个乘数,最终我选择
了线程数分别是10、20、50、80、100、200,得到的结果是:



  最后生成图表,就可以看出来性能的瓶颈,下面是结果:





  从图中我们不难看出响应时间延时很大,且错误率非常高,并且最大qps才能打到50出头,所以初步怀
疑这是有性能问题的,最终反馈给开发,开发加入了缓存机制,并且增加了机器,经过优化之后,我们再看
看数据对比:



  很明显优化后的效果显著,达到了预期的效果。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x

评分

参与人数 1测试积点 +6 收起 理由
lsekfe + 6 赞一个!

查看全部评分

回复

使用道具 举报

该用户从未签到

发表于 2018-4-10 14:52:33 | 显示全部楼层
非常好,可以加个微信请教一下吗?
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2018-4-11 14:12:09 | 显示全部楼层
阔以阔以  学到了
回复 支持 反对

使用道具 举报

  • TA的每日心情
    慵懒
    昨天 10:12
  • 签到天数: 1380 天

    连续签到: 4 天

    [LV.10]测试总司令

    发表于 2018-4-11 17:21:03 | 显示全部楼层
    不错不错,感谢分享
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2017-6-28 11:54
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    发表于 2018-4-23 16:10:20 | 显示全部楼层
    感谢分享,真的是手把手了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2018-4-26 15:46
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]测试排长

    发表于 2018-4-26 15:49:00 | 显示全部楼层
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2018-4-27 17:41:56 | 显示全部楼层
    大哥 tps是统一说法了  
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2018-5-10 11:47:17 | 显示全部楼层
    平均响应时间的图是怎么弄出来的?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2018-5-29 17:43:18 | 显示全部楼层
    QPS图是怎么生成的?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2018-6-4 14:34:19 | 显示全部楼层
    这个图片是怎么生成的
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 10:12
  • 签到天数: 1380 天

    连续签到: 4 天

    [LV.10]测试总司令

    发表于 2018-6-26 11:30:33 | 显示全部楼层
    感谢分享·~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    前天 21:52
  • 签到天数: 993 天

    连续签到: 3 天

    [LV.10]测试总司令

    发表于 2018-7-18 16:16:08 | 显示全部楼层
    最近在看Jmeter,感谢分享。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    郁闷
    2018-7-24 13:39
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]测试排长

    发表于 2018-7-24 10:30:58 | 显示全部楼层
    这个大概看了一下分析逻辑
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2018-8-9 09:41
  • 签到天数: 3 天

    连续签到: 3 天

    [LV.2]测试排长

    发表于 2018-8-7 22:17:32 | 显示全部楼层
    非常感谢,我刚刚学习jmeter工具,整个大概流程看下来真的是受益匪浅,省了不少时间
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2018-8-24 11:26:34 | 显示全部楼层
    楼主,最后生成的图是用什么软件弄的?
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-4-19 06:24 , Processed in 0.083416 second(s), 25 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表