Jmeter前言

EtherealBoyJiang發表於2024-03-22

前言


為什麼要撰寫這樣一個教程呢?


  • 深入學習Jmeter

    溫故而知新。儘管我已經使用JMeter很長時間,但還有許多元件我並不十分了解,因此,編寫教程的過程成為了我的學習過程,透過反覆回顧和整理知識,我能夠更全面地掌握JMeter。

  • 分享知識

    我深信知識具有強大力量,而這種力量應該共享,我願意將我的所學分享給志同道合的朋友——也就是你們。它不僅能夠為他人提供幫助,EtherealBoyJiang還能夠在這個過程中體驗到一種內在的滿足感。

  • 結識朋友

    這是我的第一個教程,後續也會編輯更多的教程。希望能透過這一行為與各位取得交流,成為朋友,與大家一起討論更多的事情。


關於Jmeter


JMeter是Apache組織開發的基於Java的壓力測試工具。用於對軟體做壓力測試,它最初被設計用於Web應用測試,但後來擴充套件到其他測試領域。 它可以用於測試靜態和動態資源,例如靜態檔案、Java 小服務程式、CGI 指令碼、Java 物件、資料庫、FTP 伺服器, 等等。

JMeter 可以用於對伺服器、網路或物件模擬巨大的負載,來自不同壓力類別下測試它們的強度和分析整體效能。

另外,JMeter能夠對應用程式做功能/迴歸測試,透過建立帶有斷言的指令碼來驗證你的程式返回了你期望的結果。為了最大限度的靈活性,JMeter允許使用正規表示式建立斷言。


我們為什麼使用Jmeter


  • 開源免費,基於Java編寫,可整合到其他系統可擴充各個功能外掛

  • 支援介面測試,壓力測試等多種功能,支援錄製回放,入門簡單

  • 相較於自己編寫框架活其他開源工具,有較為完善的UI介面,便於介面除錯

  • 多平臺支援,可在Linux,Windows,Mac上執行selenium 是一套完整的web應用程式測試系統,包含了測試的錄製(selenium IDE),編寫及執行(Selenium Remote Control)和測試的並行處理(Selenium Grid)。Selenium的核心Selenium Core基於JsUnit,完全由JavaScript編寫,因此可以用於任何支援JavaScript的瀏覽器上。


主要元件介紹


  • 測試計劃(Test Plan)

    是使用JMeter進行測試的起點,它是其它JMeter測試元件的容器。

  • 執行緒組(Thread Group)

    代表一定數量的併發使用者,它可以用來模擬併發使用者傳送請求。

  • 取樣器(sampler)

    定義實際的請求內容,被執行緒組包含,我們主要用HTTP請求。

  • 監聽器(Listener)

    負責收集測試結果,同時也被告知了結果顯示的方式。我們常用的包括:聚合報告、察看結果樹、用表格檢視結果,都支援將結果資料寫入檔案。其他的新增上去看看就行。

  • 邏輯控制器(Logic Controller)

    可以自定義JMeter傳送請求的行為邏輯,它與Sampler結合使用可以模擬複雜的請求序列。

    其分為迴圈控制器和事務控制器。

  • 斷言(Assertions)

    可以用來判斷請求響應的結果是否如使用者所期望的。它可以用來隔離問題域,即在確保功能正確的前提下執行壓力測試。這個限制對於有效的測試是非常有用的。

  • 配置元件(Config Element)

    維護Sampler需要的配置資訊,並根據實際的需要會修改請求的內容。我們主要在引數化中用到CSV Data Set Config。

  • 前置處理器(Pre Processors)和後置處理器(Post Processors)

    負責在生成請求之前和之後完成工作。前置處理器常常用來修改請求的設定,後置處理器則常常用來處理響應的資料。我們主要在動態關聯中用到後置處理器的正規表示式提取器。

  • 定時器(Timer)

    負責定義請求之間的延遲間隔。

  • 執行順序(Execution sequence)

    配置元件、前置處理器、定時器、取樣器、後置處理器、斷言、監聽器


工作流程


JMeter透過模擬一組使用者將請求傳送到目標伺服器。 隨後,收集資料以透過各種格式計算目標伺服器的統計和顯示效能度量。


內容引用


Jmeter測試元件介紹|EMQ
鳥哥教程
本系列教程中部分文字引用於此


示例介面程式碼


下載示例程式碼  
本系列文章中所有示例介面皆由python編寫,python版本為3.12.1,如要使用示例介面請安裝python3.12.1與pycharm。
壓縮包內包含原始碼和使用說明。


說明


對於測試人員來說,JMeter是一款非常強大的介面測試工具,尤其在效能測試方面表現出色。希望讀者們透過EtherealBoyJiang編寫的系列教程,能夠熟練掌握JMeter的使用。

本文基於JDK21、Jmeter-5.6.3測試編寫,可能不適用於歷史版本及未來版本。如果Jmeter在後續的新版本中有所變化,或者文中有錯漏的地方,請聯絡EtherealBoyJiang,EtherealBoyJiang感激不盡。

對EtherealBoyJiang來說,能夠幫助到讀者是一件莫大的榮幸,期待更多讀者透過本系列教程獲得成長。


相關文章