qileilove

          blog已經(jīng)轉(zhuǎn)移至github,大家請訪問 http://qaseven.github.io/

          WAS性能測試工具的使用

            WAS 的負(fù)載使用說明(一)

            一、準(zhǔn)備工作

            為了測試數(shù)據(jù)的準(zhǔn)備性,首先需要刪除緩存和Cookies等臨時文件。啟動IE后打開“工具”菜單下的“Internet”選項命令,在打開的“Internet選項”窗口的“常規(guī)”選項卡中,單擊“Internet臨時文件”區(qū)域的“刪除Cookies”和“刪除文件”按鈕將臨時文件刪除。

            WAS說明:WAS可以通過記錄瀏覽器活動、導(dǎo)入服務(wù)器日志文件或評估WEB文件夾的內(nèi)容來幫助創(chuàng)建測試腳本:

            幾種方式的比較:1、記錄瀏覽器活動的方式以精確的方式捕捉所有用戶的交互活動,任何從瀏覽器發(fā)往服務(wù)器的URL指向,應(yīng)用程序參數(shù)HTTP頭部信息都會被自動地記錄在新的測試腳本里。

            2、導(dǎo)入服務(wù)器日志文件的方法在站點已經(jīng)進(jìn)入投入使用階段,有了真實的用戶流量的情況下使用最好,但是,一個新的站點未必有這么多真實用戶使用數(shù)據(jù),進(jìn)一步說,可能還需要合并大量的日志文件來達(dá)到較好的體現(xiàn)用戶活動的目的,這將需要創(chuàng)建大量的測試腳本,蔣需要客戶端更多的系統(tǒng)資源。

            3、選取WEB內(nèi)容文件夾的方法最好用在測試多數(shù)是靜態(tài)HTML文件的站點,這種方法允許在已有服務(wù)器的WEB頁面的基礎(chǔ)上快速創(chuàng)建測試腳本,然而這種方法并不捕捉任何由大多數(shù)應(yīng)用程序文件產(chǎn)生的參數(shù))

            二、錄制測試腳本

            安裝并啟動WAS,程序運行時會打開“Cteate new script”對話框,即建立一個新的腳本窗口(如圖1),如果運行WAS沒有打開該窗口可以單擊WAS主程序窗口工具欄上第一個按鈕“New Script”即可。

            因為是初次使用,所以在新建腳本窗口上單擊“Record”按鈕打開創(chuàng)建向?qū)υ捒?#8220;Browser Recorder-Step 1 of 2”,其中三個選項的作用是選擇要記錄的內(nèi)容,分別為Request(請求)、Cookies(網(wǎng)上信息塊)以及Host headers(主機標(biāo)題),可根據(jù)需要選擇(圖2),然后單擊“Next”即會打開“Browser Recorder-Step 2 of 2”窗口,單擊“Finish”按鈕。這樣WAS會自動啟用,并且會打開一個瀏覽器窗口,此時我們就可以在瀏覽器的地址欄中輸入要測試的網(wǎng)站網(wǎng)址。隨著要測試的網(wǎng)站內(nèi)容的不斷顯示,在WAS主界面的“Recording”選項卡中的信息會實時更新(如圖3)。

            當(dāng)瀏覽器的狀態(tài)欄顯示為“完成”時,我們就可以返回WAS窗口,單擊“Stop Recording”按鈕返回腳本窗口。

            三、測試設(shè)置

            為了使測試更加準(zhǔn)確,更加接按真實效果,需要對錄制的測試腳本進(jìn)行一些設(shè)置。

            去除靜態(tài)干擾

            由于網(wǎng)頁是由圖片、文字以及其它動態(tài)源碼組成的,而一般的靜態(tài)內(nèi)容消耗的帶寬并不是很大,因此我們可以將其排除在外。在腳本中選中指向圖像、文字以及其它靜態(tài)文件項目前的灰色按鈕,然后單擊工具欄上的“Delete”按鈕將其刪除(圖4)。

            設(shè)置并發(fā)數(shù)

            然后在單擊“New Recorded Script”下的“Settings”標(biāo)簽,其中“Concurrent Connections”是設(shè)置并發(fā)連接數(shù)的,其下面的“Stress level (threads)”和 “Stress multiplier(sockets perthread)” 分別設(shè)置對目標(biāo)服務(wù)器的壓力及負(fù)載程度的,其中Level是客戶端所產(chǎn)生的線程數(shù)目,一個線程可以產(chǎn)生多個Socket并發(fā)請求,因此將兩者的數(shù)值相乘,所獲得的數(shù)字就是客戶端同時連接的并發(fā)數(shù)(圖5)。

            時間設(shè)置

            時間設(shè)置包括“Test Run Time”(測試運行時間)和“Request Delay”(停止響應(yīng))以及“Suspend”(掛起時間)三項。其中測試運行時間是以日、小時、分鐘和秒來設(shè)定的,建議該項時間不宜太短,如果設(shè)置的并發(fā)數(shù)較多,那么時間應(yīng)該按比較增長,以便產(chǎn)生足夠多的請求;而停止時間是指連接時超出這個時間即作超時處理;在掛起時間處部分為Warmup和Cooldown兩項,一般可以設(shè)置為兩三分鐘為宜,這樣做的目的是避免測試開始和結(jié)束時數(shù)據(jù)的變形,影響測試的準(zhǔn)確性。

            指定帶寬瓶頸

            “Bandwith”是指定帶寬瓶頸的,即選擇訪問該網(wǎng)站大多數(shù)用戶所使用的帶寬。例如訪問該網(wǎng)站的絕大部分用戶是撥號,那么可以選擇56K。

          四、開始測試

            做好基本的設(shè)置工作后,就可以在左側(cè)選中新建的腳本“New Recorded Script”項,然后單擊工具欄上的“Run Script”按鈕,或者打開“Scripts”菜單下的“Run”命令,這樣就開始測試了。測試過程中會以進(jìn)度條的方式實時顯示,待進(jìn)度條結(jié)束我們即可進(jìn)行測試結(jié)果分析了。

            五、數(shù)據(jù)分析

            現(xiàn)在我們就可以打開測試報告來查看測試結(jié)果了。單擊“View”菜單,選擇“Reports”,在打開的窗口左側(cè)會按時間顯示所有測試報告。根據(jù)時間選擇本次測試報告,在窗口右側(cè)即可查看具體內(nèi)容。

            在測試報告中最重要的部分就是“Socket Errors”部分和“Result Codes”部分。其中Socket Errors部分共分為Connect、Send 、Recv和Timeouts。其中Connect表示客戶端不能與服務(wù)器取得連接的次數(shù);Send表示客戶端不能正確發(fā)送數(shù)據(jù)到服務(wù)器的次數(shù);Recv表示客戶端不能正確從服務(wù)器接次的次數(shù);Timeouts表示超時的線程數(shù)目。由此我們可以如果這四個數(shù)值都比較小,甚至為0則說明我們的服務(wù)器是經(jīng)得起考驗的;如果數(shù)值居高不下,甚至接近設(shè)置的并發(fā)數(shù),那么則要好好的檢查你的服務(wù)器了(圖6)。

            另外在“Result Codes”部分,如果Code列表下的數(shù)值都為200,那么表示所有請求都經(jīng)服務(wù)器成功返回,如果數(shù)值出現(xiàn)400或大于400,例如404,那么則需要在左側(cè)找到“Page Data”節(jié)點,查看具體的錯誤項目,然后作出改正了。

            其實要完整的反映出一個網(wǎng)站在服務(wù)器上的運行情況,需要不斷增減其并發(fā)數(shù),并且進(jìn)行多次測試,才能了解服務(wù)器所能承受的限度,然后才可以在IIS中設(shè)置允許連接的最大數(shù)目,從而保證網(wǎng)站正常運行。

            WAS 的負(fù)載使用說明(二)

            測試腳本的準(zhǔn)備

            1、在測試客戶端機器上啟動Web Application Stress Tool,在彈出的“建立新腳本”對話框中選擇“Record”按鈕;

            2、在“Record”參數(shù)設(shè)置第一步中,所有的checkbox都不用選擇,NEXT

            到第二步時直接點擊“finish”,點擊后彈出一個IE窗口以便記錄瀏覽器活動,同時WAS會被置于記錄模式,在新出現(xiàn)的IE窗口的地址欄輸入你的目的站點的地址,在WAS的窗口你將看到HTTP信息在跟隨你的瀏覽活動而實時改變著,當(dāng)完成了你的站點瀏覽后,返回Web Application Stress Tool,停止Record(點擊Stop Recording按鈕),終止記錄并產(chǎn)生一個新的測試腳本(在右邊的窗口將看到一個列出所有腳本的列表)。

            3、將一些沒用的記錄刪去(比如:/Apply/test/index.htm),只留下如下圖所示的五條記錄:

            指定目標(biāo)WEB服務(wù)器:Server默認(rèn)地目標(biāo)服務(wù)器為Localhost,修改為IP地址或目標(biāo)服務(wù)器的域名

            端口號不用輸入。左邊的窗口中改一下腳本名字,比如改為Joinwork Test;

            4、5個測試用例在實際使用環(huán)境中被訪問的概率是不一樣的。我們可以在Page Groups中定義幾個Page Group來模擬這種訪問分布:

            在上圖中我們定義了5個Group,分別對應(yīng):查詢可啟動流程列表、啟動流程、查詢個人待辦工作任務(wù)、顯示任務(wù)執(zhí)行表單和執(zhí)行任務(wù),它們被點擊的次數(shù)比率為:1 : 1 : 5 : 5 : 4。

            回到腳本主頁面,分別將5條記錄的Group改為剛才建立的Page Group。這樣在運行腳本的時候就會按Group定義的比率來產(chǎn)生點擊了;

            5、設(shè)置測試并發(fā)用戶數(shù)和測試運行時間

            到 如下圖的Settings頁面,通過Stress Level (threads)和Stress mulitiplters來設(shè)置并發(fā)用戶數(shù),Test RUn Time來設(shè)置測試時長。因為我們要做性能壓力測試,不要設(shè)置延時時間(Request Delay)。可以在實際測試時間之前,設(shè)置一段warm up運行時間,這段時間的數(shù)據(jù)是不會記錄到最后的報告里的;其他設(shè)置可以保持缺省值不變;

            測試運行

            一切準(zhǔn)備完成后,回到腳本主頁面,然后點擊工具條上的“Run Script”按鈕就開始測試了;

            測試報告查看

            測試運行結(jié)束后,我們就可以通過點擊工具條上的"Reports"按鈕查看測試報告了;

            測試報告里比較重要的數(shù)據(jù)是:每秒處理的請求數(shù)(Requests per Second)和每個頁面的平均響應(yīng)時間。

            上面兩張圖的數(shù)據(jù)是筆者直接使用Joinwork開發(fā)版的缺省配置(JBoss 3.2.2和JBoss自帶的數(shù)據(jù)庫Hsql),一臺主頻1.5M HZ(奔騰移動)、內(nèi)存725M的筆記本作服務(wù)器,一臺主頻2.0M HZ的臺式機作客戶端,測試的數(shù)據(jù)。

            數(shù)據(jù)顯示在100并發(fā)用戶數(shù)下,每秒可處理89.26個請求,其中響應(yīng)時間最長的頁面是任務(wù)執(zhí)行,平均響應(yīng)時間是1.66秒。

            Web Application Stress Tool也可以采集服務(wù)器的CPU利用率等服務(wù)器端數(shù)據(jù),有興趣的話可以查看幫助文件。

            Web Application Stress 是Microsoft免費提供的一款軟件專門對WEB服務(wù)進(jìn)行壓力測試用的工具軟件。我經(jīng)常會需要測試一些服務(wù)器的運行狀態(tài)和響應(yīng)時間什么的,比如在網(wǎng)絡(luò)中新加了一臺防火墻做好設(shè)置以后,它的改動對于網(wǎng)絡(luò)中應(yīng)用層的服務(wù)影響怎么樣,客戶會不會明顯感覺到IE 打開站點的速度明顯減慢等等,尤其是在防火墻工作在透明代理模式下加上了一些對于應(yīng)用服務(wù)的內(nèi)容限制以后,設(shè)置前后速度上的改變都是非常重要參考數(shù)據(jù)的,我需要知道到底速度的影響有多大是否可以忽略不計。

          部分?jǐn)?shù)據(jù)解析

            下面我們用其進(jìn)行一次簡單的壓力測試。

            打開主程序,點擊"Record"按鈕,選擇"Record Delay between request",然后"next",再"finish"。接下來會彈出一個瀏覽器,輸入所要測試的WEB服務(wù)器地址,隨便瀏覽一些頁面,然后將其關(guān)閉,返回到Web Application Stress中,點擊"stop recording"按鈕。點擊"Settings",就可以進(jìn)入設(shè)置界面,填入一些參數(shù)。在此例中,threads我填入了50,run time我填入了2分鐘,其它默認(rèn)。然后選擇"Scripts"菜單項中的"Run",對服務(wù)器進(jìn)行壓力測試,等待2分鐘。

            結(jié)束后,選擇"Window"下的"Reports",可以看到類似于下面的壓力測試結(jié)果(我已經(jīng)將其簡化了)。

          ============================================================
          Number of test clients: 1
          Number of hits: 6121
          Requests per Second: 51.01
          Socket Statistics
          ------------------------------------------------------------
          Socket Connects: 6163
          Total Bytes Sent (in KB): 1750.10
          Bytes Sent Rate (in KB/s): 14.58
          Total Bytes Recv (in KB): 29227.62
          Bytes Recv Rate (in KB/s): 243.55
          Socket Errors
          ------------------------------------------------------------
          Connect: 0
          Send: 0
          Recv: 0
          Timeouts: 0
          RDS Results
          ------------------------------------------------------------
          Successful Queries: 0

            下面對其進(jìn)行簡單解釋。測試時間內(nèi),虛擬的用戶點擊頁面6121次,平均每秒51個請求,Socket連接數(shù)6163,其中沒有連接、發(fā)送、接收、超時錯誤。從這個壓力測試報告來看,服務(wù)器對于50個用戶同時操作,應(yīng)該沒有任何問題。需要特別說明的是,這個只是簡化的部分結(jié)果。

            這只是一個簡單的示例,Web Application Stress的功能遠(yuǎn)不止于此,還需要在實踐中總結(jié)才是。


          posted on 2013-09-18 11:33 順其自然EVO 閱讀(310) 評論(0)  編輯  收藏 所屬分類: 性能測試web 前端性能測試

          <2013年9月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 衡东县| 砚山县| 武胜县| 调兵山市| 凯里市| 招远市| 定襄县| 赤城县| 论坛| 平塘县| 曲阳县| 淮安市| 杂多县| 西吉县| 赣州市| 贵溪市| 囊谦县| 广汉市| 开鲁县| 新巴尔虎右旗| 中西区| 凯里市| 灵宝市| 乌鲁木齐县| 博罗县| 剑川县| 正宁县| 抚顺市| 龙井市| 天门市| 连南| 兴义市| 京山县| 石景山区| 基隆市| 巴中市| 台江县| 伊通| 汾阳市| 应用必备| 友谊县|