測試執行前,需對測試環境進行確認,確保所有環境、系統業務都能正常使用。首先需將ECShop資料庫恢復到初始狀態,即創建了6萬註冊帳號,沒有任何訂單時的資料庫,便於後續統計商品隨機購買場景的成功率。

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

update ecs_goods SET ecs_goods.goods_number = "70000"

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

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

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

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

測試伺服器硬體配置:

表7- 10測試伺服器硬體配置

主機用途

機型/OS

臺數

CPU/臺

內存容量/臺

對應IP

應用伺服器

PC/CentOS

1

I5

3G

192.168.0.110

資料庫伺服器

PC/ CentOS

1

I5

3G

192.168.0.110

測試客戶端硬體配置:

表7- 11測試客戶端硬體配置

主機用途

機型/OS

臺數

CPU/臺

內存容量/臺

對應IP

壓力負載生成器

PC/Win 7

1

I5

8G

192.168.0.100

用戶登錄並發場景執行

根據前面的用戶登錄腳本及場景設置,啟動本次100線程並發測試場景。確保所有設置正確,伺服器可正確訪問,Linux伺服器的ServerAgent服務已經打開,Mysql監控已經打開,關閉客戶端與本次測試無關的應用程序。

圖7- 45用戶登錄並發測試Jmeter運行界面

運行結束後,保存測試過程中生成的監控圖,如系統資源使用率、Hits per Second、Transactions per Second、資料庫監控圖,並記錄斷言結果,聚合報告結果等。

利用以下代碼生成測試報告,便於後續結果分析。

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

用戶登錄業務量場景執行

打開用戶登錄業務量場景,確認相關數據、環境正確後設置78個線程數,啟動場景,執行2小時。測試完成後保存相關測試數據,利用下列代碼生成測試報告,便於後續結果分析。

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

隨機購買並發場景執行

與用戶登錄並發測試相同的操作方式,啟動100個線程數的隨機購買並發場景測試。測試完成後保存相關數據,利用下列代碼生成測試報告,便於後續結果分析。

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

隨機購買業務量場景執行

打開隨機購買業務量場景,初始化測試環境,確保後臺訂單中沒有數據(便於成功率統計),確認相關數據、環境正確後設置100個線程啟動場景,執行30分鐘。測試完成後保存相關測試數據,利用下列代碼生成測試報告,便於後續結果分析。

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

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

編輯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

推薦閱讀:

相關文章