性能測試——1、為什麼進行性能測試


性能測試——1、為什麼進行性能測試

以最終用戶的眼光看待性能。性能驅動(Performance Driven)級別是所有企業應該追尋的目標。


為什麼進行性能測試

應用程序糟糕的性能表現,通常不能讓企業達到預期的利益。


以最終用戶的眼光看待性能

關注“應用程序”的性能,此處的“應用程序”指的是應用程序的所有部分(硬件、操作系統、系統架構、中間件、應用程序、網絡等),而非指某一部分。


性能度量

性能度量的兩種類型:服務型、效率型。


服務型指標:可用性和響應時間,衡量的是應用程序為用戶服務效果的好壞。

  • 可用性(Availability):應用程序對於最終用戶的可用時間。可用性不好,意味著最終用戶無法有效地使用該應用系統,是很嚴重的問題。
  • 響應時間(Response Time):一般指系統響應時間(平均響應時間、90%的平均響應時間、方差等),即從用戶端發起請求到接收到應用程序給出完整響應所經過的時間。


效率型指標:吞吐量和利用率,衡量的是應用程序在應用架構基礎上對發揮效率的高低。

  • 吞吐量(Throughput):應用程序在單位時間內能處理的請求數量。例如,在一段特定的時間內對某個接口請求的次數。
  • 利用率(Utilization):佔用系統資源的百分比。例如,當100個用戶同時在線時,消耗了多少網絡帶寬,以及在服務器上內存、CPU、磁盤等使用情況。


性能標準

關於性能好壞的行業標準,沒有這樣的指導標準存在。不過,業內倒有一個約定俗成的標準,即響應時間的臨界點為2秒,尤其對於 B/S 應用。


糟糕性能原因分析

性能問題通常會比較晚才發現,而且越晚發現,解決成本就越高。


性能測試成熟度級別

  • 救火(Firefighting):應用程序發佈前很少或從來沒有進行過性能測試的情況。所有性能缺陷(100%)都在生產環境上發現並解決。
  • 性能驗證(Performance Validation)
    :公司為性能測試單獨安排了一段時間,而不是在產品的後期才開始進行性能測試。因此,在研發過程中,仍然有相當多的性能缺陷被發現( 30% )。這是當前絕大多數公司的做法。
  • 性能驅動(Performance Driven):在應用程序生命週期中的每一階段都考慮了性能。因此,當系統上線後,出現的性能缺陷就不會太多( 5% )。性能驅動(Performance Driven)級別是所有企業應該追尋的目標。


糟糕性能的原因

  • 系統設計階段缺少性能方面的考慮(考慮整體系統集成後的性能);
  • 直到最後一刻才進行性能測試(性能測試越早越好);
  • 對系統的容量或規模沒有足夠的考慮(最終用戶的規模和分佈);
  • 對性能峰值預期偏低(12306);
  • 性能測試還不規範,沒有有效的方案參考或實施;
  • 沒有使用性能測試自動化工具。

根本原因:在應用程序的整個生命週期中,性能測試未能得到應有的重視。


性能測試的用戶概念

  • 系統用戶數:指所有可能訪問這套系統的用戶數,也叫系統的全部用戶數。
  • 在線用戶數:指同時訪問這套系統的用戶數量。
  • 併發用戶數:在一個時間切面上同時向這套系統發起請求的用戶數。


參考文檔

《應用程序性能測試的藝術》


分享到:


相關文章: