腳本用例設計

性能測試過程中,因測試目的不同,可能存在多個不同的場景,但往往只需設計一個腳本。如針對某個業務進行基準測試、壓力測試和負載測試,雖然涉及三個場景,但腳本可能只有一個。測試工程師需要根據場景設計,分析所需的測試腳本並開發。

通常情況下,測試工程師可根據被測業務可能存在的約束進行分析,確定腳本優化及增強方案。

【案例1登陸腳本用例】

ECShop登陸腳本用例如表1所示:

表1登陸腳本用例

測試數據構造

測試工程師深入瞭解被測業務交互過程、確定腳本用例後,可能需根據測試需求構造性能測試過程中所需的測試數據。

以登陸為例,為了更真實的模擬不同用戶登陸、隨機購買商品等行為,可針對登陸用戶名、隨機購買的商品信息進行參數化設計,保證每次登陸或購買的商品信息都不相同,儘可能模擬真實的業務行為。因此,需在測試開始前系統中存在大量需要使用的用戶信息及商品信息。

以本次測試為例,2小時內5萬個用戶登陸,則意味著ECShop內需存在5萬以上的可用帳號,而系統安裝初期並沒有提供這麼多帳號。

測試過程中,測試工程師可利用Jmeter構造測試數據,當然,如果能夠直接在資料庫中利用存儲過程生成是最好的辦法,因為效率相對較高,但要求對錶結構相對熟悉。

本次測試所需的5萬以上的可用帳號,測試工程師利用Jmeter模擬真實用戶註冊行為,設置30個線程,每個線程進行2000次迭代,即可完成6萬個註冊帳號,便於後期測試使用。構造好測試帳號後,可將資料庫備份,便於回歸測試。以下詳細介紹本次測試帳號構造過程。

1.BadBoy創建用戶註冊腳本

本次測試所需的用戶註冊腳本由BadBoy測試工具錄製生成。

(1)啟動BadBoy,輸入URL地址,如:192.168.0.110/ecshop/,如圖2所示。

圖2 BadBoy錄製界面

(2)點擊按鈕,錄製首頁訪問,如圖3所示。

圖3錄製首頁信息

(3)根據註冊步驟,逐步操作,完成所有操作後,停止錄製。

圖4註冊腳本步驟列表

(4)腳本操作錄製完成後,點擊「File」-「Export to Jmeter」,導出Jmeter腳本。

2.Jmeter迭代生成帳號

利用BadBoy生成的腳本,在Jmeter中優化後,執行迭代,生成帳號。

(1)啟動Jmeter,打開BadBoy錄製的腳本,如圖5所示。

圖5載入用戶註冊腳本

(2)利用數據生成工具,如Excel,創建6萬個用戶名,格式為t00001,保存為txt文件。

(3)參數化用戶名,密碼不需要調整,利用CSV Data Set Config創建用戶名參數「username」。選擇「step1」,右鍵,「添加」-「配置元件」-「CSV Data Set Config」,如圖6所示。

圖6 CSV Data Set Config設置界面

(4)「Filename」輸入測試數據所在路徑,如「C:userinfo.txt」,「Variable Names」設置供測試腳本調用的變數名,如「username」,其他默認設置即可,如圖7所示。

圖7用戶名參數化設置

(5)請求中引用「username」變數,如圖8所示。

圖8引用「username」參數

(6)點擊「Thread Group」,設置啟動線程,如「30」。因BadBoy錄製的Jmeter腳本,無法在「Thread Group」中設置循環次數,須在「Step1」中設置,因此此處不設置循環次數,默認為「1」,具體設置如圖9所示。

圖9設置線程數

(7)點擊「Step1」打開循環控制器設置,設置循環次數,如「2000」,與線程組組合生成30*2000=6萬帳號。

圖10設置循環控制器循環次數

(8)測試過程中可能因為請求發送太快,伺服器無法響應,可在請求間加入計時器,延緩請求發送頻率,模擬更真實的註冊操作,如圖11所示,設置線程延遲時間為5秒。

圖11設置定時器

所有操作設置完成後,即可執行該場景,完成6萬測試帳號的註冊,具體時間則由伺服器性能決定。

3.Navicat備份資料庫

所有帳號註冊完成後,可將ECShop資料庫備份,便於後續的測試使用。因ECShop資料庫使用的是Mysql,則可利用Navicat進行資料庫備份。如圖12所示。

圖12 Navicat備份資料庫

通過上述過程介紹,讀者可學習利用Jmeter構造6萬個ECShop註冊用戶,用於開展後續的用戶登陸及隨機購買商品性能測試。

推薦閱讀:

相關文章