JMeter基礎之常用概念
JMeter是一個非常流行的性能測試工具,它的優點如下:
開源,它是一款開源的免費軟件,使用它不需要您支付任何費用。
小巧,相比LoadRunner的龐大(最新LR11將近4GB),它非常小巧,不需要安裝,但需要JDK環境,因為它是使用java開發的工具。
功能強大,JMeter設計之初只是一個簡單的Web性能測試工具,但經過不段的更新擴展,現在可以完成數據庫、FTP、LDAP、WebService等方面的測試。因為它的開源性,當然您也可以根據自己的需求擴展它的功能。
從性能工具的原理上看,JMeter工具和其他性能工具在原理上完全一致,主要包含四個部分:
?負載發生器:用於產生負載,通常以多線程或是多進程的方式模擬用戶行為。
?用戶運行器:通常是一個腳本運行引擎,用戶運行器附加在線程或進程上,根據腳本要求模擬指定的用戶行為。
?資源生成器:用於生成測試過程中服務器、負載機的資源數據。
?報表生成器:根據測試中獲得的數據生成報表,提供可視化的數據顯示方式。
下面介紹一些常用的概念:
測試計劃
Test Plan (測試計劃):包含與本次性能測試所有相關的功能組件。右鍵單擊“測試計劃”彈出菜單,可以看到計劃下都有哪些功能模塊。
Threads (Users)線程用戶
線程組、setUp Thread Group 與tearDown Thread Group,雖然名字不一樣,但創建之後,其界面是完全一樣的。這三種線程組的區別如下:
?Thread Group(線程組)
這個就是我們通常添加運行的線程。通俗的講一個線程組,,可以看做一個虛擬用戶組,線程組中的每個線程都可以理解為一個虛擬用戶。線程組中包含的線程數量在測試執行過程中是不會發生改變的。
?setUpThread Group
setUp Thread Group可以理解為對於線程組的初始化和完成時處理。setUp Thread Group是所有我們真正開始線程並發之前的準備工作,必須是在線程組開始之前完成的並且擁有自己獨立的線程設置。
?tearDown Thread Group
tearDown Thread Group是在所有線程組運行結束後進行的。如果線程組場景一直在執行中,那麽將永遠也輪不到tearDown Thread Group執行。
控制器
JMeter有兩種類型的控制器:取樣器(Sampler)和邏輯控制器(Logic Controller),可以使用這些元件來驅動處理一個測試。
取樣器(Sampler)
取樣器(Sample)是性能測試中向服務器發送請求、記錄響應信息和記錄響應時間的最小單元,JMeter 原生支持多種不同的Sampler ,如 HTTP Request Sampler 、 FTP Request Sample 、TCP Request Sample 、JDBC Request Sampler 等。
每一種不同類型的 Sampler 可以根據設置的參數向服務器發出不同類型的請求。另外,在JMeter 的所有Sampler 中,Java Request Sampler 和 Beanshell Request Sampler 是兩種特殊的可定制的 Sampler 。
邏輯控制器(Logic Controller)
邏輯控制器,包括兩類無件,一類是用於控制Test Plan 中 Sampler 節點發送請求的邏輯順序的控制器,常用的有 如果(If)控制器 、switch Controller 、Runtime Controller、循環控制器等。
前置處理器(Pre Processors)
前置處理器(PreProcessors)用於在實際的請求發出之前對即將發出的請求進行特殊處理。例如,HTTP URL重寫修復符則可以實現URL重寫,當URL中有sessionID 一類的session信息時,可以通過該處理器填充發出請求的實際的sessionID 。
後置處理器(Post Processors)
後置處理器(Post Processors)用於對Sampler 發出請求後得到的服務器響應進行處理。一般用來提取響應中的特定數據(類似LoadRunner測試工具中的關聯概念)。例如,XPath Extractor 則可以用於提取響應數據中通過給定XPath 值獲得的數據。
斷言(Assertions)
斷言用於檢查測試中得到的相應數據等是否符合預期,斷言一般用來設置檢查點,用以保證性能測試過程中的數據交互是否與預期一致。
定時器(Timer)
定時器(Timer)用於操作之間設置等待時間,等待時間是性能測試中常用的控制客戶端QPS的手端。類似於LoadRunner裏面的“思考時間”。JMeter 定義了Bean Shell Timer、Constant Throughput Timer、固定定時器等不同類型的Timer。
測試片段(Test Fragment)
測試片段是在2.5版本之後新加的一個選項。
測試片段元素是控制器上的一個種特殊的線程組,它在測試樹上與線程組處於一個層級。它與線程組有所不同,因為它不被執行,除非它是一個模塊控制器或者是被控制器所引用時才會被執行。
配置元件(Config Element)
配置元件(ConfigElement)用於提供對靜態數據配置的支持。CSV Data Set Config 可以將本地數據文件形成數據池(Data Pool),而HTTP Request Sampler和 TCP Request Sampler等類型的配置元件則可以修改Sampler的默認數據。
到此,相信您已經對JMeter的基本組成元件有了初步的了解
JMeter基礎之常用概念