使用Loadrunner進行性能測試
- 2020 年 9 月 4 日
- 筆記
- loadrunner, 性能測試
一、確定性能測試的範圍、要求、配置、工具等
- 明確測試的系統:
本文檔主要指的是web應用。
- 明確測試要求:
用戶提出性能測試,例如,網站首頁頁面響應時間在3S之內,主要的業務操作時間小於10s,支援300用戶在線操作等相關語言描述。主要指標涉及到到並發量,響應時間,TPS,伺服器CPU、記憶體使用佔比等
- 明確伺服器配置:
web伺服器,資料庫伺服器,包括記憶體、CPU等,同時對於資料庫版本、中間件版本都需要明確好
- 明確測試工具和環境:
確定壓力測試工具,伺服器的監控工具等(本次使用的是loadrunner作為負載軟體,nmon作為伺服器監控工具)
二、確定測試的方式,業務佔比
根據系統的實際業務場景,來測定測試的方式,可以多選。
- 壓力測試
選擇場景做一次性並發,觀察那個時間點的連接處和TPS結合來判斷系統所能承受的最大壓力場景。
- 容量測試
採用階梯式加壓的形式來判斷系統所能承受的性能節點,一般在場景設置中配置,舉例:每2分鐘增加20個虛擬用戶,每次持續2分鐘,還是結合TPS,每秒事務總數,每秒連接數來輔助判斷系統拐點(指標出現明顯的下降等)。
- 穩定性測試
容量測試可以得到系統的最高承受力或這是性能最優點,可以用容量測試的結果或者*80%來做穩定性測試,設定時間為8小時或者是24等。
三、測試計劃,(規範性比較強的會做要求,例如銀行)
野路子的我是不需要計劃的【哈哈哈】,不過有時候公司會讓提供,此處列一個基本的目錄供參考(一般像銀行也會讓你提供一份)。
四、搭建測試環境
測試系統環境:windows7
測試工具:LoadRunner11
測試瀏覽器:火狐瀏覽器24
【這塊沒啥說的,網上教程很多,目前破解的只有LoadRunner11,而11隻能在window7-旗艦版上使用,而且支援錄製的,只有IE8和火狐24】
四、錄製腳本
第一步點擊創建/編輯腳本【注意啟動都是用管理員啟動】
這裡的參數需要說明一下:
應用程式類型:分為Internet 應用程式,w32應用程式,web測試默認Internet 應用程式就可以了。
要錄製的程式:此為瀏覽器的應用程式地址,這裡使用的火狐24
url地址:要測試的服務地址
工作目錄:lordrunner的bin目錄
注意:此處可以分離對應的操作,比如說初始是登錄,則簡歷對應登錄操作存放登錄相關事件腳本
錄製腳本過程相對簡單,傻瓜式,這裡就不描述了,主要是錄製的腳本需要調整,主要通過Script進行調整,錄製後的腳本查看請求響應情況可以通過Tree進行查看,類似頁面F12的效果。
五、腳本增強
1、事務
模擬用戶的一個相對完整的、有意義的業務操作過程,例如登錄、查詢、交易、轉賬,這些都可以作為事務,而一般不會把每次HTTP請求作為一個事務。對於業務邏輯性比較強的系統來說,一個事務可能是一系列請求的合集,比如說一個保存事務,一直到保存這一步,可能包括了,獲取新增介面資訊、獲取客戶資訊、獲取清算資訊、計算、然後才是保存。
這一塊就要具體業務具體分析了,要注意,集合點中不要設置集合點,思考時間,不然會影響實際的結果。
至於事務的設置,可以使用右鍵新增,要注意這是一個前後呼應的函數,開始和結尾必須都存在,事務名稱一致。
2、集合點
集合點,顧名思義,就是虛擬用戶的集合點,相當於大量的用戶集合某一個點,並等待其他用戶集合,達到釋放的標準後,同一時間對伺服器訪問形成並發,來對伺服器形成更大的壓力。
操作方式如下:
3、思考時間
用戶訪問某個網站或軟體,一般不會不停地做個各種操作,例如填寫表單,用戶需要時間輸入資訊,並檢查等等,也就是說用戶在做某些操作時,是會有停留時間的,我們在做性能測試時,為了更真實的模擬用戶的操作,需要給程式碼加入思考時間。
使用方式如下:
4、參數化
為了更真實的模擬現實環境,我們進行性能測試的時候登錄用戶也不能是同一樣,此時可能需要預設成千上百的用戶,又或者一些系統本身就是單點登錄的系統,一個用戶在使用時,其他人無法使用。針對這些場景,參數化就派上用場了。
以用戶名、密碼為例,點擊記事本編輯,出現以下格式文件編輯介面,如果量比較大,可以使用excel編輯好,複製進來,用戶名我們一般按照列名來取,
而用戶名的選取方式
選擇下一行的時間:
Sequential :順序的,按照參數化的數據順序,從上往下一個一個的來取;
Random: 隨機取,參數化中的數據,每次隨機的從中抽取數據;
Unique :唯一,唯一的向下取值,只能被用一次;
Same line as *:和*列取同一行的值,(行相同)步調一致;
更新值得時間:
Each iteration :每次迭代時取值;
Each occurrence :每次遇到該參數時取值;
Once :取值僅一次,腳本運行過程中只取值一次值的是:一次選擇,一直不變;
我一般採用Sequential + Each iteration的模式,具體要結合實際的業務場景來選擇。
而密碼需要和用戶名對應,所以選取方式使用用戶名同一行的數據。
5、補充
5.1 附件需要存在對應腳本根目錄才可以上傳
六、設置
運行時設置十分重要,一定要記得設置,性能測試的原理是使用若干得虛擬用戶來同時執行一個腳本,而運行的一些方式則由此設置決定。
打開按鈕如下圖,這裡可以設置運行的邏輯,包括迭代次數等,執行順序等,最常用的就是登陸完成後,循環做業務操作,來做性能測試。
日誌設置,執行腳本階段,應該選擇僅在出錯時發送消息,因為並發時候日誌量級太大,根本看不出來,只需要關注錯誤資訊即可。
設置中默認是忽略思考時間的,為了更好的模擬實際情況,應該啟用思考時間,但是腳本多了,而且是錄製的,可能有些思考時間太長,影響到測試的效率, 需要針對實際情況進行限制,比如說下圖就是限制了不超過1s。
另外的設置我關注比較少,後面如有需要我再繼續補充。
七、場景設置及監控指標
腳本設置完畢後,點擊打開場景設置,這裡設置的主要是測試的策略,包括用戶啟動的速度,執行時間,集合策略等等。
這裡主要說明以上幾點:
設置vuser數量和增長頻率
設置執行時間
設置集合策略
切換到運行tab頁,可以選擇監控的相關指標,包括 vuser數量、響應時間、每秒通過事務數、系統吞吐量等。
八、編寫報告
報告這塊,還是給大家一個目錄作為參考,只要把結果描述清楚,是否滿足最開始的指標需求(這個過程中如果不滿足,就需要根據實際情況進行調優了,測試人員可以給開發人員建議,此塊可以參考另外一篇部落格(基於web網站項目的性能測試結果分析)