美文网首页性能测试
使用Jmeter做web测试-实战

使用Jmeter做web测试-实战

作者: 飞翼_U | 来源:发表于2017-08-27 22:24 被阅读237次

    目的:打压epg页面,页面包含首页,列表页。看下页面的TPS。

    1.录制工具 BlazeMeter

    此处介绍一个脚本录制工具,因为epg的首页是有登录的,如果自己在jmeter里面录制脚本的话很难跑起来,老大给我推荐了 chrome的一个插件 BlazeMeter,直接在安装注册就可以录制,使用参考链接 用BlazeMeter录制JMeter测试脚本。

    BlazeMeter.png

    2.优化脚本

    录制好的脚本使用 jmeter打开,然后跑一下,监控一下结果树。
    如果列表页需要先登录首页带入用户登录session,需要使用到 事务控制器,下面是基本的树结构。

    基本结构树.png

    3.执行脚本

    把调整好的脚本放到服务器上先打压几分钟。
    这样打压出来的TPS很低,下载资源网速占满了,百兆带宽都用完了。
    这些在jmeter报告里面的出来的。

    拿资源占用网速.png

    11537.88kb/s 约 11M/s,100M光纤的下载速度是 100M/8=12.5。

    4.分析结果

    为了解决上面问题,去掉如下选项的勾选即可。

    Paste_Image.png

    资源监控过程中还发现内存消耗比较大,dump下来观察内存使用较高的地方,发现如下问题:

    Paste_Image.png

    然后把应用的web.xml里面的 <session-timeout>180</session-timeout> 的 180 修改为了 5 ,180代表保持session3小时,5代表5分钟。把这个变小后再压就没有内存占用很多的现象了。

    5.稳定性测试

    平时打压也就20分钟-30分钟,但是要是测稳定性的话,需要24小时,周六的晚上我在脚本中设置了跑24小时,周日我就去上课了,想着等我晚上放学回家就应该看到结果了,然并卵,晚上回家一看,没有生成报告。

    于是看了日志,发现如下:

    2017/08/20 19:48:15 INFO  - org.apache.jmeter.report.processor.AbstractSampleConsumer: class org.apache.jmeter.report.processor.RequestsSummaryConsumer#stopProducing(): requestsSummary produced 0 samples 
    2017/08/20 19:48:17 INFO  - org.apache.jmeter.report.processor.AbstractSampleConsumer: class org.apache.jmeter.report.processor.StatisticsSummaryConsumer#stopProducing(): statisticsSummary produced 0 samples 
    2017/08/20 19:48:17 INFO  - org.apache.jmeter.report.processor.AbstractSampleConsumer: class org.apache.jmeter.report.processor.Top5ErrorsBySamplerConsumer#stopProducing(): top5ErrorsBySampler produced 0 samples 
    2017/08/20 19:48:17 INFO  - org.apache.jmeter.report.processor.AbstractSampleConsumer: class org.apache.jmeter.report.processor.ErrorsSummaryConsumer#stopProducing(): errorsSummary produced 0 samples 
    2017/08/20 19:48:17 INFO  - org.apache.jmeter.report.processor.AbstractSampleConsumer: class org.apache.jmeter.report.processor.graph.impl.HitsPerSecondGraphConsumer#stopProducing(): hitsPerSecond produced 0 samples 
    2017/08/20 19:48:58 ERROR - jmeter.JMeter: Uncaught exception:  java.lang.OutOfMemoryError: Java heap space
        at org.apache.commons.math3.util.ResizableDoubleArray.expand(ResizableDoubleArray.java:697)
        at org.apache.commons.math3.util.ResizableDoubleArray.addElement(ResizableDoubleArray.java:442)
        at org.apache.commons.math3.stat.descriptive.DescriptiveStatistics.addValue(DescriptiveStatistics.java:168)
        at 
    

    看原因应该是jmeter在生成报告的时候内存不足,生成报告失败。
    这时候就需要我们修改jmeter的执行文件,分配内存。

    linux环境,修改jmeter.sh
    修改如下配置:
    java $JVM_ARGS -Xms1G -Xmx5G -XX:MaxPermSize=512m -Dapple.laf.useScreenMenuBar=true -jar `dirname $0`/ApacheJMeter.jar "$@"
    注意:内存分配的大小根据自己的服务器性能和原来的配置设置
    

    调整好内存再执行长时间打压,应该就不会报错了。

    6.得出结论

    像接口测试一样,最终我们会得到页面的TPS等一系列信息,列成表格发邮件出来即可:

    打压结果c.png

    备注:如需转载,请私信联系我。

    相关文章

      网友评论

        本文标题:使用Jmeter做web测试-实战

        本文链接:https://www.haomeiwen.com/subject/kbnsxxtx.html