盤點JMeter不為人知細節
- 2020 年 3 月 11 日
- 筆記
向伺服器提交請求,並從伺服器取回請求返回的結果。即建立一個執行緒池,多執行緒運行取樣器產生大量負載,在運行過程中通過斷言來驗證結果的正確性,通過監聽器來記錄測試結果.
文章內容以Jmeter5.0 版本為分享, 前提條件, 需要有jdk1.8 以上環境.
我們都知道jmeter是以java語言開發的, 它是免費的,跨平台的,開源的apache項目,且無需安裝
相比於LR, 它的優勢是顯而易見的.
我們將Jmeter解壓後可以看到如下結構目錄:


01
Backups目錄
文件備份目錄, 備份jmeter運行時的腳本,備份文件的存儲位置

02
Bin 目錄
bin存放了配置文件(比如jvm設置,日誌設置), 核心可執行文件, 啟動文件, 報告生成方式, 啟動jar包, 示例腳本等.

啟動文件就在bin目錄下, 點擊jmeter 就可以啟動jmeter應用程式了.
2.1 bin/jmeter
網上有很多文章介紹如何修改jmeter記憶體配置, Windows環境在jmeter.bat , Linux或Mac os 在jmeter.sh文件里, 我們通過實際操作發現修改這兩文件沒有作用, 那該怎麼辦呢? 官網肯定會給出解釋.
我們來查閱一下官方文檔提供的權威說明
https://jmeter.apache.org/usermanual/get-started.html#non_gui

直譯:Jmeter需要設置一些環境變數去配置JVM 使用, 這些變數的設置在shell啟動jmeter script 里. 翻譯的如有偏頗請勿拍磚!
原來配置jvm記憶體在這裡

我們打開看下

果然我們在jmeter 的啟動腳本里找到了它.
這裡是配置jmeter所需的jvm空間,我們要找的是jmeter啟動後,運行時記憶體大小該如何配置, 接著往下看官網的解釋

在這裡我們發現了jmeter start後,java運行時記憶體管理

我們依然在對應的文件里順利的找到了.
以上設置完成後, 我們保存重啟jmeter.
我們設置jmeter好以後, 去驗證一下jmeter啟動後記憶體設置情況, 這裡我們用到了Jconsole遠程連接來查看jmeter記憶體情況.

從中我們不難發現, 和我們配置是相符的.
2.2 Bin/jmeter-server
在使用Jmeter進行介面的性能測試時,由於Jmeter 是JAVA應用,對於CPU和記憶體的消耗比較大, 當需要模擬數以萬計的並發用戶時,使用單台機器模擬所有並發用戶就有些力不從心, 甚至會引起JAVA記憶體溢出錯誤。為了讓jmeter工具提供更大的負載能,可以使用Jmeter提供的分散式功能來啟動多台電腦來分壓測試. 模型是一台Master, 多台slave,jmeter分散式 很好的解決了單台運算能力不足的問題.
2.3 Bin/jmeter.properties
一個重要的核心配置文件, 包含配置默認語言, 遠程主機配置, 以及各類結果文件配置, 報告輸出格式等等

2.4 知識點擴展:
Jmeter的命令行功能也是非常強大的,在你的系統上配置好jmeter環境變數,直接指向bin目錄,就可以使用如下腳本了jmeter -n -t demo.jmx -l test.jtl
參數說明:
-h 幫助 -> 列印出有用的資訊並退出
-n 非 GUI 模式 -> 在非 GUI 模式下運行 JMeter
-t 測試文件 -> 要運行的 JMeter 測試腳本文件
-l 日誌文件 -> 記錄結果的文件


03
docs目錄
放置JMeter API 離線文檔,是一個類似於java doc的在線幫助文檔


04
extras目錄
擴展插件目錄。提供了對Ant的支援,可以使用Ant來實現自動化測試,如批量腳本執行,產生html格式的報表,測試運行時,可以把測試數據記錄下來,jmeter會自動生成一個.jtl文件,將該文件放到extras目錄下,運行"ant -Dtest=文件名 report",就可以生成測試統計報表。

05
lib目錄
JMeter 依賴的一些基礎包放在 lib 根目錄下,比如我們擴展了Java 請求,這個擴展是為了完成特定的任務,而這個特定的任務程式需要依賴其他的 Jar 包,那麼這些 Jar 包就放置在 lib 根目錄下。
JMeter 組件以 Jar 包的形式放置在 lib/ext 目錄下,如果我們要擴展 JMeter 組件,擴展後的 Jar 包即放在此目錄下,JMeter 啟動時會載入此目錄下的 Jar 包。
此地無論是我們自己擴展的還是第三方擴展jar包, 都在這個目錄下進行管理, 因為jmeter啟動的時候會對擴展包進行讀取.

jmeter提供豐富的插件工具包可供下載 https://jmeter-plugins.org/install/Install/粗略的統計下大概有80個可供下載

並且支援在線和離線2種方式可供選擇, 即使是在線方式安裝插件,也會默認放在lib/ext目錄下.
如何在線安裝插件包我們在之前文章已經分享過.

06
license目錄
JMeter licenses 相關聲明資訊放在此文件夾,全部是文本文件,對測試沒有任何實際意義.

07
printable_docs目錄
jmeter提供的在線幫助文檔, 類似於一個用戶學習文檔, 是我們學習了解jmeter的最佳渠道.

看完了別忘記收藏加關注, 並在底部點擊我在看對我很重要.
總結:
測試是一門技術, 更是一門藝術. 也許你今天擁有的技術, 明天就會被淘汰. 同時需要我們開拓思維和眼界, 積極擁抱變化, 學習新知識, 新方法,新技能, 電腦領域講究的是實踐, 學習更要講究方式方法. 學習和動手一定要結合, 光看不練,猶如看武功秘籍, 是永遠成不了武功大俠的.