Apache JMeter是可以對利用HTTP或FTP服務器的應用程序進行測試的工具。它是基于Java的,通過所提供的API它還具有高度可擴展性。典型的JMeter測試包括創建循環和線程組。循環使用預設的延遲來模擬對服務器的連續請求。線程組是為模擬并發負載而設計的。JMeter提供了用戶界面。它還公開了API,用戶可以從Java應用程序來運行基于JMeter的測試。為了在JMeter中創建負載測試,需要構建測試計劃。在實際操作中,Jmeter需要執行一系列的操作。簡單的測試計劃通常包括下列元件:
線程組——這些元件用于指定運行的線程數和等候周期。每個線程模擬一個用戶,而等候周期用于指定創建全部線程的時間。例如,線程數為5,等候時間為10秒,則創建每個線程之間的時間間隔為2秒。循環數定義了線程的運行時間。使用調度器,還可以設置運行的起始時間。
取樣器——對于服務器HTTP、FTP或LDAP請求,這些元件是可配置請求。該教程僅側重于Web Services請求。
監聽器——這些元件用于請求數據的后期處理。例如,可以將數據保存到文件或用圖表來說明結果。此時JMeter圖表并沒有提供許多配置選項;然而它是可擴展的,它始終可以添加額外的可視化效果或數據處理模塊。
Apache JMeter網站給出了關于可用元件的詳細說明。在某些情況下,如果可用元件不適合特定的測試,開發人員可通過在安裝Jmeter的libext目錄中放置jar文件來編寫他/她自己的腳本或Java類,并將其嵌入測試計劃。
本文中我們使用的是版本是JMeter 2.1。從 Web 站點 下載可執行二進制文件,將其解壓縮,然后應用程序即可在Windows或Unix平臺中使用。如果是在Windows操作系統中工作,要轉到bin文件夾用jmeter.bat 或jmeterw.bat啟動應用程序。初始用戶界面如圖1所示。
圖1:啟動Apache JMeter
創建負載測試
使用Jmeter的負載測試功能,可以在服務器上產生高負載并確定其容量和限制。注意:若要使用Web services樣本,需要有可用的mail.jar和activation.jar,它們可從Sun Microsystems中獲取(請參閱下面的鏈接)。由于授權限制,Apache沒有分發這些庫。下載這兩個jar文件之后,將它們放入Java classpath或安裝Jmeter的lib目錄中。
圖2:創建線程組和基本Web Services測試計劃
現在,右鍵單擊Test Plan并添加Thread Group和Loop Controller。我們使用這兩個元件來設置模擬的并發用戶數和測試持續時間。在樹狀結構的Loop Controller下面,添加“WebService (SOAP) Request”和Graph,如圖2所示。如果不能向測試計劃添加WebService請求,則可能是路徑中沒有mail.jar或activation.jar。
鍵入線程數、等候周期和循環數。在本教程中我們分別使用5、10和100。將循環控制器計數設置為1。如果配置了Web Services的WebLogic Server仍然沒有運行,請手動啟動它或從WebLogic Workshop中啟動。