十步完成Web應用程序壓力測試

Web 應用程序是決定網站性能的關鍵,對其進行測試是網站測試的核心。壓力測試的目的是測試系統在各種負荷(由併發用戶所產生的綜合處理量)下的性能和穩定性。
爲了保證Web 應用程序的壓力測試能取得理想的測試效果,壓力測試也應該遵循軟件工程中軟件測試的一般規範。整個測試流程應有文檔記錄,壓力測試應得到相應的重視。
需求分析
對不同的系統其壓力測試的強度和側重點也不同。一個用於中小企業內部網和一個要處理 大量用戶的電子商務站點的負荷量和負荷分佈是明顯不同的。前者的最大負荷量和負荷分佈是可預期的,而且對企事業單位內部網來說,暫時關閉系統後重新起動也 是可以接受的。例如一個高校的選課系統只在進行選課的幾天內要求系統能承受大負荷,其它時間其負荷幾乎爲零;而對於後者卻無法預期有多少客戶會同時訪問站 點,對高峯負荷出現的時間也無法預知。因此在壓力測試前必須進行需求分析,它是編寫良好測試案例的基礎。
確定測試目標
在確定壓力測試目標中,我們要定義測試的對象,並對每一個測試對象給出清晰說明,也 要定義測試結束的目標。爲控制測試的有效性以及完成程度,必須定義準則和策略,以判斷何時結束測試階段。準則必須是客觀的,可量化的,而不能是經驗或感 覺。下面是一些壓力測試目標:(1)測定終端用戶事務的響應時間,它可能隨用戶的增加而增加,但要定義一個可接受時間。(2)定義主機最優配置,我們可以 以最低的價格發揮最佳的性能。在壓力測試目標確定過程中,要邀請用戶、設計人員等對其進行評審。
制定壓力測試計劃
測試計劃的內容主要包括:定義測試資源、制定測試進度表、選擇測試工具等。制定測試 計劃的主要目的是使壓力測試有章可循並得到人力、物力方面的保證。需要指出的是在制定測試進度表時應和開發進度相互協調。當開發一個Web應用程序時,根 據功能的不同將系統分成一些單獨的子系統。一個較好的方法是隨着子系統的完成先進行子系統的壓力測試,當然,最後還必須進行整個系統的綜合壓力測試。
分析系統
分析系統有兩個主要任務:第一,搞清系統對各個資源的分佈與使用情況,它將幫我們確定可能系統性能的瓶頸;第二,搞清用戶事務的分佈,確定壓力測試的針對點。我們定義事務是用來表示用戶要求服務器連續完成的操作任務。
因爲大多數系統都是網絡系統,而且網絡常常也是降低響應時間的主要原因,所以我們通 過資源示意圖來分析系統的資源。爲了更詳細地說明資源的性能,我們要求對資源示意圖中的每個資源的屬性進行列表說明。例如,對於路由器,說明它運行的系 統,它的網絡處理能力、響應時間等;對於通信媒介,說明它的性能、容量等;對於主機,說明它的CPU性能、內存大小、I/O外設性能、運行的操作系統、數 據庫系統、應用軟件系統,還有運行應用軟件系統的系統配置文件等。
編寫測試案例
測試人員將根據測試案例進行實際的測試工作,測試案例的編寫應做到客觀全面、重點突出,也就是要求編寫的測試案例應該儘可能模擬真實的負荷,不遺漏重要的測試路徑。
在測試案例中,應註明測試場景、測試項目、測試時要求記錄的性能指標等。對Web應用程序來說,這些性能指標是大同小異的,性能指標主要分成客戶端性能指標和服務器端性能指標兩大類。
設置測試數據
壓力測試腳本採取數據驅動方式。爲了讓所有的進程順利執行,必須對測試數據進行參數 化。同時運行的一組測試數據有時需要彼此是唯一的,有時需要順序的,有時需要隨機的,有時需要數據在一個區間內,有時需要從數據庫的某個表提取數據。參數 化後的數據與原數據類型應保持一致。設置測試數據的靈活性很大,對測試的結果影響也很大,應根據情況,具體問題具體分析。
進行壓力測試
一般不提倡在開發環境中進行壓力測試,如果由於經費原因不能另外構建測試環境,則將 來的運行服務器的配置應該和開發用服務器的配置相同或更好。如果要模擬成百上千的併發用戶,就應該採用多臺客戶機同時進行測試,因爲一臺機器上運行的線程 太多將導致性能下降,從而使客戶機不能及時處理從服務器返回的響應,造成測試誤差。執行壓力測試時,即使是同一條瀏覽路徑也應進行多次測試,多次測試之間 的間隔時間是隨機的,這樣才能獲得比較客觀的測試結果。
分析結果
壓力測試運行結束後,把所有記錄的數據彙總並記錄到文件中。必須對測試的結果進行分析,才能得到結論。可以使用一些圖形來比較、觀察測試結果。
分析對象也是測試運行時記錄的內容,下面是壓力測試的分析對象:(1)測試使用的時 間和被測事務的響應時間(有多少個用戶同時運行);(2)壓力測試參與的進程個數,成功個數,失敗個數;(3)壓力測試參與進程失敗的原因;(4)事務的 響應時間隨用戶增加的變化圖;(5)資源限制。
優化調整設置
若測試失敗,必須分析失敗原因,如果是系統造成的,應返回給設計人員修改。測試結果不滿足預期需求,需要對系統進行優化調整設置,然後再次運行測試、分析,直到可以滿足預期需求,或調整已無法改善結果。
對系統的優化調整設置應與開發和系統管理人員協作進行。性能問題往往是互相聯繫的,而不是互不相干的。系統性能較低,可能是由於優化與設置的問題。通過優化與設置有時可以提高系統的性能。
提交測試報告
當壓力測試結果可以滿足預期需求,或優化和調整已無法改善結果。最後提交測試報告。 在報告中要包括測試提要、測試環境和測試結果,提要應該簡單說明測試方法、策略、範圍、內容;測試環境應包括資源開銷、環境配置等;結果測試必須包括測試 是否通過或拒絕,對測試的結論進行說明,對系統的性能做出評價。測試結果要包括結果數據。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章