zoukankan      html  css  js  c++  java
  • Jmeter性能测试入门(转)

    出处:http://www.cnblogs.com/by-dream/p/5611555.html

    Jmeter性能测试步骤

    1. 添加线程组之后,先设置这两项:

      

     2. 添加一个http请求

      被测的url请求是:http://cm.browser.qq.com/test_xianwu/api/buy,也就是拉取App的首页的信息。我们需要把url分成两部分填写:

    3. 添加查看结果树

    4. 运行

    5. 加大线程数至100

     

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

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

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

    6. 添加响应断言(substring):

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

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

     

      

    7. 添加线程组>监听器>Aggregate Graph

      我们可以看到红色就是失败的个数。数量有点多,所以我们需要借助Aggregate Graph。添加完成之后再次运行,这个时候就能在这里看到一个大概的数据了:

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

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

      线程数和循环次数的乘积等于一个固定值就行,你可以变换两个乘数,而我选择的线程数分别是10、20、50、80、100、200,得到的结果是:

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

      

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

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

  • 相关阅读:
    centos 安装tomcat
    UTF8 的BOM带来的麻烦
    linux 下tomcat开机自启动
    proxool连接池空闲连接中断问题解决
    java判断字符串是否为空的方法总结
    修改my.cnf ,使mysql 的表面不区分大小写
    csc a Wx.NET app.doc
    用Wiz作为灵格斯词典(Lingoes)的生词本
    单词
    使用OKHTTP方式发送POST请求,获取返回的JSON串
  • 原文地址:https://www.cnblogs.com/CNMBJR/p/5706735.html
Copyright © 2011-2022 走看看