前言
在 jmeter 中提供了一系列的不同的組件,每一種組件都提供了某類功能的實現,用於支持性能測試的實施。請看下圖,jmeter 的核心組件構成。
學習、研究 jmeter 之前,深入了解 jmeter 的基本組件及其作用是必須的。接下來我們開始討論基於 jmetere 進行性能測試必須掌握的組件,以便大家逐步掌握 jemter 的核心基本能力。下面的幾個組件是入門 jmeter 必須掌握的:
- Thread Group
- Samplers
- Listeners
- Configuration
Thread Group( 線程組)
線程組是一系列線程的集合,每一個線程代表着一個正在使用應用程序的用戶。在 jmeter 中,每個線程意味着模擬一個真實用戶向服務器發起請求。
在 jmeter 中,線程組組件運行用戶設置線程數量、初始化方式等等配置。例如,如果你設置線程數為 100,那么 jmeter 將創建並模擬測試100 個用戶請求到服務器端。
如下圖所示:
Samplers
我們常用的 jmeter 測試有 HTTP、FTP、JDBC 協議,以及其他各種支持的協議。
在 jmeter 中 Samplers 組件已經實現了哪些協議的支持。如下圖所示:
- BeanShell Sampler
這個組件元素允許我們在 jmeter 中寫 Bean Shell 腳本,寫這個腳本有什么作用?意味着你可以完全的控制和實現自己的需要。靈活定制,自然也就有難度,你得有點腳本功底。
參見圖說明:
注:每一個 Sampler 都有自己獨立的 beanshell 解析器,並且sampler 只能在自己的線程中調用(意味着不可跨線程使用)。
- FTP Request
FTP Request 元素提供了測試 ftp 服務器的能力,這個元素讓我們能夠去測試 ftp 的上傳、下載功能。下面我們看一下 ftp 元素的基本配置說明:
注:我們經常在 windows 和 linux 直接通過 ftp 進行文件傳輸,建議勾選 Use Binary Mode,避免編碼問題。
- HTTP Request
HTTP Request 提供了 HTTP/HTTPS 協議的測試支持能力。了解下基本的功能。
- Java Request
Java Request 提供了測試 java API 的支持,但要注意要測試的
java API 需要有對應的測試類,該測試類必須繼承AbstractJavaSamplerClient。
示例如下:
待測類 class Sum; -> 生成 sum.jar
繼承至 AbstractJavaSamplerClient 的測試類 Class
TestSum(AbstractJavaSamplerClient) -> 生成 testSum.jar
==注:==
一個 java 測試應該要實現以下幾個方法,以便 jmeter java sampler 可以正確調用:
注意 testSum.jar 要能調用 sum.jar。將上述 sum.jar、testSum.jar 拷貝至 jmeter 安裝目錄的 lib/ext下。
- Listeners( 監聽器)
在 jmeter 中 Listeners 提供了執行結果生成和顯示能力的支持,提供了樹形結構、表、圖形和日志方式。下面我們先看下幾種結果顯示示例圖。
圖形模式:
樹模式:
表模式:
日志方式
- Configuration Elements( 即配置元件)
配置元件包含了 Samplers 下各種 Sampler 的默認配置設置,如果有配置默認配置,在 Sampler 下對應的 sampler 就會使用該默認配置。
下面我們看看我們主要用到的默認配置有哪些。
下面進行逐一的說明。
CSV Data Set Config
CSV Data Set Config 主要用於讀取 csv 格式的文件中數據,實現參數化。
HTTP Cookie Manager
HTTP Cookie Manager 主要用於默認 cookie 管理。
HTTP Request Defaults
HTTP Request Defaults 用於配置 HTTP request 的默認值,例如 IP、端口等等都設置好默認值后,在后續 HTTPrequest 元素里就不需要重復設置,節省時間。
總結:本次就 jmeter 常用的相關組件元素進行了大概的說明,以便大家有個基本的了解,為后續深入學習和實踐打下基礎。