一、準備工作
1、系統基礎功能驗證
性能測試在什么階段適合實施?切入點很重要!一般而言,只有在系統基礎功能測試驗證完成、系統趨于穩定的情況下,才會進行性能測試,否則性能測試是無意義的。
2、測試團隊組建
根據該項目的具體情況,組建一個幾人的性能測試team,其中DBA是必不可少的,然后需要一至幾名系統開發人員(對應前端、后臺等),還有性能測試設計和分析人員、腳本開發和執行人員;在正式開始工作之前,應該對腳本開發和執行人員進行一些培訓,或者應該由具有相關經驗的人員擔任。
3、工具的選擇
綜合系統設計、工具成本、測試團隊的技能來考慮,選擇合適的測試工具,最起碼應該滿足一下幾點:
①支持對web(這里以web系統為例)系統的性能測試,支持http和https協議;
②工具運行在Windows平臺上;
③支持對webserver、前端、數據庫的性能計數器進行監控;
4、預先的業務場景分析
為了對系統性能建立直觀上的認識和分析,應對系統較重要和常用的業務場景模塊進行分析,針對性的進行分析,以對接下來的測試計劃設計進行準備。
二、測試計劃
測試計劃階段最重要的是分析用戶場景,確定系統性能目標。
1、性能測試領域分析
根據對項目背景,業務的了解,確定本次性能測試要解決的問題點;是測試系統能否滿足實際運行時的需要,還是目前的系統在哪些方面制約系統性能的表現,或者,哪些系統因素導致系統無法跟上業務發展?確定測試領域,然后具體問題具體分析。
2、用戶場景剖析和業務建模
根據對系統業務、用戶活躍時間、訪問頻率、場景交互等各方面的分析,整理一個業務場景表,當然其中最好對用戶操作場景、步驟進行詳細的描述,為測試腳本開發提供依據。
3、確定性能目標
前面已經確定了本次性能測試的應用領域,接下來就是針對具體的領域關注點,確定性能目標(指標);其中需要和其他業務部門進行溝通協商,以及結合當前系統的響應時間等數據,確定最終我們需要達到的響應時間和系統資源使用率等目標;比如:
①登錄請求到登錄成功的頁面響應時間不能超過2秒;
②報表審核提交的頁面響應時間不能超過5秒;
③文件的上傳、下載頁面響應時間不超過8秒;
④服務器的CPU平均使用率小于70%,內存使用率小于75%;
⑤各個業務系統的響應時間和服務器資源使用情況在不同測試環境下,各指標隨負載變化的情況等;
4、制定測試計劃的實施時間
預設本次性能測試各子模塊的起止時間,產出,參與人員等等。
三、測試腳本設計與開發
性能測試中,測試腳本設計與開發占據了很大的時間比重。
1、測試環境設計
本次性能測試的目標是需要驗證系統在實際運行環境中的性能外,還需要考慮到不同的硬件配置是否會是制約系統性能的重要因素!因此在測試環境中,需要部署多個不同的測試環境,在不同的硬件配置上檢查應用系統的性能,并對不同配置下系統的測試結果進行分析,得出最優結果(最適合當前系統的配置)。
這里所說的配置大概是如下幾類:
①數據庫服務器
②應用服務器
③負載模擬器
④軟件運行環境
平臺測試環境測試數據,可以根據系統的運行預期來確定,比如需要測試的業務場景,數據多久執行一次備份轉移,該業務場景涉及哪些表,每次操作數據怎樣寫入,寫入幾條,需要多少的測試數據來使得測試環境的數據保持一致性等等。
可以在首次測試數據生成時,將其導出到本地保存,在每次測試開始前導入數據,保持一致性。
2、測試場景設計
通過和業務部門溝通以及以往用戶操作習慣,確定用戶操作習慣模式,以及不同的場景用戶數量,操作次數,確定測試指標,以及性能監控等。
3、測試用例設計
確認測試場景后,在系統已有的操作描述上,進一步完善為可映射為腳本的測試用例描述,用例大概內容如下:
用例編號:查詢表單_xxx_x1(命名以業務操作場景為主,簡潔易懂即可)
用例條件:用戶已登錄、具有對應權限等。。。
操作步驟:
①進入對應頁面。。。。。。
②查詢相關數據。。。。。。
③勾選導出數據。。。。。。
④修改上傳數據。。。。。。
PS:這里的操作步驟只是個例子,具體以系統業務場景描述;
4、腳本和輔助工具的開發及使用
按照用例描述,可利用工具進行錄制,然后在錄制的腳本中進行修改;比如參數化、關聯、檢查點等等,最后的結果使得測試腳本可用,能達到測試要求即可;
PS:個人而言,建議盡量自己寫腳本來實現業務操作場景,這樣對個人技能提升較大;一句話:能寫就絕不錄制!!!
四、測試執行與管理
在這個階段,只需要按照之前已經設計好的業務場景、環境和測試用例腳本,部署環境,執行測試并記錄結果即可。
1、建立測試環境
按照之前已經設計好的測試環境,部署對應的環境,由運維或開發人員進行部署,檢查,并仔細調整,同時保持測試環境的干凈和穩定,不受外來因素影響。
2、執行測試腳本
這一點比較簡單,在已部署好的測試環境中,按照業務場景和編號,按順序執行我們已經設計好的測試腳本。
3、測試結果記錄
根據測試采用的工具不同,結果的記錄也有不同的形式;現在大多的性能測試工具都提供比較完整的界面圖形化的測試結果,當然,對于服務器的資源使用等情況,可以利用一些計數器或第三方監控工具來對其進行記錄,執行完測試后,對結果進行整理分析。
五、測試分析
1、測試環境的系統性能分析
根據我們之前記錄得到的測試結果(圖表、曲線等),經過計算,與預定的性能指標進行對比,確定是否達到了我們需要的結果;如未達到,查看具體的瓶頸點,然后根據瓶頸點的具體數據,進行具體情況具體分析(影響性能的因素很多,這一點,可以根據經驗和數據表現來判斷分析)。
2、硬件設備對系統性能表現的影響分析
由于之前設計了幾個不同的測試環境,故可以根據不同測試環境的硬件資源使用狀況圖進行分析,確定瓶頸是再數據庫服務器、應用服務器抑或其他方面,然后針對性的進行優化等操作。
3、其他影響因素分析
影響系統性能的因素很多,可以從用戶能感受到的場景分析,哪里比較慢,哪里速度尚可,這里可以根據2\5\8原則對其進行分析;
至于其他諸如網絡帶寬、操作動作、存儲池、線程實現、服務器處理機制等一系列的影響因素,具體問題具體分析,這里就不一一表述了。
4、測試中發現的問題
在性能測試執行過程中,可能會發現某些功能上的不足或存在的缺陷,以及需要優化的地方,這也是執行多次測試的優點。