小编下载的是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看了看,然后发现首页悲剧了,黑屏:
这时候我们在网站上一看,发现在返回的子字符串中,列表的内容是空的,而这个列表就是我们首页要显示的项目:
既然知道了返回失败请求的特点就是列表为空,那么我们添加一个断言,让他直接帮我们过滤掉失败请求的样本。
同样右键,“Add”-“Assertion”-“Response Assertion”,添加完成后,我们添加一个子串:
这就是地狱的位置。因为在请求成功的情况下,返回列表中的信息包含了位置,所以我们可以简单地认为,当位置字段存在时,请求就成功了。
这时候,我们再运行一遍,看看结果树是否能帮助我们识别:
我们可以看到红色是失败的次数。数字有点大,所以我们需要使用Aggregate Graph
添加完成后,我们开始我们的服务。这时候,我们可以在这里看到一个粗略的数据:
这样,我们就可以不断地改变线程的数量,然后观察失败率和吞吐量,得到一个当前请求的最优对应数量。
测试过程中发现如果手动停止,最后几个请求会因为手动停止而抛出异常。所以我们决定让他请求2w次,2w次后自动停止。然后我们需要在开始时设置集合的数量:
这里需要注意的是线程数和循环数的乘积等于一个固定值,然后可以改变两个乘数,最后我选择线程数为10、20、50, 80、100、200,结果是:
最后生成图表,可以看出性能瓶颈。结果如下:
从图中不难看出响应时间延迟很大,而且错误率很高,最大qps可以达到50s初期,所以初步怀疑是性能问题,而最后反馈给开发,开发添加缓存机制。并添加了机器。优化后,再来看看数据对比:
显然,优化效果显着,达到了预期的效果。如果大家想了解更多相关知识,可以来关注一下极悦的JMeter教程,里面还有更多的知识在等着大家去学习,希望对大家能够有所帮助。
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习