假若在調試過應用程序及數據庫后,系統還是沒有達到性能的預期目標,在這種情況下,還是有一些其它的調試的流程*可以針對前面講過的那幾個層次來使用的。下面就是一些在應用程序代碼*之外仍可以提高WEB應用系統性能的例子:
*使用Web緩存裝制,如Squid提供的裝置
*將高訪問量的網頁靜態化,以避免這些高訪問量對數據庫進行大量的調用
*通過負載平衡的方法來水平縮放WEB服務器的結構*
*在水平縮放數據庫群及將它們分為讀寫服務器和只讀服務器后,還要對只讀服務器群負載平衡。*
*通過增加更多的硬件資源(CPU,內存,磁盤等)縱向的縮放WEB及數據庫服務器群
*增加網絡的帶寬
由于現在的WEB應用系統都是十分復雜的系統,性能調試有時要具有一些藝術性才行。在每次修改一個變量及重新測度的時候一定要非常小心,否則的話,在變化中將會有很多難于確定和重復的不確定因素*。
在一個規范的測試環境比如說一個測試實驗試,它是不會常常的重現實際應用時的服務器配置環境。在這樣的情況下,分段測試環境,也就是生產實際環境的一個子集就可以派上用場了。但同時系統的期望性能也需要相應的調低一點。
“運行負載試驗*->測度性能->調試系統”這個循環一直要被重復執行到被測試系統達到了期望的性能標準了才可以停。在這個時候,測試人員就可以明了在正常條件下的系統運轉怎么樣,同時這些就可以做為以后在回歸測試中,評價新版本的軟件性能的一個標準了。
性能測試還有另一個目標就是建立一組被測系統的基準數據。在很多行業中都會有這種行業標準的基準數據,比如說TPC公布的。還有很多軟硬件廠家都為了在 TCP排名中靠前而對他們的機器進行精心調試。所以說你應當非常謹慎的說明在你進行測試的時候,并沒有在種類繁多的軟硬件產品中進行全部測試*。
負載測試
我們都已經在性能測試調試的過程中,見識過負載測試了。在那種環境中,它意味著通過自動化工具來持續對系統增加負載。但對于WEB應用來講,負載則是并發用戶或者HTTP連接的數量。
術語“負載測試”在測試文獻資料中通常都被定義為給被測系統加上它所能操作的最大任務數的過程。負載測試有時也會被稱為“容量測試”,或者“耐久性測試/持久性測試”*
容量測試的例子:
*通過編輯一個巨大的文件來測試文字處理軟件
*通過發送一個巨大的作業來測試打印機
*通過成千上萬的用戶郵箱來測試郵件服務器
*有一種比較特別的容量測試是叫作“零容量測試”,它是給系統加上空任務來測試的。
耐久性測試/持久性測試的的例子:
*在一個循環中不停的運行客戶端超過一個擴展時間段*。 軟件測試
負載測試的目的:
*找到一些在測試流程中前面的階段所進行的粗略測試中沒有被找出的bugs,例如,內存管理bugs,內存泄露,緩沖器溢出等等。
*保證應用程序達到性能測試中確定的性能基線。這個可以在運行回歸試驗時,通過加載特定的最大限度的負載來實現。
盡管性能測試和負載測試似乎很像,但他們的目的還是有差異的。一方面,性能測試使用負載測試的技術,工具,以及用不同的負載程度來測度和基準化系統。在另一方面來講,負載測試是在一些已經定義好的負載程度上進行測試的,通常對系統加上最大負載之后,系統應該仍然可以提供全部功能。這里需要明確一點,負載測試并不是要對系統加載上過度的負載而使系統不能工作,而是要使系統像一個上滿了油的機器嗡嗡叫*。
文章來源于領測軟件測試網 http://www.kjueaiud.com/