當然,也有一些機構的應用程序不能在單獨一臺或少數幾臺服務器上運行。所要執行的任務極為龐大復雜,沒有單獨的服務器能滿足這一需求。但是,有這類需求的機構已顯著地減少。
通過本文你會了解到:系統性能與可擴張性測試重要性的下滑與其帶來的有限回報,為何會降低你安排這些活動的優先級。
個人性能記錄
我還清楚地記得我編寫的一個性能測試應用程序。這是一個旨在同時閱讀八臺電話交換機的輸入信號的程序。每部交換機以9 600波特的速率與應用程序進行數據通信。
應用程序必須驗證記錄格式,將有效記錄與無效記錄分別寫入兩個文件。它的另一任務是在網絡發生故障時,將記錄上述文件的網絡共享文件轉移到本地驅動器上,并在網絡恢復時將文件返回過去。
此系統在一臺安裝DOS操作系統的25兆赫80486SX計算機上運行。如果不發生故障,它可以全速處理所有八臺交換機。在網絡故障期,它的最大負荷也達到五臺。這一能力已超出它能夠全速支持3到4臺交換機的設計目標。那樣,公司處理數據流的能力會在當前基礎上增加數倍。
由于錯誤引起的額外處理負擔會產生連鎖反應,使系統迅速退化。喪失一個特性就會產生額外的處理負擔,這樣又會使其它的特性喪失。
如果系統不能正常運行,收入就會降低,因此有必要測試系統的性能。但是,即使那樣,硬件的性能也會偏離普通公司的性能目標。
為何要做性能測試?
進行性能測試有兩個原因:一是為了保證系統能夠滿足公司當前或短期的計劃需求。也就是說,要確定能夠從當前的系統中獲得最大的性能。
第二個原因是:為了支持更大的負載,要就何時對系統進行改造做出規劃。這包括重新編寫解決方案片斷、重建解決方案或添置更多的硬件。這樣,進行性能測試就有助于了解:要想超越現有的系統性能,我們該做出哪些努力。
何為性能測試?
談論性能測試時,我們并不僅僅是談論性能測試本身。相反,我們談論的是響應速度、處理能力與可擴充性。這三項指標之間關系密切,每一項都不能孤立起來進行評估。
響應速度很容易量化。任何人用一塊秒表就可以迅速地測量出某一程序的響應速度。當然,甚至簡單的自動化測試方法還更為精確。不過,事實上,某一程序的響應速度是性能測試的最基本的組成部分,即使在處理能力最低的情況下,也可以進行直接觀測。發出請求到產生響應,這一過程所耗費的時間即為系統的響應速度。
處理能力是指系統在同一時間內所能處理的業務量大小。不同的業務類型對處理能力有特別的限制。某一系統每秒可能只能完成20宗業務。不管你給系統多少業務,在指定的時間內,它只能完成其最大處理能力內的業務量。
響應速度測量完成一宗業務所需的時間(秒)。例如,假定測量的響應速度為每宗業務3秒。處理能力則正好相反,它測量每秒處理的業務量。結合起來說,如果系統每秒最多可完成20宗業務,而每宗業務的響應速度為3秒,那么在任何時間,系統都同時在處理60宗業務。
響應速度與處理能力關系密切的一個原因是:系統處理的業務數量增加,則系統的響應速度就會降低。過去只花不到一秒就可完成的業務現在要花兩到三秒,甚至更長時間。更讓人沮喪的是,一般如果系統所接受的業務量超過某一速率,總體的處理能力就會下降。如果系統每秒能夠處理20宗業務,而業務以每秒25宗的速率進入系統,則系統的總體業務處理能力可能會下降到17宗每秒。正因為這樣,當我所編寫的交換機閱讀程序開始失去更多的特性時,也發生了這種情況。由額外業務引發的額外處理負擔開始引發超時、重發及其它降低總體處理能力的后果。
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/