目的:打壓epg頁面,頁面包含首頁,列表頁。看下頁面的TPS。
1.錄制工具 BlazeMeter
此處介紹一個腳本錄制工具,因為epg的首頁是有登錄的,如果自己在jmeter里面錄制腳本的話很難跑起來,老大給我推薦了 chrome的一個插件 BlazeMeter,直接在安裝注冊就可以錄制,使用參考鏈接 用BlazeMeter錄制JMeter測試腳本。
2.優化腳本
錄制好的腳本使用 jmeter打開,然后跑一下,監控一下結果樹。
如果列表頁需要先登錄首頁帶入用戶登錄session,需要使用到 事務控制器,下面是基本的樹結構。
3.執行腳本
把調整好的腳本放到服務器上先打壓幾分鐘。
這樣打壓出來的TPS很低,下載資源網速占滿了,百兆帶寬都用完了。
這些在jmeter報告里面的出來的。
11537.88kb/s 約 11M/s,100M光纖的下載速度是 100M/8=12.5。
4.分析結果
為了解決上面問題,去掉如下選項的勾選即可。
資源監控過程中還發現內存消耗比較大,dump下來觀察內存使用較高的地方,發現如下問題:
然后把應用的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等一系列信息,列成表格發郵件出來即可:
備注:如需轉載,請私信聯系我。