jmeter學習指南之非GUI命令列執行詳解
一、為什麼要用命令列執行jmeter?
主要有以下三點:
1) 圖形化介面消耗更多資源,如CPU和記憶體,容易使壓力機達到瓶頸,從而影響測試結果。
2) 圖形化介面不支援大型的負載測試和效能測試,併發較大時,jmeter會崩潰。
3) 命令列方式可以把指令碼配置到Jenkins上實現持續整合,做成自動化測試。
二、解讀命令列引數
1、常用格式
jmeter -n -t [jmx指令碼路徑] -l [測試輸出結果檔案路徑]
引數解釋:
-n: 表示 non gui mode,就是非圖形化模式
-t: 即testplan,後跟要執行的jmeter指令碼的路徑和指令碼名稱。
若指定路徑下沒有指定名稱的指令碼,則自動建立。
若沒有路徑只寫指令碼名稱,則預設是在當前目錄查詢或建立。
-l: 後跟輸出結果檔案路徑和結果檔名稱。
若指定路徑下沒有指定名稱的指令碼,則自動建立,可以生成csv或者jtl檔案。
若只寫指令碼名稱,則預設是在當前目錄查詢或建立。
示例: jmeter -n -t testplan.jmx -l test.jtl
示例含義:以命令列模式執行當前目錄下的testplan.jmx檔案,並在當前目錄下輸出日誌檔案test.jtl
2、其它引數命令:
jmeter -n -t test.jmx -R 10.6.5.31,10.6.5.32 -l log.jtl
jmeter -n -t test.jmx -l log.jtl -H 192.168.1.1 -P 8080
-r/R 遠端執行 -> 啟動遠端服務,即分散式執行多臺壓力機
-H 代理主機 -> 設定 JMeter 使用的代理主機
-P 代理埠 -> 設定 JMeter 使用的代理主機的埠號
使用-R指定節點時,要首先在這些節點上啟動jmeter-server的服務
Linux和windows系統下執行jmeter命令列
三、Linux系統執行jmeter命令列
1、修改配置檔案
如果你是第一次使用命令列執行測試指令碼,那麼看到的輸出結果可能是類似下面這樣的:
這些資訊僅僅告訴我們執行成功啦。
但是我想要看到本次測試的更多結果,要怎麼辦呢?
可以透過修改jmeter.properties配置檔案來解決:
將上面的註釋開啟,並且值修改成true,就會開啟該條記錄,jmeter就會將對應的資訊輸出到我們指定的jtl檔案中(不過這樣會在壓測過程中產生大量的日誌檔案,真正壓測時,最好不要開太多的日誌記錄),然後可以在結果檔案中檢視詳細的資訊。
但是我們想在指令碼執行的過程中實時檢視結果資訊,要怎麼做呢?
同樣是修改配置檔案jmeter.properties
開啟上面的summariser.name、summariser.i
nterval、summariser.out這三個配置項,儲存,重新執行jmeter,應該就可以在shell裡看到統計資訊了,如下圖所示:
這裡顯示的資訊就相當於GUI介面下聚合報告元件所顯示的資訊。
其中主要有兩種資訊:summary + 和summary =,其它項都是類似的
summary + 4386 in 00:00:30:在30秒內增加了4386個請求,其中時間間隔由配置檔案中的interval統計頻率的值決定
summary = 27455 in 00:03:12:在3分12秒內產生的總請求數是27455個,其中的時間段是從指令碼執行開始計算到當前時間為止,一般在指令碼執行過程中主要關注 “summary=” 資訊即可
146.2/s:系統每秒處理的請求數,相當於TPS
Avg: 684:平均響應時間
Min: 201:最小響應時間
Max: 1499:最大響應時間
Err: 0 (0.00%):錯誤數/率
Active: 100:活動的執行緒數
2、那麼怎麼檢視生成的jtl檔案呢?
把生成的jtl結果檔案下載到本地
開啟jmeter,新增察看結果樹和聚合報告元件
在”檔名”處選擇瀏覽,開啟jtl結果檔案,即可察看詳細結果
3、命令列中的檔案路徑
示例:jmeter -n -t testplan.jmx -l test.jtl
JMeter 預設去當前目錄尋找指令碼檔案,並把日誌記錄在當前目錄。比如你在 C:toolsapache-jmeter-3.0bin 目錄下執行以上命令,JMeter 會去該目錄下尋找 test.jmx 指令碼並把執行結果放在該目錄。
如果你的指令碼在其他目錄,而且想要把執行結果放在另外資料夾,需要使用絕對路徑告訴 JMeter,比如:
C:toolsapache-jmeter-3.0bin>jmeter -n -t e:addCustomer.jmx -l e:addCustomer.jtl
四、windows系統下執行jmeter命令列
在windows下執行命令列跟linux下是一樣的,只是透過cmd命令列工具來執行的
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69942496/viewspace-2654370/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- jmeter學習指南之詳解jmeter執行緒組JMeter執行緒
- 『動善時』JMeter基礎 — 55、使用非GUI模式執行JMeter(命令列模式)JMeterGUI模式命令列
- Jmeter 通過命令列 (CLI) 模式執行測試示例與引數詳解JMeter命令列模式
- jmeter學習指南之管理CookiesJMeterCookie
- jmeter學習指南之關聯JMeter
- Git 學習之命令詳解Git
- jmeter學習指南之聚合報告JMeter
- Linux學習之iostat命令詳解LinuxiOS
- jmeter學習指南之Beanshell Sampler 常用方法JMeterBean
- 效能測試 —— Jmeter 命令列詳細JMeter命令列
- jmeter學習指南之操作 mysql 資料庫JMeterMySql資料庫
- jmeter學習指南之常用函式的使用JMeter函式
- jmeter學習指南之原始碼匯入 IntelliJ IDEAJMeter原始碼IntelliJIdea
- jmeter學習指南之OOM和監聽器使用JMeterOOM
- jmeter學習指南之引數化CSV Data Set ConfigJMeter
- jmeter學習指南之結果分析-圖形圖表JMeter
- jmeter學習指南之16個邏輯控制器JMeter
- jmeter學習指南之響應斷言和beanshell斷言JMeterBean
- rtmpdump命令列詳解命令列
- jmeter學習指南之深入分析跨域傳遞cookieJMeter跨域Cookie
- 非專案目錄下命令列執行go程式遇到的問題命令列Go
- 收集 Linux 命令列執行的命令Linux命令列
- jmeter學習指南之Beanshell 呼叫 java 程式碼的三種方式JMeterBeanJava
- jmeter學習指南之Boundary Extractor和正規表示式提取器JMeter
- Jmeter Arrivals thread group 在命令列執行時,無法生成測試結果JMeterthread命令列
- 【機器學習】使用Octave執行命令機器學習
- python-GUI之tkinter的學習PythonGUI
- 多執行緒學習-Disruptor佇列執行緒佇列
- 【Mongo】shell命令列模式執行mongo命令Go命令列模式
- Jmeter(五十二) - 從入門到精通高階篇 - jmeter之跨執行緒組傳遞引數(詳解教程)JMeter執行緒
- jmeter學習指南之察看結果樹,你知道都有哪些功能嗎JMeter
- Java同步之執行緒池詳解Java執行緒
- Java多執行緒之synchronized詳解Java執行緒synchronized
- IDEA 執行 XXX 時報錯命令列過長,縮短命令列並重新執行Idea命令列
- Java學習之AWT GUI程式設計JavaGUI程式設計
- Java學習之Swing Gui程式設計JavaGUI程式設計
- jmeter學習指南之最佳化指令碼JMeter指令碼
- Jmeter系列(45)- 詳解 Jmeter 跨執行緒組取引數值的方法,免程式碼!JMeter執行緒