測試準備包括測試客戶端機器準備、測試數據準備、測試腳本準備。
客戶端機器:要足夠,否則,如果瓶頸在客戶端,就無法評估服務端。要和服務器保持網絡通暢,否則,如果瓶頸在網絡,也無法評估服務端。包括:網絡帶寬要高于服務器吞吐量、網絡帶寬要穩定。
測試數據
如果被測功能涉及數據庫和高速緩存,通常需要預設很大的數據量才能凸顯性能瓶頸,這通常是挺困難的一個環節。
如果是已經上線的應用,數據可以從線上拷貝得到;如果還沒有上線,那需要構造類似于線上的數據量。
比如,要測試群聊性能,我們首先需要注冊大量用戶;然后把測試用戶都加入到聊天群中。
測試數據準備的腳本,有時候比測試腳本本身還要多。
對于實在沒有辦法構造大數據量的情況,如果要測試高速緩存,我們有時候會按數據量的比例減少高速緩存,以使測試結果盡量準確。
測試腳本
Grinder腳本用jython實現
測試腳本的實現往往會花費比較長的時間
因為涉及到應用實現的細節,需要和開發不斷交流才能完成。這也是需要了解應用架構的原因之一。
關于sleep time
基于真實模擬的考慮,sleep time還是盡量按照真實時間,并給一定的偏差。
不過對于測試客戶端來說,sleep time往往會引起很多客戶端測試線程的調度,浪費客戶端系統資源。
Sleep time越小,客戶端能模擬的吞吐量就越大,所以,實際測試中,我們往往會把sleep time設置為0 。
性能測試步驟(四)——測試執行
測試的執行中,需要監控測試客戶端和服務器性能,監控服務器端應用情況:
客戶端的系統資源(cpu、io、memory)情況
服務端的系統資源(cpu、io、memory)情況
服務器的jvm運行情況
文章來源于領測軟件測試網 http://www.kjueaiud.com/