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