Jmeter性能測試系列-測試數據構造
來自專欄 軟體測試自留地
測試工程師深入了解被測業務交互過程、確定腳本用例後,可能需根據測試需求構造性能測試過程中所需的測試數據。以登錄為例,為了更真實的模擬不同用戶登錄、隨機購買商品等行為,可針對登錄用戶名、隨機購買的商品信息進行參數化設計,保證每次登錄或購買的商品信息都不相同,儘可能模擬真實的業務行為。因此,需在測試開始前系統中存在大量需要使用的用戶信息及商品信息。
以本次測試為例,2小時內5萬個用戶登錄,則意味著ECShop內需存在5萬以上的可用帳號,而系統安裝初期並沒有提供這麼多帳號。
測試過程中,測試工程師可利用Jmeter構造測試數據,當然,如果能夠直接在資料庫中利用存儲過程生成是最好的辦法,因為效率相對較高,但要求對錶結構相對熟悉。
本次測試所需的5萬以上的可用帳號,測試工程師利用Jmeter模擬真實用戶註冊行為,設置30個線程,每個線程進行2000次迭代,即可完成6萬個註冊帳號,便於後期測試使用。構造好測試帳號後,可將資料庫備份,便於回歸測試。以下詳細介紹本次測試帳號構造過程。
BadBoy創建用戶註冊腳本
本次測試所需的用戶註冊腳本由BadBoy測試工具錄製生成。
1、啟動BadBoy,輸入URL地址,如:http://192.168.0.110/ecshop/,如下圖所示。
2、點擊跳轉按鈕,錄製首頁訪問,如下圖所示。
3、根據註冊步驟,逐步操作,完成所有操作後,停止錄製。
4、腳本操作錄製完成後,點擊「File」-「Export to Jmeter」,導出Jmeter腳本。
Jmeter迭代生成帳號
利用BadBoy生成的腳本,在Jmeter中優化後,執行迭代,生成帳號。
1、啟動Jmeter,打開BodBoy錄製的腳本,如下圖所示。
2、利用數據生成工具,如Excel,創建6萬個用戶名,格式為t00001,保存為txt文件。
3、參數化用戶名,密碼不需要調整,利用CSV Data Set Config創建用戶名參數「username」。選擇「step1」,右鍵,「添加」-「配置元件」-「CSV Data Set Config」,如下圖所示。
4、「Filename」輸入測試數據所在路徑,如「C:userinfo.txt」,「Variable Names」設置供測試腳本調用的變數名,如「username」,其他默認設置即可,如下圖所示。
5、請求中引用「username」變數,如下圖所示。
6、點擊「Thread Group」,設置啟動線程,如「30」。因BadBoy錄製的Jmeter腳本,無法在「Thread Group」中設置循環次數,須在「Step1」中設置,因此此處不設置循環次數,默認為「1」,具體設置如下圖所示。
7、點擊「Step1」打開循環控制器設置,設置循環次數,如「2000」,與線程組組合生成30*2000=6萬帳號。
8、測試過程中可能因為請求發送太快,伺服器無法響應,可在請求間加入計時器,延緩請求發送頻率,模擬更真實的註冊操作,如下圖所示,設置線程延遲時間為5秒。
所有操作設置完成後,即可執行該場景,完成6萬測試帳號的註冊,具體時間則由伺服器性能決定。
Navicat備份資料庫
所有帳號註冊完成後,可將ECShop資料庫備份,便於後續的測試使用。因ECShop資料庫使用的是Mysql,則可利用Navicat進行資料庫備份。如下圖所示。
通過上述過程介紹,讀者可學習利用Jmeter構造6萬個ECShop註冊用戶,用於開展後續的用戶登錄及隨機購買商品性能測試。
推薦閱讀:
※Selenium Page Object 自動化測試框架-data測試數據設計
※同學,你為什麼定位不到元素?
※matplotlib繪圖和可視化
※核心實驗:Selenium IDE->測試Agileone的公告管理
※移動端測試探索之路
TAG:LoadRunner | 自動化測試 | 性能測試 |