概念
效能測試是通過自動化的測試工具模擬多種正常、峰值以及異常負載條件來對系統的各項效能指標進行測試。
簡單的來說就是選擇適合自己系統業務邏輯的方式,用最低的成本、最快的時間來做出最有價值的事情。
分類
根據不同的測試目的,在具體的測試執行中又有所側重和區分,詳細可分為:壓力測試、容量測試、極限測試、基準測試
- 壓力測試:評估系統處於或超過預期負載時系統的執行情況。壓力測試的關注點在於系統在峰值負載或超出最大載荷情況下的處理能力。在壓力級別逐漸增加時,系統效能應該按照預期緩慢下降,但是不應該崩潰。壓力測試還可以發現系統崩潰的臨界點,從而發現系統中的薄弱環節。
- 容量測試:確定系統可處理同時線上的最大使用者數,使系統承受超額的資料容量來發現它是否能夠正確處理。
- 極限測試:在過量使用者下的負載測試。
- 基準測試:比較新的或未知測試物件與已知參照標準(如現有軟體或評測標準)的效能。
指標
Web伺服器指標指標:
- Avg Rps: 平均每秒鐘響應次數=總請求時間 / 秒數
- Avg time to last byte per terstion (mstes):平均每秒業務指令碼的迭代次數,有人會把這兩者混淆
- Successful Rounds:成功的請求
- Failed Rounds :失敗的請求
- Successful Hits :成功的點選次數
- Failed Hits :失敗的點選次數
- Hits Per Second :每秒點選次數
- Successful Hits Per Second :每秒成功的點選次數
- Failed Hits Per Second :每秒失敗的點選次數
- Attempted Connections :嘗試連結數
CS結構程式,由於一般軟體後臺通常為資料庫,所以我們更注重資料庫的測試指標:
- User 0 Connections :使用者連線數,也就是資料庫的連線數量
- Number of deadlocks:資料庫死鎖
- Buffer Cache hit :資料庫Cache的命中情況
原則
- 對於不同的系統,效能關注點是有所區別的,應該具體問題具體分析。
- 情況許可時,應使用幾種測試工具或手段分別獨立進行測試,並將結果相互印證,避免單一工具或測試手段自身缺陷影響結果的準確性。
- 瞭解“有限的資源,無限的需求”。
- 儘可能在開始前明確調優工作的終止標準。
- 調優過程中應仔細進行記錄,保留每一步的操作內容及結果,以便比較分析。
工具
- Web Bench:是一個簡單的web或者web代理服務的基準測試工具。(它)使用fork()模擬多個客戶端並且可以發起HTTP/0/9-HTTP/1.1的請求
- Apache JMeter:是一個專門為執行和伺服器裝載測試而設計的、100%的純Java桌面執行程式。原先它是為Web/HTTP測試而設計的,但是它已經擴充套件以支援各種各樣的測試模組。它和用於HTTP和SQL資料庫(使用JDBC)的模組一起運送。它可以用來測試靜止資料庫或者活動資料庫中的伺服器的執行情況,可以用來模擬對伺服器或者網路系統加以重負荷以測試它的抵抗力,或者用來分析不同負荷型別下的所有執行情況。它也提供了一個可替換的介面用來定製資料顯示,測試同步及測試的建立和執行。
- Web Polygraph:是一個用於測試WEB效能的工具,這個工具是很多公司的標準測試工具,包括微軟在分析其軟體效能的時候,也是使用這個工具做為基準工具的。
- LoadRunner: 是一種預測系統行為和效能的工業標準級負載測試工具。通過以模擬上千萬使用者實施併發負載及實時效能監測的方式來確認和查詢問題,LoadRunner 能夠對整個企業架構進行測試。通過使用LoadRunner , 企業能最大限度地縮短測試時間, 優化效能和加速應用系統的釋出週期。企業的網路應用環境都必須支援大量使用者,網路體系架構中含各類應用環境且由不同供應商提供軟體和硬體產品。難以預知的使用者負載和愈來愈複雜的應用環境使公司時時擔心會發生使用者響應速度過慢, 系統崩潰等問題。這些都不可避免地導致公司收益的損失。Mercury Interactive 的 LoadRunner 能讓企業保護自己的收入來源, 無需購置額外硬體而最大限度地利用現有的IT 資源, 並確保終端使用者在應用系統的各個環節中對其測試應用的質量, 可靠性和可擴充套件性都有良好的評價。LoadRunner 是一種適用於各種體系架構的自動負載測試工具, 它能預測系統行為並優化系統效能。LoadRunner 的測試物件是整個企業的系統, 它通過模擬實際使用者的操作行為和實行實時效能監測, 來幫助您更快的查詢和發現問題。此外,LoadRunner 能支援廣範的協議和技術, 為您的特殊環境提供特殊的解決方案。
步驟
由於工程和專案的不同,所選用的度量,評估方法也有不同之處。不過對於效能測試有一些通用的步驟。
- 分析系統
- 建立測試模型,通常是從生產環境中的資料中統計。
- 測試方案
- 制定評估標準
- 選則相關技術和工具
- 設計效能測試場景,也就是測試用例
- 輸出報告
- 執行測試,分析調優