如何進行Web服務的效能測試
根據客戶端的產品行為設計web服務的測試執行場景及測試執行的過程,即測試執行期間發生的事兒。通過監控程式收集web服務的效能資料和web服務所在系統的效能資料。 在測試執行過程中,還要不斷的關注以下內容: a. web服務的連線速度如何? b. 每秒的點選數如何? c. Web服務能允許多少個使用者同時線上? d. 如果超過了這個數量,會出現什麼現象? e. Web服務能否處理大量使用者對同一個頁面的請求? f. 如果web服務崩潰,是否會自動恢復? g. 系統能否同一時間響應大量使用者的請求? h. 打壓機的系統負載狀態。 5. 測試分析階段 將收集到的資料製成圖表,檢視各指標的效能變化曲線,結合之前確定的上線指標,對各項資料進行分析,已確定是否繼續對web服務進行測試,結果是否達到了期望值。 6. 測試驗證階段 在開發針對發現的效能問題進行修復後,要再執行效能測試的用例對問題進行驗證。這裡需要關注的是開發在解決問題的同時可能無意中修改了某些功能,所以在驗證效能的同時,也要關注原有功能是否受到了影響 效能測試
真正開始執行之前除了編寫詳細的效能測試計劃【所需的資源(軟體+硬體+人力)】、設計測試指令碼、準備測試資料、搭建測試環境外,還需要注意一下細節:
如何保證效能測試的順利開展和執行?
-
首先考慮你效能測試的目標是什麼,需要哪些人員協助你才能完成,然後協調相關人員(DBA、網管、開發人員等),保證在真正開展過程中能有效得到他們的協助和支援(效能測試不是一個人就能完成的,除非你“全才”啦);
-
你計劃中需要申請的資源,比如執行contoller的機器,是否符合你的預期要求,Cpu是否有足夠的處理能力,安裝的作業系統是否符合你的要求(loadrunner9.5除load Generator外都不能安裝在64位機作業系統下,若沒看清楚安裝檔案(安裝程式下help\install.pdf)中system requirements for installing說明的話,你安裝完成會發現自己白忙活了,還得重灌OS,然後重來一次);
-
你要測試的程式是否功能都沒問題了,若程式還有變更,請千萬不要在錄製部分後又變更了,你需要的版本是一個功能穩定的版本,能順利錄製指令碼的的版本);
-
在測試執行前你是否召集開發和相關人員對程式中明顯需要優化的地方(你功能測試執行時系統有些功能就無法忍受的慢)進行了優化,這樣可以大大縮短你的效能測試周期;
-
在選擇工具前,一定要慎重,你的程式設計語言和架構及其所運用的技術,此工具是否都支援,不然後續你需要自行開發的指令碼就太多了,可能面臨重新選擇測試工具的嚴重問題);
-
分險分析:技術風險、風險分析、分險應對措施和風險監控方法。
設計測試指令碼?
- 識別可能的系統性能問題,多與相關人員分析討論。
- 你所測系統的重點業務是什麼?都有哪些角色參與?業務邏輯是什麼樣的?使用者頻繁使用的功能是否都考慮周全了?
- 引數化資料的來源?都需要哪些檢查點?指令碼的精簡程度?
準備測試資料?
- 基礎資料:要更符合實際需求,人員、角色、初始化資料等;
- 業務資料;要更符合實際業務,資料最好不要相同的資料,無效的資料,要類別豐富、覆蓋所有業務邏輯的基礎資料;可以通過自動化工具直接生成;資料庫指令碼生成(單一資料,關聯幾個表的資料最好不用指令碼生成);用ld生成。
搭建測試環境?
- 網路(頻寬、可使用的有效ip地址個數);
- 伺服器的配置;
- 當前測試環境的侷限性(無法模擬的測試環境都有哪些)。
需求分析和需求轉化
客戶的效能需求不可測試、沒有需求、需求模糊,要通過與客戶、開發人員的溝通獲得可測試、可衡量和可量化的效能需求
1.8/2原則
2.經驗值
3.平均併發使用者數C=nL/T(n:使用者數量[login session的數量],L:使用者平均使用時長[login session的時長],T:考察的時間段)
4.併發使用者峰值:C1=C+3√C