性能測試步驟

發表于:2015-09-06來源:uml.org.cn作者:不詳點擊數: 標簽:性能測試
性能測試步驟(一)——熟悉應用 這是整個性能過程最關鍵的步驟之一,毋庸質疑。

  性能測試步驟(一)——熟悉應用

  這是整個性能過程最關鍵的步驟之一,毋庸質疑。

  我們必須了解:應用的架構

  以我熟悉的應用類型為例。了解了應用架構,我們才能知道,我們需要模擬的是:一般的html靜態文件請求、一般的servlet和jsp請求、AJAX請求、還是遠程調用請求等。

  我們必須了解:應用的功能邏輯

  性能測試步驟(二)——測試需求

  我們得到的測試需求往往是這么描述的:這個系統能否支撐100萬的uv(每天登錄系統的人次)。

  言下之意是:按照目前的硬件性能和數量,系統能否支撐100萬的uv。

  然而,我們了解的是吞吐量、響應時間等指標

  吞吐量:系統每秒能處理的請求數,這個指標從服務器的視角,表征系統容量

  響應時間:從請求發出到第一個字節返回所需要的時間,這個指標從用戶的視角,表征系統響應速度。

  那么,請問開發同事:能把測試需求轉化成我們熟悉的吞吐量和響應時間嗎?

  ......

  答案常常是否定的

  怎么辦:只能由我們根據經驗,把100萬uv轉化成一系列的指標。

  響應時間:根據國外的一些資料,一般操作的響應時間不能高于3~5秒;重要操作,如結賬操作的響應時間不能高于15秒。

  吞吐量:可以根據已經上線的類似產品進行估計?;蛘?,采用80/20原則進行估計。我們經常使用的是80/20原則。

  雖然已經有了響應時間和吞吐量指標,但是測試需求還是不明確的。

  我們的測試目的是什么?

  是驗證當前硬件和軟件配置能否支撐100萬uv?是測試當前的硬件和軟件配置最多能支撐多少uv?是幫助開發尋找性能瓶頸?

  答案往往是:都要!

  根據我們的經驗,開發的需求往往是這樣的(當然開發一般不會說得那么詳細,^_^):

  首先,請你們驗證能否支撐100萬uv。如果不能支撐,請找一下性能瓶頸。主要性能瓶頸解決后,請估計能支撐多少uv,如果不到100w,請估計要加多少機器。如果能支撐100萬,請再加壓,看看達到300萬uv的時候,系統的性能。這么一細化,需求基本明確了。

  性能測試步驟(三)——測試準備

  測試準備包括測試客戶端機器準備、測試數據準備、測試腳本準備。

  客戶端機器:要足夠,否則,如果瓶頸在客戶端,就無法評估服務端。要和服務器保持網絡通暢,否則,如果瓶頸在網絡,也無法評估服務端。包括:網絡帶寬要高于服務器吞吐量、網絡帶寬要穩定。

  測試數據

  如果被測功能涉及數據庫和高速緩存,通常需要預設很大的數據量才能凸顯性能瓶頸,這通常是挺困難的一個環節。

  如果是已經上線的應用,數據可以從線上拷貝得到;如果還沒有上線,那需要構造類似于線上的數據量。

  比如,要測試群聊性能,我們首先需要注冊大量用戶;然后把測試用戶都加入到聊天群中。

  測試數據準備的腳本,有時候比測試腳本本身還要多。

  對于實在沒有辦法構造大數據量的情況,如果要測試高速緩存,我們有時候會按數據量的比例減少高速緩存,以使測試結果盡量準確。

  測試腳本

  Grinder腳本用jython實現

  測試腳本的實現往往會花費比較長的時間

  因為涉及到應用實現的細節,需要和開發不斷交流才能完成。這也是需要了解應用架構的原因之一。

  關于sleep time

  基于真實模擬的考慮,sleep time還是盡量按照真實時間,并給一定的偏差。

  不過對于測試客戶端來說,sleep time往往會引起很多客戶端測試線程的調度,浪費客戶端系統資源。

  Sleep time越小,客戶端能模擬的吞吐量就越大,所以,實際測試中,我們往往會把sleep time設置為0 。

  性能測試步驟(四)——測試執行

  測試的執行中,需要監控測試客戶端和服務器性能,監控服務器端應用情況:

  客戶端的系統資源(cpu、io、memory)情況

  服務端的系統資源(cpu、io、memory)情況

  服務器的jvm運行情況

  服務端的應用情況,看是否有異常

  響應時間、吞吐量等指標

  系統資源監控,linux下可以采用的工具有:vmstat、top、meminfo等。

原文轉自:http://www.uml.org.cn/Test/20114111.asp

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97