• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

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

    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.kjueaiud.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認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>