為了便于性能測試工作的實施,這里的性能測試綜合了性能、強度、壓力、負載等多方面的測試內容,主要包含的內容有:預期性能指標測試、用戶并發性能測試、疲勞強度測試、大數據量測試和速度測試、網絡、服務器等方面的內容。
性能測試不同的系統有不同的要求,編寫方法要根據實際要求進行編寫,本文提出一個常見的參考方案,在實際工作中,可以根據需要加入其它例如內存泄露等和性能相關的測試用例。
下面介紹各個部分性能測試用例包含的內容:
2.1預期性能指標測試用例
通常系統在設計前都會提出一些性能指標,這些指標是性能測試要完成的首要工作之一。針對每個指標都要編寫多個測試用例來驗證是否達到要求,并根據測試結果來改進系統的性能。
這類通常以單用戶為主,如果遇到并發用戶的情況,可以歸到并發用戶測試用例中。這類用例通常都是可以通過手工來執行的用例,例如示例中的上傳一份文件,期望的性能為2M/S,完全可以手動上傳文件,同時用秒表計時。這些內容通常在需求說明書中可以顯而易見的查到。不過當看到如支持并發用戶300人,就應該放到后面進行。測試結果也是直接記錄是否達到要求,如果系統沒有達到要求則進行改善。
2.2用戶并發性能測試用例
用戶并發測試是性能測試的最主要部分,包含了負載測試和壓力測試的過程。主要是逐漸增加用戶數量來加重系統負擔,直到出現不能接收的性能點或者瓶頸。一般要測試正常數量的用戶并發和極限數量下用戶并發的情況。
并發用戶測試主要是對系統的核心功能和重要業務進行測試,要以真實的業務數據作為輸入,選擇有代表性和關鍵的業務操作來設計測試用例。主要編寫以下兩個方面的用例:
核心模塊的測試(可以理解為“單元性能測試”):對核心功能模塊進行并發用戶測試,測試系統是否能夠穩定運行。例如對于互聯網的公用郵件系統,每天早上9點左右可能是收發郵件的高峰,這時候上千的用戶都要在上班后進入郵件系統,系統這個時候需要接收和發送大量的郵件。所以郵件系統這一功能模塊要進行并發測試。通過測試可以知道數據庫服務器、操作系統、網絡設備等是否能夠承受住考驗,同時可以對瓶頸進行分析。
表2列出來一些常見的參數(表格中的數據為示例的測試用例和測試結果),可以根據實際需要進行增加和刪除,其中磁盤I/O、數據庫相關測試參數要根據實際情況進行選擇,因此沒有列出。
在編寫這類用例時,要進行綜合分析,選出系統中的各個核心模塊,分別設計每個模塊的測試用例:把模塊劃分成小的“事務”進行測試,這樣在測試分析中便于定位問題究竟出現在哪里。例如郵件系統可以劃分成:接收郵件、發送郵件、打開郵件等小的事務進行測試用例的編寫,每個操作做為一個用例來執行。
業務組合性能測試(可以理解為“集成性能測試”):所有的用戶不會只使用核心模塊,通常每個功能都可能被使用到,所有既要模擬多用戶的“相同”操作,又要模擬多用戶的不同操作,對多個業務進行組合性能測試。
業務組合測試是更接近用戶實際操作系統的測試,因此用例編寫要充分考慮實際情況,選擇最接近實際的場景進行設計。這里的業務組成單位以不同模塊中的“子操作事務”為單位,進行各個模塊的不同業務的組合。例如在辦公自動化系統中就可以選擇“公文模塊中的發送公文、電子公告模塊中的查看公告信息、網上論壇模塊中的上傳文件”等事務作為一組組合業務進行測試,用例設計信息如下:
功能:在線用戶達到高峰時,用戶可以正常使用系統,保證500個以內用戶可以同時在線使用系統。
目的:測試系統500個以內的用戶同時在線能否使用比較常見的模塊:公文系統、電子公告、網上論壇。
方法:采用LoadRunner的錄制工具錄制三個業務:
業務1––在公文系統內,進行打開、修改等操作;
業務2––在電子公告系統內,查看、發布公告;
業務3––在網上論壇系統內發布帖子,查看文章。每個業務分配一定數目的用戶,利用LoadRunner來完成相關參數的測試。
其它部分設計可以參考表2。執行時要分別記錄各個事務的執行情況。
多用戶并發性能測試是性能測試的核心內容,包含了全部與多用戶相關的測試。因此設計時要全面考慮,不要有遺漏。在測試執行時,本部分通常是采用性能測試工具例如LoadRunner來進行測試的,因此更容易執行和提高效率。
2.3疲勞強度與大數據量測試
疲勞強度測試是在系統穩定運行下模擬最大用戶數量、并長時間運行系統,通過綜合分析執行指標和資源監控來確定系統處理最大業務量時的性能。
疲勞強度測試的目的就是檢驗系統長時間運行后的性能,因此設計用例時,需要編寫不同參數或者負載條件下的多個測試用例,對服務器、軟件、網絡進行不同條件下的綜合測試分析,測試時要記錄系統發生故障的信息作為測試結果。疲勞強度測試也是采用測試工具進行的。
大數據量測試分為兩種:一個是針對某些系統存儲、傳輸、統計查詢等業務進行大數據量的測試;另一個是與前面并發測試相結合的綜合數據測試。編寫用例時主要編寫前一部分,后一部分盡量放在并發測試中。
大數據量測試一般是針對那些對數據庫有特殊要求的系統進行測試,例如電信業務系統的手機短信息表,由于有的用戶關機或者不在服務區,每秒鐘需要有大量的短信息保存,同時在用戶聯機后還要及時發送,因此對數據庫性能有極高的要求,需要專門測試。
本部分用例設計表格可以參考用戶并發性能測試部分。
2.4網絡性能測試
網絡性能測試主要是為了準確展示帶寬、延遲、負載和端口的變化是如何影響用戶的響應時間的。在實際的軟件項目中,主要是測試用戶數目與網絡帶寬的關系。
編寫用例的格式如表3(表格中的數據為示例數據):