記一次完整的效能測試過程
當我們聊起效能測試的時候,有人一定會說我們用的是loadrunner做效能,誠然,我們在進行效能測試工作的過程中,需要藉助工具的輔助來幫我們完成一些工作,但loadrunner並不等於效能測試,或者說,效能測試工具不等於效能測試,工具永遠是一種輔助的工具,而不能認為會用工具就會效能測試了!希望看到這裡的童鞋,能夠改變這種觀念。
下面,就說說一個完整的效能測試過程吧。
一、準備工作
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、測試中發現的問題
在效能測試執行過程中,可能會發現某些功能上的不足或存在的缺陷,以及需要優化的地方,這也是執行多次測試的優點。
以上就是一個較簡單的,完整的效能測試過程,當然其中很有很多值得分析和探討的內容,限於篇幅和時間問題,這裡不一一贅述,也希望看到的童鞋可以提出建議和指正.