測試執(zhí)行前,需對測試環(huán)境進行確認,確保所有環(huán)境、系統(tǒng)業(yè)務都能正常使用。首先需將ECShop數(shù)據(jù)庫恢復到初始狀態(tài),即創(chuàng)建了6萬注冊帳號,沒有任何訂單時的數(shù)據(jù)庫,便于后續(xù)統(tǒng)計商品隨機購買場景的成功率。

 

本次被測系統(tǒng)有個特殊的地方,有些商品的庫存量較少,或者為0,處于缺貨狀態(tài),為了避免測試過程中因數(shù)據(jù)問題導致測試失敗,在開始執(zhí)行測試前,可將所有商品的庫存調(diào)整為70000,這樣能夠充分保證測試數(shù)據(jù)夠用,不會出現(xiàn)因為測試數(shù)據(jù)準備不充分導致的測試失敗。修改庫存量SQL語句如下:

 

update ecs_goods SET ecs_goods.goods_number = "70000"

 

場景執(zhí)行時,須在可控的測試環(huán)境下進行,當客戶端性能不足時,需考慮提升客戶端配置,或分布線程數(shù)。對于服務器,需保證在性能測試過程中,服務器資源獨享,除本次性能操作外任何人為操作均不允許。因此,性能測試實施最好選擇用戶使用較少的時候,盡可能降低對性能測試結果的干擾。

測試場景按照預期設置執(zhí)行完成后,在DOS命令模式下,可利用下列代碼收集測試報告。

 

Jmeter –n –t測試結果文件名 –l 日志文件名 –e –o HTML測試結果存放路徑

 

JMeter 默認在當前目錄尋找需生成報告的腳本文件,并把日志記錄在當前目錄。如果需分析的文件不在當前目錄,則需使用絕對路徑。

測試服務器硬件配置:

Jmeter性能測試系列
表1測試服務器硬件配置

測試客戶端硬件配置:

Jmeter性能測試系列
表2測試客戶端硬件配置

1.用戶登陸并發(fā)場景執(zhí)行

根據(jù)前面的用戶登陸腳本及場景設置,啟動本次100線程并發(fā)測試場景。確保所有設置正確,服務器可正確訪問,Linux服務器的ServerAgent服務已經(jīng)打開,Mysql監(jiān)控已經(jīng)打開,關閉客戶端與本次測試無關的應用程序。

 

Jmeter性能測試系列
圖1用戶登陸并發(fā)測試Jmeter運行界面

運行結束后,保存測試過程中生成的監(jiān)控圖,如系統(tǒng)資源使用率、Hits per Second、Transactions per Second、數(shù)據(jù)庫監(jiān)控圖,并記錄斷言結果,聚合報告結果等。

利用以下代碼生成測試報告,便于后續(xù)結果分析。

 jmeter -n -t D:ECShopuserlogin100result.jmx -l user100 -e -o D:ECShopuserlogin100

 

2.用戶登陸業(yè)務量場景執(zhí)行

打開用戶登陸業(yè)務量場景,確認相關數(shù)據(jù)、環(huán)境正確后設置78個線程數(shù),啟動場景,執(zhí)行2小時。測試完成后保存相關測試數(shù)據(jù),利用下列代碼生成測試報告,便于后續(xù)結果分析。

jmeter -n -t D:ECShopuserloginbuss.jmx -l loginbuss -e -o D:ECShoploginbuss

 

3.隨機購買并發(fā)場景執(zhí)行

與用戶登陸并發(fā)測試相同的操作方式,啟動100個線程數(shù)的隨機購買并發(fā)場景測試。測試完成后保存相關數(shù)據(jù),利用下列代碼生成測試報告,便于后續(xù)結果分析。

jmeter -n -t D:ECShopuserbuyprod100result.jmx -l buy100 -e -o D:ECShopuy100

 

4.隨機購買業(yè)務量場景執(zhí)行

打開隨機購買業(yè)務量場景,初始化測試環(huán)境,確保后臺訂單中沒有數(shù)據(jù)(便于成功率統(tǒng)計),確認相關數(shù)據(jù)、環(huán)境正確后設置100個線程啟動場景,執(zhí)行30分鐘。測試完成后保存相關測試數(shù)據(jù),利用下列代碼生成測試報告,便于后續(xù)結果分析。

 

jmeter -n -t D:ECShopuserbuyprodbuss.jmx -l buybuss -e -o D:ECShopuybuss

 

Jmeter執(zhí)行過程中,如果測試時間較長,可能會導致Jmeter內(nèi)存溢出,修改Jmeter內(nèi)存配置即可解決。

編輯Jmeter的啟動文件“jmeter.bat”,修改如下代碼:

set HEAP=-Xms256m -Xmx256m
set NEW=-XX:NewSize=128m -XX:MaxNewSize=128m

為:

set HEAP=-Xms512m -Xmx1024m
set NEW=-XX:NewSize=256m -XX:MaxNewSize=512m