測試腳本設置完成后,需進行測試場景設置。本次測試分為2組4個場景。

本次測試過程所有場景的計時器全部啟用,模擬用戶的真實請求發送請求,測試工程師可在實際測試時測試啟用計時器與禁用計時器兩種情況。

1. 用戶登陸并發基準場景設置

本次并發測試目的在于驗證ECShop平臺能否支持100個并發同時登陸系統,無須考慮持續時間。首先,設置場景執行計劃。

(1) 點擊“Thread Group”(此處改名為“用戶登陸業務”),出現圖1。

Jmeter性能測試系列
圖1用戶登陸線程組設置

并發測試,每個線程只需執行一次,因此,圖1中,僅需將“線程數”設置為100,其他默認即可。

(2) 線程組設置完成后,需設置服務器資源監控信息。

Jmeter利用Plugins Manager管理所有插件,測試工程師可利用該管理器管理測試過程中可能需要的插件,如TPS監控、系統資源監控等。

以服務器性能監控為例,Plugins manager中添加“PerfMon (Servers Performance Monitoring)”,即可在Jmeter遠程監控服務器系統資源。

(3) 下載“ServerAgent”,上傳至Linux服務器,啟動“startAgent.sh”,“ServerAgent”默認開啟4444代理端口,如圖2所示。

Jmeter性能測試系列
圖2開啟ServerAgent遠程代理

(4) 選擇“Step1”,右鍵,“添加”-“監聽器”-“jp@gc - PerfMon Metrics Collector”,出現圖3。

Jmeter性能測試系列
圖3添加服務器監控窗口

(5) 點擊“Add Row”,添加需監控的對象,如CPU、內存等,如圖4所示。

Jmeter性能測試系列
圖4添加服務器監控對象

添加完成后,需執行計劃才能獲取數據。

(6) 類似方法,添加“Hits per Second”、“Transactions per Second”等需要監控的服務器響應指標。如圖5、圖6所示。

Jmeter性能測試系列
圖5添加“Hits per Second”監控圖
Jmeter性能測試系列
圖 6添加“Transactions per Second”監控圖

(7) 對于“Hits per Second”、“Transactions per Second”調整數據獲取頻率,點擊圖5、圖6的“Settings”按鈕,如圖7所示,將“1000”改為“3000”。測試持續時間長則可適當延長該數值。

Jmeter性能測試系列
圖7設置數據獲取頻率

因Jmeter默認沒有提供Mysql數據的監控,因此,本次性能測試需采用其他性能監控工具監控Mysql數據,便于獲取整個場景執行過程中,服務器Mysql的性能表現。

本次測試采用Spotlight監控Mysql性能表現,安裝好Spotlight后,添加數據庫連接即可。接下來介紹利用Spotlight監控Mysql數據庫的步驟。

(1) 啟動Spotlight后,點擊創建“Connect”按鈕,如8所示。

Jmeter性能測試系列
圖8數據庫監控連接列表

(2) 雙擊“Add new connection”,出現圖9。

Jmeter性能測試系列
圖9創建服務器mysql監控連接

“Connection name”:設置連接名稱,任意起名,如“ECShopDB”

“Host”:設置服務器ip地址,如“192.168.0.110”

“Username”:Mysql服務器用戶名,如“root”

“Password”:Mysql服務器密碼,根據實際密碼輸入,此處為“123456”

“Port”:默認設置即可

“Database”:設置為待監控的數據庫名稱,如“ecshop”

這里不設置OS監控,因為Jmeter已經對服務器進行了監控,所有設置完成后,點擊“Connect”按鈕,即可完成Spotlight對服務器Mysql的監控設置,設置完成后監控圖如圖10所示。

Jmeter性能測試系列
圖10 Spotlight監控服務器Mysql資源使用

上述過程是用戶登陸業務并發基準測試場景設置過程。

2. 用戶登陸業務量基準場景設置

根據前面測試場景分析,業務量測試需設置78個線程數,同時需設置測試執行的時間段。線程數設置較為簡單,持續時間該如何處理呢?

(1) 勾選圖1中的“調度器”,如圖11所示。

Jmeter性能測試系列
圖11線程組調度器設置

“持續時間”

場景執行的持續時間,如果設置了該時間,“結束時間”將不生效。

“啟動延遲”

在“啟動時間”開始后的多長時間內執行。通常不做設置。

“啟動時間”

場景執行開始時間,利用該設置可設置定時無人值守測試。

“結束時間”

設置場景執行結束時間,“結束時間”-“啟動時間”即為場景持續時間。

(2) 本次登陸業務量測試,持續時間需2小時,則設置信息如圖12所示。

Jmeter性能測試系列
圖12用戶登陸2小時場調度器設置

(3) 以上設置一定要勾選“循環次數”為“永遠”,“調度器”才能生效。線程組線程數及調度時間設置完成后的界面如圖13所示。

Jmeter性能測試系列
圖13用戶登陸線程組設置完成界面

因本次測試腳本由BadBoy錄制生成,而BadBoy錄制的腳本與Jmeter錄制的腳本在循環設置方面存在差異,因此在完成線程組相關設置后,需對“Step1”進行設置。

(4) “Step1”設置較為簡單,與線程組一樣,將“循環次數”設為“永遠”即可,如圖14所示。

Jmeter性能測試系列
圖14“Step1”循環控制

服務器監控則與“用戶登陸并發基準場景設置”中的監控設置方式相同。

3. 隨機商品購買并發基準場景設置

根據需求,隨機商品購買測試并發數為100,參考“用戶登陸基準場景設置”,設置線程數為100,其他類似。

4. 隨機商品購買業務量基準場景設置

將線程組設置為100,其他類似。

相關設置完成后,即可進行場景執行,需注意的是,所有的監控應先于場景執行操作開啟,否則可能會導致數據監控遺漏。