高階 Apache JMeter 元件概述
Apache JMeter 根據其功能將所有元件分為以下組:
Test Plan
:指令碼的起點。JMeter 以 .jmx 格式儲存測試計劃。通過右鍵單擊 Test Pand 並導航到要新增的元件,可以將元件新增到測試計劃中。Workbench
:是一個開始編寫指令碼的臨時場所。除了測試計劃中提供的所有元件外,你還可以獲得HTTP(s) Test Script Recorder
以便瀏覽器操作。如果你選中儲存工作臺核取方塊,指令碼可以儲存在 Workbench 中,否則它們不會。Threads (Users)
:你可以定義要執行的多個(虛擬)使用者,加速時間和迴圈計數。你還可以在測試計劃中定義執行緒組是否需要在多個執行緒組的情況下以順序或並行方式執行。一些例子是Thread Group, setUp Thread Group, and tearDown Thread Group
Logic Controller
:允許你定義取樣器的執行和分組流程。其中一個有用的示例是事務控制器,你可以在其中組合登入頁面的所有采樣器(所有資源,包括影象,.css 和 .js 檔案),以便可以檢索組合的響應時間。Sampler
:取樣器是 JMeter 的核心。它為元件提供模擬各種協議(如 HTTP,JDBC,FTP,SMTP 等)的請求,例如,HTTP 取樣器允許你模擬 HTTP 資料包(GET,POST 或任何支援的方法)。支援主流協議,對於其他協議,你可以使用免費或商業外掛。Config Element
:配置元素可用於設定預設值和變數,供以後的取樣器使用。請注意,這些元素通常在找到它們的範圍的開始處處理,即在相同範圍內的任何取樣器之前處理。CSV Dataset Config
允許你提供測試資料,如使用者名稱,登入方案from a file
的密碼。User Defined variables
配置元素允許你定義可在整個測試計劃中使用的變數,但每個執行緒都有自己的副本。Timer
:預設情況下,JMeter 執行緒按順序執行取樣器而不暫停。此處介紹的元件提供了在取樣器中以各種形式介紹User Think Time
的功能。一些例子是Constant Timer, Constant Throughput Timer.
Pre Processors
:允許你在取樣器執行之前執行操作/操作。使用 Apache Groovy 的JSR223 Pre Processor
(類似於 java 編碼風格)允許你在傳送之前對取樣器進行更改。Post Processors
:允許你在取樣器執行後執行操作/操作。一些有用的例子是檢索動態值,例如會話 ID,使用Regular Expression Extractor
後處理器用於任何型別的文字,CSS/JQuery Extractor
用於 HTML,JSON Extractor
用於 JSON,XPath Extractor
用於 XML。Assertions
:顧名思義,你可以通過不同的方式斷言取樣器的響應,例如搜尋某些文字,響應的大小以及接收響應的持續時間等。例如,你可以使用Response Assertion
搜尋某些文字響應。如果 Assertion 失敗,JMeter 會將應用 Assertion 的取樣器標記為 Failure。- 監聽器:監聽器允許你儲存測試結果,檢視測試執行等,例如,使用
View Results Tree
,你可以看到取樣器請求/響應以及 JMeter 是否標記為 PASS(綠色)/ FAIL(紅色)。使用聚合報告,你可以將測試結果儲存為 CSV 格式。重要的一點是,你在測試執行之前(用於測試指令碼除錯)或在測試執行之後(用於檢視圖形或摘要中的結果)而不是在執行期間使用偵聽器。我們必須在測試期間刪除監聽器,因為它佔用了大量的系統資源。因此,我們在非 GUI 模式下執行測試,並使用.csv/.jtl
格式的-l
選項儲存結果。釋出測試後,你可以將此儲存的檔案載入到 JMeter 中的任何偵聽器中以檢視圖形/摘要。
以下是一般語法(you add any component on need basis
):
Test Plan
Thread Group
Config Element
Logic Controller
Pre Processor
Sampler
Timer
Post Processor
Assertion
Listener
參考文獻: