一、確定效能測試的範圍、要求、配置、工具等
- 明確測試的系統:
本文件主要指的是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網站專案的效能測試結果分析)