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

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

1. 用戶登陸并發(fā)基準場景設置

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

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

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

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

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

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

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

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

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

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

Jmeter性能測試系列
圖3添加服務器監(jiān)控窗口

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

Jmeter性能測試系列
圖4添加服務器監(jiān)控對象

添加完成后,需執(zhí)行計劃才能獲取數(shù)據(jù)。

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

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

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

Jmeter性能測試系列
圖7設置數(shù)據(jù)獲取頻率

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

本次測試采用Spotlight監(jiān)控Mysql性能表現(xiàn),安裝好Spotlight后,添加數(shù)據(jù)庫連接即可。接下來介紹利用Spotlight監(jiān)控Mysql數(shù)據(jù)庫的步驟。

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

Jmeter性能測試系列
圖8數(shù)據(jù)庫監(jiān)控連接列表

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

Jmeter性能測試系列
圖9創(chuàng)建服務器mysql監(jiān)控連接

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

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

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

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

“Port”:默認設置即可

“Database”:設置為待監(jiān)控的數(shù)據(jù)庫名稱,如“ecshop”

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

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

上述過程是用戶登陸業(yè)務并發(fā)基準測試場景設置過程。

2. 用戶登陸業(yè)務量基準場景設置

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

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

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

“持續(xù)時間”

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

“啟動延遲”

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

“啟動時間”

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

“結束時間”

設置場景執(zhí)行結束時間,“結束時間”-“啟動時間”即為場景持續(xù)時間。

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

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

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

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

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

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

Jmeter性能測試系列
圖14“Step1”循環(huán)控制

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

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

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

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

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

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