<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qileilove

    blog已經轉移至github,大家請訪問 http://qaseven.github.io/

    JMeter入門(4):Java Request實例

     目的:對Java程序進行測試;
      一、核心步驟
      1.創建一個Java工程;
      2.將JMeter的lib目錄下的jar文件添加進此工程的Build Path;
      3.創建一個類并實現JavaSamplerClient接口或繼承AbstractJavaSamplerClient,并重寫:
    public Arguments getDefaultParameters():設置可用參數及的默認值;
    public void setupTest(JavaSamplerContext arg0):每個線程測試前執行一次,做一些初始化工作;
    public SampleResult runTest(JavaSamplerContext arg0):開始測試,從arg0參數可以獲得參數值;
    public void teardownTest(JavaSamplerContext arg0):測試結束時調用;
    4.Export為Runnable Jar File;
      5.將此jar包放入JMETER_HOME\lib\ext目錄;
      6.以管理員身份打開JMeter;
      7.創建線程組、Java Request、結果樹,進行測試;
      二、實例
      利用JMeter對服務進行性能測試,服務為:將輸入的兩個參數通過IO存入文件;
      1、編寫Java代碼
      服務:
    package test;
    import java.io.File;
    import java.io.PrintWriter;
    public class OutputService {
    public static void output(String filename,int a, int b) throws Exception {
    PrintWriter out = new PrintWriter(new File(filename));
    out.write(a+":"+b);
    out.close();
    }
    }
      測試類:
    package test;
    import org.apache.jmeter.config.Arguments;
    import org.apache.jmeter.protocol.java.sampler.JavaSamplerClient;
    import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
    import org.apache.jmeter.samplers.SampleResult;
    public class PerformenceTest implements JavaSamplerClient {
    private SampleResult results;
    private String a;
    private String b;
    private String filename;
    // 設置傳入的參數,可以設置多個,已設置的參數會顯示到Jmeter的參數列表中
    public Arguments getDefaultParameters() {
    Arguments params = new Arguments();
    params.addArgument("filename", "0");//設置參數,并賦予默認值0
    params.addArgument("a", "0");//設置參數,并賦予默認值0
    params.addArgument("b", "0");//設置參數,并賦予默認值0
    return params;
    }
    // 初始化方法,實際運行時每個線程僅執行一次,在測試方法運行前執行
    public void setupTest(JavaSamplerContext arg0) {
    results = new SampleResult();
    }
    // 測試執行的循環體,根據線程數和循環次數的不同可執行多次
    @Override
    public SampleResult runTest(JavaSamplerContext arg0) {
    b = arg0.getParameter("b"); // 獲取在Jmeter中設置的參數值
    a = arg0.getParameter("a"); // 獲取在Jmeter中設置的參數值
    filename = arg0.getParameter("filename"); // 獲取在Jmeter中設置的參數值
    results.sampleStart();// jmeter 開始統計響應時間標記
    try {
    OutputService test = new OutputService();
    test.output(filename,Integer.parseInt(a), Integer.parseInt(b));
    results.setSuccessful(true);
    // 被測對象調用
    } catch (Throwable e) {
    results.setSuccessful(false);
    e.printStackTrace();
    } finally {
    results.sampleEnd();// jmeter 結束統計響應時間標記
    }
    return results;
    }
    // 結束方法,實際運行時每個線程僅執行一次,在測試方法運行結束后執行
    public void teardownTest(JavaSamplerContext arg0) {
    }
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    Arguments params = new Arguments();
    params.addArgument("a", "0");//設置參數,并賦予默認值0
    params.addArgument("b", "0");//設置參數,并賦予默認值0
    JavaSamplerContext arg0 = new JavaSamplerContext(params);
    PerformenceTest test = new PerformenceTest();
    test.setupTest(arg0);
    test.runTest(arg0);
    test.teardownTest(arg0);
    }
    }
    Export 為 Runnable Jar File;

    2、設置JMeter
      以管理員身份打開JMeter,并創建Java Request后,結構如下圖所示:
      在Java請求中發現了自己新建的測試類:
      我們在JMeter中發現參數有三個:
      我們在響應的數值中填入:
      大家一定很奇怪,怎么會有一些看不懂的東西,這是JMeter提供的函數,我們可以在
      因為我們要做的是性能測試,因此我們需要開多個線程并發測試,因此隨機數很重要;
      常用的函數為:
      (1)_Random生成隨機整數;
      (2)_RandomString生成隨機字符串;
      在線程組中設置并發線程數為10000,保存后即可運行;
      圖形結果如下所示:
    聚合報告:
      表格查看結果:
      結果成功,成功生成了接近10000個文件:
      3.期間遇到的問題
      3.1 Export為Jar File導致Java Request的類名稱無法找到;
      3.2 JMeter java.lang.OutOfMemoryError: PermGen space問題:
      在JMeter.bat 中修改:
      set HEAP=-Xms512m -Xmx1024m
      set NEW=-XX:NewSize=128m -XX:MaxNewSize=128m
      set SURVIVOR=-XX:SurvivorRatio=8 -XX:TargetSurvivorRatio=50%
      set TENURING=-XX:MaxTenuringThreshold=2
      set RMIGC=-Dsun.rmi.dgc.client.gcInterval=600000 -Dsun.rmi.dgc.server.gcInterval=600000
      set PERM=-XX:PermSize=256m -XX:MaxPermSize=512m
      3.3 JMeter需要以管理員身份打開,否則會出現:
    相關文章:

    posted on 2013-11-19 11:09 順其自然EVO 閱讀(448) 評論(0)  編輯  收藏 所屬分類: jmeter and badboy

    <2013年11月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    1234567

    導航

    統計

    常用鏈接

    留言簿(55)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 免费国产黄线在线观看| 在线观看国产情趣免费视频| 亚洲mv国产精品mv日本mv| 国产精品视频免费一区二区| 成人福利在线观看免费视频| 精品日韩亚洲AV无码一区二区三区 | 亚洲精品影院久久久久久| 日韩免费高清视频网站| 国产真人无码作爱视频免费| 77777午夜亚洲| 亚洲中文字幕久久精品无码APP| 91麻豆最新在线人成免费观看 | 亚洲精品乱码久久久久久不卡| 亚洲国产精品免费观看| 激情综合色五月丁香六月亚洲| 99无码人妻一区二区三区免费| 国产男女爽爽爽免费视频| 亚洲人成未满十八禁网站| 亚洲s色大片在线观看| 日本免费v片一二三区| 最近免费中文在线视频| 国产成人自产拍免费视频| 亚洲中文字幕无码mv| 噜噜噜亚洲色成人网站∨| 久久国产成人精品国产成人亚洲| 91免费资源网站入口| 久久免费国产视频| 国产精品免费一区二区三区| 亚洲色大情网站www| 亚洲美女视频免费| 亚洲Av无码专区国产乱码DVD | 亚洲视频一区二区三区| 中文字幕亚洲电影| 国产又黄又爽又猛的免费视频播放| h视频在线免费看| 久久国产免费观看精品| 国产精品高清免费网站| 女bbbbxxxx另类亚洲| 亚洲中文字幕精品久久| 91亚洲国产成人久久精品| 女同免费毛片在线播放|