,現在越來越多人使用了。面對 LoadRunner 高昂的價格,免費的 jmeter 真的是讓我們很是感動" name="description" />

  • <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-09-25來源:作者:點擊數: 標簽:jmeterJMeterJmeter監控器源碼
    jmeter MI LY: 宋體; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">,現在越來越多人使用了。面對 LoadRunner 高昂的價格,免費的 jmeter 真的是讓我們很是感動

    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
           MonitorAclearcase/" target="_blank" >ccumModel.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

    老湿亚洲永久精品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>