• 軟件測試技術
  • 軟件測試博客
  • 軟件測試視頻
  • 開源軟件測試技術
  • 軟件測試論壇
  • 軟件測試沙龍
  • 軟件測試資料下載
  • 軟件測試雜志
  • 軟件測試人才招聘
    暫時沒有公告

字號: | 推薦給好友 上一篇 | 下一篇

jmeter資源監控器開發——進入jmeter的源碼世界

發布: 2009-9-25 13:14 | 作者: 鑫瑞 | 來源: 轉載 | 查看: 379次 | 進入軟件測試論壇討論

領測軟件測試網

jmeterMILY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">,現在越來越多人使用了。面對LoadRunner高昂的價格,免費的jmeter真的是讓我們很是感動啊。眼淚嘩嘩地。
于是乎現在關于jmeter應用的各種入門教程啊,手冊翻譯啊,技巧集錦什么的,也越來越多了。不過大家可能感受最想要而又要不到的是資源監控,比如windows、linuxcpu,memory等。其實有些高手已經自己開發jmeterplugin用于監控了,但是似乎目前還沒有人share出來,這些高手呢,相信不會是本文的主要讀者了。
日前接受了任務,希望能用jmeter來做一些性能測試。少不得就要面對jmeter缺乏資源監控的問題:有個監視器,但只能利用tomcatstatus頁監視jvm的內存和線程情況,功能單薄得就像霓裳仙子的那件衣服,馬上就要露點了。
看了一下jmeter監視器的實現思路,是解析tomcatmanagestatusxml文件來獲得數據,再展現到jmeter的面板上。于是想到,如果通過修改監視器代碼來解析和展現自己想要的內容,再實現動態的更新服務器上的xml文件——獲取到資源數據寫進去,這樣jmeter不就可以做到監控各種服務器了么?
好,那么就先下手分析jmeter的監控器代碼。查了jmeter的開發手冊,監視器代碼沒有跟其它組件一起,而是單獨的monitor代碼。源碼分析簡述如下:

監控器代碼src\monitor\components\org\apache\jmeter
文件:
\monitor\util
       MemoryBenchmark.java
       Stats.java
\visualizers
       MonitorAccumModel.java
       MonitorGraph.java
       MonitorGuiListener.java
       MonitorHealthPanel.java
       MonitorHealthVisualizer.java
       MonitorListener.java
       MonitorModel.java
       MonitorPerformancePanel.java
       MonitorStats.java
       MonitorTabPane.java
       ServerPanel.java

Stats.java:計算解析得到的參數
public static int calculateLoad(Status stat)
public static int calculateStatus(Status stat)
public static int calculateMemoryLoad(Status stat)
public static int calculateThreadLoad(Status stat)

MonitorPerformancePanel.java:監視器面板上的信息

MonitorStats.java:監視器輸入數據
       private static final String HEALTH = "stats.health";
       private static final String LOAD = "stats.load";
       private static final String CPULOAD = "stats.cpuload";
       private static final String MEMLOAD = "stats.memload";
       private static final String THREADLOAD = "stats.threadload";
斜體字部分是jmeter棄置不用的了,原因也寫在MonitorGraph.java的注釋里:”TODO is this needed? It's never read“老外就是tmd能扯啊~

MonitorModel.java:生成數據模型,繼承自MonitorStats

MonitorGraph.java:圖像繪制
private void drawSample(int x, MonitorModel model, Graphics g, MonitorModel last)

MemoryBenchmark.java:數據基準
                            MonitorStats mstats = new MonitorStats(Stats.calculateStatus(st), Stats.calculateLoad(st), Stats.calculateCpuLoad(st), Stats
                                          .calculateMemoryLoad(st), Stats.calculateThreadLoad(st), "localhost", "8080", "http", System
                                          .currentTimeMillis());
                            MonitorModel monmodel = new MonitorModel(mstats);
                            objs.add(monmodel);

MonitorAccumModel.java:監視器數據操作相關


圖片:src\core\org\apache\jmeter\images
資源文件(多語言):src\core\org\apache\jmeter\resources

延伸閱讀

文章來源于領測軟件測試網 http://www.anti-gravitydesign.com/

TAG: jmeter JMeter Jmeter 世界 源碼 資源 監控器


關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97