Jmeter使用文檔(windows)

來源:互聯網
上載者:User

標籤:術語   intel   sdn   狀態   參數設定   誤差   bsp   jdk1.8   ide   

1. 安裝jdk並配置環境變數

以1.8為例:

(1)安裝jdk1.8;

(2)在系統變數裡點擊建立,變數名填寫JAVA_HOME,變數值填寫JDK的安裝路徑“C:\Program Files\Java\jdk1.8.0_40”,環境變數位置1

圖1 

(3)在系統變數裡點擊建立變數名填寫CLASSPATH,變數值填寫“.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar”。注意不要忘記前面的點和中間的分號。

(4)在系統變數裡找到Path變數,這是系統內建的,不用建立。雙擊Path,由於原來的變數值已經存在,故應在已有的變數後追加上“;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin”。注意前面的分號。

(5) 在系統的CMD命令提示字元下輸入"java -version",能看到相應協助資訊,說明jdk安裝成功。

2. 安裝jmeter並配置環境變數

(1) 安裝Jmeter,解壓“apache-jmeter-2.11.rar”到c盤根目錄下:“C:\apache-jmeter-2.11”。

(2)在使用者變數中,建立變數名“JMETER_HOME”,變數值為:“C:\apache-jmeter-2.11;”。

(3)修改“CLASSPATH”,添加: “;%JMETER_HOME%/lib/ext/ApacheJMeter_core.jar;%JMETER_HOME%/lib/logkit-2.0.jar;”若”CLASSPATH”之前為空白,則添加“.;%JMETER_HOME%/lib/ext/ApacheJMeter_core.jar;%JMETER_HOME%/lib/logkit-2.0.jar;”

3. 運行jmeter

直接開啟 C:\apache-jmeter-2.11/bin/jmeter.bat 即可

4. 測試步驟

 (1)添加線程組,2

圖2

添加完頁面3:

圖3

圖中資料含義:每1秒鐘跑10個線程,迴圈10次;即每隔1/10秒鐘發送一個請求,共請求100次。

 

(2)添加HTTP請求

圖4

將測試內容正確填寫後:

(3)添加頭資訊管理器,6、圖7

圖6

圖7

(4)添加監聽器

圖8

5.結果分析

(1)彙總報告:

註:這裡的Error是指超過30秒的請求數。

圖9

圖10

彙總報告可通過Save Table Data按鈕匯出為Excel表格:

圖11

 

(2)查看結果樹:

註:運行過程中,“查看結果樹”顯示對號的返回結果也可能是錯誤的,統計結果時需要注意;為確保運行結果的正確性,同時需要關注“請求”資料和“響應資料”是否符合預期值。

(3)用表格查看結果:

圖14

    參數含義:

    Sample:每個請求的序號
    Start Time:每個請求開始時間
    Thread Name:每個線程的名稱
    Label:Http請求名稱
    Sample Time:每個請求所花時間,單位毫秒
    Status:請求狀態,如果為勾則表示成功,如果為叉表示失敗。
    Bytes:請求的位元組數

 

註:

開測按鈕為綠色的右向箭頭

在每組開測前,需點擊清除按鈕將上一組的測試資料清空。

圖15

6、隨機參數

為避免使用固定參數造成的測試誤差,需要將用到的參數隨機讀取,步驟如下:

右鍵添加--配置元件--CVS data set config:

圖16

 

然後點擊添加的cvs data,做如下配置:

圖17

 

filename 為params.csv檔案存放的位置,params.csv可先建一個文字檔,然後更改尾碼名即可,裡面的資料為一行一個“empId,socialId,sn”,中間用英文逗號隔開,各值不需要加引號,18:

圖18

 

http請求的參數設定處改為如下設定:

圖19

此時清空上次測試資料,點擊“啟動”按鈕後參數即為params.csv檔案裡的隨機讀取值,可從“查看結果樹”的“請求”裡查看每次發送資料是否是隨機的。

7.錄製指令碼

    7.1  通過JMeter自身設定錄製指令碼

1、建立一個httpProxy 伺服器(右鍵點擊“工作台”--->“添加”--->“非測試元件”--->“httpProxy 伺服器”)

 

圖20

作如下設定:

 

圖21

2、設定IE瀏覽器

“internet選項”--->“串連”--->“區域網路設定”

 

圖22

  

圖23

3、點擊jmeter上的“啟動”按鈕,開啟瀏覽器輸入需要錄製web項目地址,jmeter會自動記錄IE所訪問的一系列頁面,訪問結束後點擊“停止”結束錄製,指令碼自動出現在jmeter項目下。

 

圖24

   7.2過badboy錄製指令碼

      1、安裝並開啟人badboy工具,點擊工欄目上的紅色圓形按鈕,在地址欄目中輸入被測試專案的地址。

 

開始訪問地址,badboy會記錄訪問過程,形成指令碼。

 

2、錄製完成後,點擊工具列旁邊黑色按鈕,結束錄製;選擇“檔案”-”Export to Jmeter” 儲存檔案。

 

3、開啟Jmeter工具,選擇“檔案”-->“開啟”選擇剛才儲存的檔案(.jmx類型),將檔案匯入進來就可以執行了。

 

8、jmeter編寫自訂Java測試代碼進行並發測試

       舉一個簡單的Java自訂測試代碼例子,使用Java編譯器編寫測試代碼,實現功能為:在測試前輸入任意一個字串,判斷該字串的長度是否大於5,如果大於則測試結果成功,否則測試結果失敗,然後再放到Jmeter中類比10個使用者測試,同時運行這段代碼,具體實現如下:
1)開啟Java編譯器,建立一個項目"TestLength",然後建立包"com.jmeter".

2) 從Jmeter的安裝目錄lib/ext中拷貝兩個檔案"ApacheJMeter_core.jar"和"ApacheJMeter_java.jar"到"TestLength"的項目中,然後引入這兩個JAR檔案.

3) 在"com.jmeter"包中建立類,名字叫"TestLength",不過這個類要繼承"AbstractJavaSamplerClient"類,如果項目引入步驟二中的兩個檔案,就可以找到"AbstractJavaSamplerClient"類了.

4) "TestLength"類在繼承"AbstractJavaSamplerClient"類的同時也會繼承四個方法,分別是"getDefaultParameters","setupTest","runTest"和"teardownTest"方法.

u getDefaultParameters方法主要用於設定傳入的參數;

u setupTest方法為初始化方法,用於初始化效能測試時的每個線程.

u runTest方法為效能測試時的線程運行體;

u teardownTest方法為測試結束方法,用於結束效能測試中的每個線程.

5) 具體實現代碼如下.

package com.jmeter;

 

import org.apache.jmeter.config.Arguments;

import org.apache.jmeter.protocol.java.sampler.AbstractJavaSamplerClient;

import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;

import org.apache.jmeter.samplers.SampleResult;

import org.apache.log.Logger;

 

/**

 * Created with IntelliJ IDEA.

 * User: tancp

 * Date: 15-11-10

 * Time: 上午11:12

 * To change this template use File | Settings | File Templates.

 */

public class TestLength03  extends AbstractJavaSamplerClient {

 

    //輸出到Jmeter控制台的日誌類

    private Logger log=getLogger();

 

    //運行結果

    private SampleResult results;

 

    //Jmeter控制台輸入的參數

    private String testStr;

 

    //設定傳入的參數,可設多個,已設定的參數顯示在jmeter參數列表中

    public Arguments getDefaultParameters(){

        log.info("execute getDefaultParameters!!!!!!");

        Arguments params=new Arguments();

 

        //定義一個參數,顯示到Jmeter參數列表中,第一個參數為顯示名,第二個參數為預設值

        params.addArgument("testStr","");

        return params;

    }

 

    //初始化方法,每個線程執行一次,在測試方法運行前執行

    public void setupTest(JavaSamplerContext arg0){

        log.info("Execute setupTest......");

        results=new SampleResult();

        testStr=arg0.getParameter("testStr","");      //初始化

        if(testStr!=null&&testStr.length()>0){

            results.setSamplerData(testStr);

        }

    }

 

    //測試執行迴圈體

    public SampleResult runTest(JavaSamplerContext arg0){

        log.info("execute runTest$$$$$$");

        //用於設定運行結果的成功或失敗,如果是"false"則表示結果失敗,否則則表示成功

        if(testStr.length()<5){

            log.info("fail......");

            results.setSuccessful(false);

        }else{

            log.info("[email protected]@@@@@");

            results.setSuccessful(true);

        }

        return results;

    }

 

    //結束方法,實際運行時每個線程僅執行一次,在測試方法運行結束後執行

    public void teardownTest(JavaSamplerContext arg0){

        log.info("execute teardownTest######");

    }

 

}

6) 把上面的例子打包,然後把產生的"TestLength.jar"檔案拷貝到Jmeter的安裝目錄lib/ext下.

7) 開啟bin\jmeter.bat運行Jmeter,進入Apache Jmeter控制台。

     添加一個線程組。

     然後在該線程組下面添加一個Java請求(在Sampler中)

圖25

            在Java請求的類名稱中選擇咱們剛建立的類"com.jmeter.TestLength",在下面參數列表的"testStr"後面輸入要測試的字串,然後添加一個監聽器(彙總報告)。

圖25

            設定一下類比的使用者數就可以測試了.如果測試不成功,Jmeter會在它自己輸出框中拋出這個字串.

8)查看日誌(包含jmeter自身日誌和自訂java程式的日誌),日誌位置

 

圖26

日誌資訊

圖27

註:此記錄檔每次關閉jmeter時都會格式化

 

 

術語含義:

 

1、線程組:測試裡每個任務都要線程去處理,所有我們後來的任務必須線上程組下面建立。可以在“Test Plan(滑鼠右擊) -> 添加  ->Threads(Users) -> 線程組”來建立它,然後線上程組面板裡有幾個輸入欄:線程數、Ramp-Up Period(in seconds)、迴圈次數,其中Ramp-Up Period(in seconds)表示在這時間內建立完所有的線程。如有8個線程,Ramp-Up = 200秒,那麼線程的啟動時間間隔為200/8=25秒,這樣的好處是:一開始不會對伺服器有太大的負載。
2、取樣器(Sampler):可以認為所有的測試工作都由取樣器承擔,有很多種,如:HTTP請求。
3、斷言:對取樣器返回的請求結果給出判斷是否正確。
4、monitor:它的功能是對取樣器的請求結果顯示、統計一些資料(輸送量、KB/S……)等

 

樣本數目:總共發送到伺服器的請求數。
最新樣本:代表時間的數字,是伺服器響應最後一個請求的時間。
輸送量(throughput  ):伺服器每分鐘處理的請求數。
平均值:總已耗用時間除以發送到伺服器的請求數。
中間值:時間的數字,有一半的伺服器回應時間低於該值而另一半高於該值。
偏離:伺服器回應時間變化、離散程度測量值的大小,或者,換句話說,就是資料的分布。

樣本數目:也就是上面所說的請求個數,成功的情況下等於你設定的並發數目乘以迴圈次數。
平均:每個線程請求的平均時間
最新樣本:表示伺服器響應最後一個請求的時間
偏離:伺服器回應時間變化、離散程度測量值的大小,換句話說,就是資料的分布。

Jmeter使用文檔(windows)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.