JMeter基本使用方法
1 環境搭建
此部分是我借用LoadRunner的Sample程式作為伺服器,通過JMeter進行Web性能測試的過程。希望對學習JMeter的朋友有所幫助。
2 使用JMeter錄制腳本
2.1 建立JMeter測試計劃(Test Plan)
打開JMeter,看到左邊顯示一個空的測試計劃,把該測試計劃改名為TestPlan1。右鍵單擊該測試計劃,選擇“添加(Add)”-“線程組(Thread Group)”,添加一個線程組,改名為TestGroup1。如下圖所示:

2.2 設定并啟動JMeter代理伺服器
右鍵單擊在“工作台(Work Bench)”,選擇“非測試元件(Non-Test Elements)”中的“Http代理伺服器(HTTP Proxy Server)”,如下圖所示:
設定該“Http代理伺服器”(HTTP Proxy Server),“目标控制器(Target Controller)”選擇剛才建立的線程組(Test Plan1>Thread Group1)。
點選“啟動”,啟動該代理伺服器。
2.3 設定IE的代理伺服器配置
測試工程師打開IE界面,選擇“工具(Tools)”->“Internet選項(Internet Option)”
->“連接配接(connections)”->“區域網路設定(LAN setting)”,如下圖所示:
在區域網路設定(LAN setting)界面勾上“為LAN使用代理伺服器(Use a proxy server for your LAN)”,設定位址(address)為“localhost”,端口(Port)為8080,确定(OK)。
2.4 錄制腳本
在浏覽器的URL欄輸入需要測試的位址,進行操作,操作完畢後,點選JMeter中的“Http代理伺服器(HTTP Proxy Server)”的“停止(STOP)”按鈕,你将能看到“TestGroup1”下面已經錄制了剛才操作的内容。如下圖所示:
2.5 樣例檔案
3 使用JMeter擷取SessionID
前提:本章所使用的腳本錄制請參見《使用JMeter自動錄制腳本》
3.1 添加察看結果樹(View Results Tree)
添加檢視結果樹,檢視腳本運作情況:
Add->Listener->View Results Tree
3.2 确認SessionID的獲得位置
根據錄制情況确認SessionID的獲得位置。我們在檢視結果樹(View Results Tree)中查找到SessionID的傳送位置,如下圖所示:
根據響應資料(Response Data)的内容可以确定,在本案例中SessionID出現在http://hostname:1080/WebTours/nal.pl頁面中。
PS:由于nal.pl頁面包含于http:// hostname:1080/WebTours/index.html中的子頁面,是以需要對頁面足夠了解或者使用錄制工具獲得該頁面的通路資訊(本次測試使用的是JMeter的自動錄制工具)。這一點差別于LoadRunner,LoadRunner可以直接處理包含的頁面,不需要單獨通路子頁面。
3.3 添加正規表達式提取器(Regular Expression Extractor)
正規表達式的提取是在網頁下載下傳後進行的,是以正規表達式提取器(Regular Expression Extractor)在後置處理器(POST Processors)中進行選擇。
操作步驟(在nal.pl頁面中):
英文版:
右鍵點選”HTTP Request”中的”/WebTours/nav.pl”->”Add”->”POST Processors”->” Regular Expression Extractor”
中文版:
右鍵點選”HTTP請求”中的”/WebTours/nav.pl”->”添加”->”後置處理器”->” 正規表達式提取器”
如下圖所示:
3.4 填寫正規表達式(Regular Expression)設定資訊
正規表達式(Regular Expression)的設定如下圖所示:
在Response Field to Check欄目中選擇Body項目,在傳回網頁的主體部分進行查找。
這裡隻是單個比對的情況,如果要出現多個比對建議修改正規表達式,也可以按比對順序引用資料,請參見JMeter User Manual内容。
3.5 添加斷言(Response Assertion)檢查比對結果
為确定是否正确提取SessionID值,在”HTTP Request”(/WebTours/nav.pl)中添加斷言,設定如下圖所示:
Response Field Test中選擇Tex Response對接受的文本資訊進行檢驗。
Pattern Matching Rules中選擇Contains,檢驗文本是否包含檢驗資訊。選擇Not,因為如果判斷正确在View Results Tree看不到結果,是以使用No,這樣在正确的時候将顯示錯誤,測試人員可以在View Results Tree中檢視結果,如下圖所示:
Pattern to Test輸入比對資料${SID},此變量對應于前面正規表達式(Regular Expression)所擷取的變量名稱。
3.6 樣例檔案
4 JMeter參數化過程1
前提:本章所使用的腳本錄制請參見《使用JMeter自動錄制腳本》
4.1 選擇函數位置
參數化是指在進行性能測試的過程中使用不同的參數來模拟系統的處理性能,進而使壓力測試結果更加接近實際情況。
在本案例中,我們通過JMeter模拟多使用者同時登入系統。根據對錄制腳本的分析,使用者登入名通過POST模式進行傳遞,是以測試人員确定位參數傳遞頁面是HTTP Request(/WebTours/login.pl)中實作。如圖所示:
4.2 添加_StringFromFile函數
_StringFromFile,這個函數是從一個檔案中取到一個字元串,這個函數和LoadRunner中的File變量差不多,不過LoadRunner可以直接從資料庫中查詢記錄,而JMeter需要我們借助第三方工具生成文本檔案。生成文本檔案後就可以設定這個函數的參數了,參數分别是
_StringFromFile函數也可以在其他位置直接使用,如斷言(Assertion)位置:
4.3 資料檔案制作
資料檔案使用标準的TXT檔案格式,每一行儲存一個參數供函數調用使用。檔案内容如附件所示:。
PS:在使用過程中根據實際存儲情況更改“Enter full path to file”參數的設定路徑。