高階 Apache JMeter 元件概述

Apache JMeter 根據其功能將所有元件分為以下組:

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

參考文獻:

  1. 測試計劃和元件
  2. 執行訂單
  3. 範圍規則