1. 程式人生 > >從命令列執行Jmeter

從命令列執行Jmeter

為什麼要命令列執行指令碼,主要有以下三點:

  1) 圖形化介面消耗更多資源,CPU和記憶體

  2) 圖形化介面不支援大型的負載測試和效能測試

  3) 命令列測試支援持續整合,例如放到Jenkins這樣的CI工具上。

具體步驟如下。

  1. 通過雙擊jmeter.bat開啟JMeter圖形介面

  2.在預設的Test Plan上建立一個Thread Group

  3.在Thread Group上面新增一個Sampler,選擇HTTP Request

  4.在Thread Group上面新增一個View Results Tree

  5.點選Run,在彈出對話方塊詢問是否儲存,點選Yes,儲存指令碼到桌面,CommondLineTest.jmx

  6.檢查View Results Tree裡面的response code 是不是200,

  7.通過檢查測試通過,說明測試指令碼沒問題,我們這裡選擇刪除View Results Tree

  8.關閉當前JMeter對話方塊

  9. 開啟cmd,通過cd命令先切換到JMeter安裝路徑

    例如: cd C:\apache-jmeter-3.2\bin

  10. 輸入一下命令開始執行測試

  執行命令格式:

    jmeter -n -t [jmx指令碼路徑] -l [測試輸出檔案路徑]  如:./jmeter -n -t baidu_requests_results.jmx -r -l baidu_requests_results.jtl

    引數解釋:

      -n: 表示 non gui mode,就是非圖形化模式

      -t: 表示jmeter指令碼的路徑

      -l:表示輸出結果路徑,如果沒有該檔案就自動建立,可以生成csv或者jtl檔案。

    測試結果:

      會在桌面生成一個demo.cvs檔案,內容如下:

如果想要生成HTML報告,有兩種方式:

1.可以在測試過程中將jtl轉成測試報告(在jmeter的bin目錄下執行):   ./jmeter -n -t baidu_requests_results.jmx -r -l baidu_requests_results.jtl -e -o /home/tester/apache-jmeter-3.0/resultReport

引數說明:

    -n : 非GUI 模式執行JMeter     -t : 執行測試檔案所在的位置及檔名     -r : 遠端將所有agent啟動用在分散式測試場景下,不是分散式測試只是單點就不需要-r     -l : 指定生成測試結果的儲存檔案, jtl 檔案格式     -e : 測試結束後,生成測試報告     -o : 指定測試報告的存放位置     -o 指定的檔案及資料夾,必須不存在 ,否則執行會失敗,對應上面的命令就是resultReport資料夾必須不存在否則報錯 如上命令執行,可以看到控制檯開始列印資料了  

2.使用之前的測試結果,生成測試報告

./jmeter -g baidu_requests_results.jtl -e -o /home/tester/apache-jmeter-3.0/resultReport

-g : 指定已存在的測試結果檔案 -e :測試結果後,生成測試報告 -o : 指定測試報告的存放位置 -o 指定的檔案及資料夾,必須 不存在 ,否則執行會失敗

 第一種和第二種其實最終都依賴生成的jtl檔案,將jtl檔案生成測試報告。雙擊測試報告中的index.html檔案即可檢視報告內容