免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
利用Web Application Stress Tool(WAS)做性能測(cè)試
Duwamish Online
Aaron Ching, Pedro Silva, and Allen Wagner
Microsoft Developer Network
January 2001
摘要:這篇文章討論了性能測(cè)試對(duì)于成功發(fā)布一個(gè)網(wǎng)絡(luò)應(yīng)用的重要性,集中討論了微軟的Web Application Stress (WAS)這個(gè)用于測(cè)試Duwamish Online的性能的工具。
內(nèi)容
介紹
使用WAS的好處
WAS的缺陷
安裝WAS
創(chuàng)建測(cè)試腳本
配置測(cè)試腳本
運(yùn)行測(cè)試腳本
結(jié)論:最好的習(xí)慣
介紹
性能測(cè)試是成功發(fā)布一個(gè)網(wǎng)絡(luò)應(yīng)用的關(guān)鍵因素。當(dāng)越來(lái)越多的用戶訪問你的站點(diǎn)時(shí),清楚地知道你的應(yīng)用程序和你的服務(wù)器群是怎樣工作的就顯得非常重要了。
為了給你的網(wǎng)絡(luò)應(yīng)用程序模擬出那種類型的使用,你可以協(xié)同幾百甚至上千的真實(shí)用戶在一段設(shè)計(jì)好的時(shí)間段里訪問你的站點(diǎn),你也可以只與一個(gè)能復(fù)制這么多用戶負(fù)載的測(cè)試工具一起工作,
許多性能測(cè)試工具可以幫你的忙?;旧?,這些工具都允許你以有限的客戶端模擬大量的虛擬用戶,并發(fā)地訪問預(yù)先確定的頁(yè)面或網(wǎng)站的URLs (Uniform Resource Locators)。每一個(gè)虛擬用戶都能精確地仿效在真實(shí)瀏覽器和網(wǎng)站服務(wù)器之間進(jìn)行通訊協(xié)議。
在這篇文章里,我們將專注于其中一個(gè)這樣的工具:Microsoft® Web Application Stress (WAS)工具。你可以在微軟的Microsoft Windows® 2000 Resource Kit CD (WAS version 288)里面找到這個(gè)工具。
注意      WAS不能再?gòu)腗icrosoft的網(wǎng)站下載了,Visual Studio .NET 的企業(yè)架構(gòu) 和 企業(yè)開發(fā)版本都包含一個(gè)新的網(wǎng)絡(luò)壓力測(cè)試工具,這個(gè)工具叫做Application Center Test,是受Microsoft技術(shù)支持的工具。這個(gè)工具包含在Visual Studio .NET安裝時(shí)的Enterprise Development Tools部分。在寫這篇文章時(shí),Application Center Test還沒有正式公開發(fā)表。關(guān)于如何得到Visual Studio .NET,請(qǐng)?jiān)L問Visual Studio網(wǎng)站。
使用WAS的好處
首先,我們來(lái)討論一下使用WAS測(cè)試你的應(yīng)用程序的好處。
它簡(jiǎn)單
WAS允許你以不同的方式創(chuàng)建測(cè)試腳本:你可以通過(guò)使用瀏覽器走一遍站點(diǎn)來(lái)錄制腳本,可以從服務(wù)器的日志文件導(dǎo)入U(xiǎn)RL,或者從一個(gè)網(wǎng)絡(luò)內(nèi)容文件夾選擇一個(gè)文件。當(dāng)然,你也可以手工地輸入U(xiǎn)RL來(lái)創(chuàng)建一個(gè)新的測(cè)試腳本。
不像其它的工具,你可以使用任何數(shù)量的客戶端運(yùn)行測(cè)試腳本,全部都有一個(gè)中央主客戶端來(lái)控制。在每一個(gè)測(cè)試開始前,主客戶機(jī)透明地執(zhí)行以下任務(wù):
·                     與其他所有的客戶機(jī)通訊
·                     把測(cè)試數(shù)據(jù)分發(fā)給所有的客戶端
·                     在所有客戶端同時(shí)初始化測(cè)試
·                     從所有的客戶端收集測(cè)試結(jié)果和報(bào)告
這個(gè)特性非常重要,尤其對(duì)于要測(cè)試一個(gè)需要使用很多客戶端的服務(wù)器群的最大吞吐量時(shí)非常有用。
它的高可用性
WAS是被設(shè)計(jì)用于模擬Web瀏覽器發(fā)送請(qǐng)求到任何采用了HTTP1.0或1.1標(biāo)準(zhǔn)的服務(wù)器,而不考慮服務(wù)器運(yùn)行的平臺(tái)。
除了它的易用性外,WAS還有很多其它的有用的特性,包括:
·                     對(duì)于需要署名登錄的網(wǎng)站,它允許創(chuàng)建用戶賬號(hào)。
·                     允許為每個(gè)用戶存儲(chǔ)cookies 和Active Server Pages (ASP) 的session信息
·                     支持隨機(jī)的或順序的數(shù)據(jù)集,以用在特定的名字-值對(duì)
·                     支持帶寬調(diào)節(jié)和隨機(jī)延遲(“思考的時(shí)間”)以更真實(shí)地模擬顯示情形。
·                     支持Secure Sockets Layer (SSL)協(xié)議
·                     允許URL分組和對(duì)每組的點(diǎn)擊率的說(shuō)明
·                     提供一個(gè)對(duì)象模型,可以通過(guò)Microsoft Visual Basic® Scripting Edition (VBScript)處理或者通過(guò)定制編程來(lái)達(dá)到開啟,結(jié)束和配置測(cè)試腳本的效果。
WSA的缺陷
除了優(yōu)勢(shì)外,WAS的確有一些缺陷存在。當(dāng)前知道的bug和有關(guān)事項(xiàng)都列在WAS的網(wǎng)站上了。以下是當(dāng)前WAS不支持的特性:
·                     以前面所發(fā)請(qǐng)求返回的結(jié)果為基礎(chǔ),修改URL參數(shù)的能力。
·                     運(yùn)行或模仿客戶端邏輯的能力
·                     為所分配的測(cè)試指定一個(gè)確定數(shù)量的測(cè)試周期的能力。
·                     對(duì)擁有不同IP地址或域名的多個(gè)服務(wù)器的同時(shí)測(cè)試能力
注意   你可以使用多個(gè)主客戶端來(lái)同時(shí)測(cè)試多個(gè)服務(wù)器。然而,如果你想把所有測(cè)試結(jié)果聯(lián)系起來(lái)成為一個(gè)整體,則需要整理從各個(gè)WAS數(shù)據(jù)庫(kù)得到的數(shù)據(jù)
·                     支持頁(yè)面在不同IP地址或域名間的重定向的能力
·                     從Web瀏覽器直接記錄SSL頁(yè)面的能力
注意    WSA已經(jīng)支持SSL頁(yè)面的測(cè)試,但是沒有記錄它們。你需要在腳本錄制完后,手工地為每個(gè)設(shè)計(jì)好的URL打開SSL支持
雖然對(duì)這些限制有一些相應(yīng)的解決辦法,但是如果你的應(yīng)用依賴一個(gè)或多個(gè)這樣的功能的話,你也許不能完全享受WAS帶來(lái)的好處。
安裝WAS
WAS要求Microsoft Windows NT® 4.0 Service Pack 4或以上版本,包括Windows 2000平臺(tái)。還要求Internet Explorer 4.0以上版本,與Internet Explorer 5.0工作更好。
要安裝WAS,首先下載最新版本的setup.exe程序,按照安裝向?qū)У闹甘?。拷貝并在你的測(cè)試機(jī)器上安裝。
注意   在本文介紹的所有步驟均以WAS version 293為藍(lán)本。
創(chuàng)建測(cè)試腳本
雖然你可以手動(dòng)地創(chuàng)建測(cè)試腳本,WAS可以通過(guò)記錄瀏覽器活動(dòng),導(dǎo)入服務(wù)器日志文件或評(píng)估Web文件夾的內(nèi)容來(lái)幫助你創(chuàng)建測(cè)試腳本。在本文,我們將主要通過(guò)記錄覽器活動(dòng)的方式來(lái)創(chuàng)建測(cè)試腳本。采用這個(gè)方法而不用其它的方法有幾個(gè)原因,包括:
·                     記錄覽器活動(dòng)的方式以精確的方式捕捉所有用戶的交互活動(dòng)。任何從瀏覽器發(fā)往服務(wù)器的URL指向,應(yīng)用程序參數(shù)和HTTP頭部信息都會(huì)被自動(dòng)地記錄在新的測(cè)試腳本里。
·                     導(dǎo)入服務(wù)器日志文件的方法在站點(diǎn)已經(jīng)進(jìn)入投入使用階段,有了真實(shí)的用戶流量的情況下使用最好。但是,一個(gè)新的站點(diǎn)未必有這么多的真實(shí)用戶使用數(shù)據(jù),進(jìn)一步說(shuō),可能還需要合并大量的日志文件來(lái)達(dá)到較好地體現(xiàn)用戶活動(dòng)的目的,這將需要?jiǎng)?chuàng)建大量的測(cè)試腳本,將需要客戶端更多的系統(tǒng)資源。
·                     選取Web內(nèi)容文件夾的方法最好用在測(cè)試多數(shù)是靜態(tài)HTML文件的站點(diǎn)。這種方法允許在已有服務(wù)器的Web頁(yè)面的基礎(chǔ)上快速創(chuàng)建測(cè)試腳本。然而,這種方法并不捕捉任何由大多數(shù)應(yīng)用程序文件產(chǎn)生的參數(shù),像Common Gateway Interface (CGI)程序或Active Server Pages (ASP).
你只需要在主客戶機(jī)器創(chuàng)建和存儲(chǔ)你的測(cè)試腳本,當(dāng)測(cè)試由主客戶端初始化時(shí),測(cè)試腳本會(huì)自動(dòng)地分發(fā)到其他的測(cè)試客戶端。
準(zhǔn)備測(cè)試客戶端機(jī)器
如果你正在你的內(nèi)部網(wǎng)通過(guò)代理服務(wù)器使用WAS ,并且從內(nèi)部網(wǎng)外的客戶端發(fā)送請(qǐng)求頁(yè)面,而且你的公司使用Microsoft Proxy Server,那么按照以下的步驟建立你的客戶端:
1.                  從開始菜單,指向設(shè)置\控制面板。雙擊管理工具圖標(biāo),然后是服務(wù)圖標(biāo)。
2.                  雙擊WebTool服務(wù)打開屬性對(duì)話框
3.                  點(diǎn)Log On As標(biāo)簽,然后點(diǎn)This account選擇按鈕添加你的網(wǎng)絡(luò)用戶名和密碼。使用domain\user name的格式
4.                  停止并重起WebTool服務(wù)
5.                  然后,安裝Microsoft Windows Proxy client 2.0,也叫Winsock Proxy 客戶端,可以在Microsoft Proxy Server CD里找到(更多有關(guān)怎樣安裝和設(shè)置這個(gè)軟件的信息,請(qǐng)參考包含在CD里面的文檔)
6.                  對(duì)于希望使用代理服務(wù)器的每個(gè)測(cè)試客戶端,重復(fù)步驟1-5。
如果你的公司使用其他的代理服務(wù)器,就要安裝該代理服務(wù)器的代理客戶端。
準(zhǔn)備瀏覽器
在開始錄制一個(gè)腳本前,你需要準(zhǔn)備好你的瀏覽器,清除你的瀏覽器的緩沖cache。否則,WAS也許不能記錄所需的瀏覽器活動(dòng),因?yàn)闉g覽器可能從緩沖區(qū)而不是從所請(qǐng)求的服務(wù)器取得請(qǐng)求頁(yè)面。
關(guān)掉IE的緩沖區(qū)
1.                  在工具菜單,點(diǎn)Internet選項(xiàng)
2.                  點(diǎn)常規(guī)標(biāo)簽,然后點(diǎn)刪除文件。。。按鈕。
如果使用IE5。0或以上版本則不需要修改代理設(shè)置,因?yàn)?。0以上版本的IE允許WAS改變這些設(shè)置。然而,對(duì)于IE4。0或早期版本,WAS使用一個(gè)內(nèi)置的代理服務(wù)器來(lái)記錄瀏覽器活動(dòng)。 
按WAS的需要指定代理設(shè)置
1.                  在工具菜單,點(diǎn)Internet選項(xiàng)
2.                  在連接標(biāo)簽里,修改代理設(shè)置以使代理服務(wù)器指向Localhost并且使用端口8000
3.                  不選對(duì)于本地地址不使用代理服務(wù)器
記錄腳本
在你的瀏覽器和客戶端已經(jīng)準(zhǔn)備好記錄后,做下面的操作:
1.                  當(dāng)你第一次運(yùn)行WAS時(shí),你會(huì)看到一個(gè)Create new script的對(duì)話框(Figure 1),詢問你以什么樣的方式創(chuàng)建一個(gè)新的測(cè)試腳本。
2.                  點(diǎn)Record 按鈕 。如果之前你選擇了Don't display at startup,Create new script將不會(huì)顯示出來(lái)。你可以在Script菜單選擇Record 然后 Create.
3.                  Browser Recorder Step 1 of 2對(duì)話框,你會(huì)被要求指定一些記錄設(shè)置。在這里,清除所有的選擇框點(diǎn)Next繼續(xù)。
4.                  Browser Recorder Step 2 of 2對(duì)話框,點(diǎn)Finish。一個(gè)新的IE窗口會(huì)出現(xiàn)以便記錄瀏覽器活動(dòng),同時(shí)WAS會(huì)被置于記錄模式。
5.                  在新出現(xiàn)的IE窗口的地址欄,輸入你的目的站點(diǎn)的地址。在WAS的窗口你將看到HTTP 信息在跟隨你的瀏覽活動(dòng)而實(shí)時(shí)改變著。
6.                  當(dāng)完成了你的站點(diǎn)瀏覽后,轉(zhuǎn)回WAS窗口—還處于記錄狀態(tài)—點(diǎn)Stop Recording按鈕。就會(huì)終止記錄并產(chǎn)生一個(gè)新的測(cè)試腳本。
在右邊窗口的底部,你將看到一個(gè)列出所有腳本的列表。
對(duì)于需要安全連接的站點(diǎn),WAS支持SSL頁(yè)面。然而不允許SSL的記錄。要解決這些限制,你可以在服務(wù)器端關(guān)掉SSL,記錄腳本,然后再重新激活服務(wù)器上的SSL。
設(shè)置測(cè)試腳本
新錄制的腳本還不能立即用來(lái)測(cè)試。還必須完成以下設(shè)置:
·                     調(diào)節(jié)腳本項(xiàng)和他們的屬性
·                     調(diào)節(jié)測(cè)試腳本的測(cè)試
·                     建立頁(yè)面組和點(diǎn)擊百份比
·                     建立用戶賬號(hào)
·                     建立客戶端
·                     建立性能計(jì)數(shù)器
調(diào)節(jié)腳本項(xiàng)
 
在修改一個(gè)測(cè)試腳本的腳本項(xiàng)時(shí)需要考慮幾點(diǎn),我們將在下面介紹。
去掉不需要的腳本項(xiàng)
去掉冗余項(xiàng)以減少在測(cè)試中的噪聲因素,或者去掉那些無(wú)效的URL。當(dāng)要調(diào)整一項(xiàng)特殊的功能時(shí),去掉所有指向圖象,樣式表單和其他輔助靜態(tài)文件的腳本項(xiàng)。
為腳本項(xiàng)指定思考時(shí)間
腳本項(xiàng)表單的最后一項(xiàng)叫做“延遲”。這項(xiàng)允許你在執(zhí)行腳本項(xiàng)之前指定特定的延遲時(shí)間(也叫思考時(shí)間)。
對(duì)于性能測(cè)試來(lái)說(shuō),如何定義思考時(shí)間并沒有一個(gè)單獨(dú)的標(biāo)準(zhǔn)。有些人使用零思考時(shí)間,有些人考慮使用30秒為思考時(shí)間。
主要取決于站點(diǎn)的內(nèi)容和測(cè)試的目的。例如,有長(zhǎng)頁(yè)面內(nèi)容的站點(diǎn)需要比簡(jiǎn)單頁(yè)面的站點(diǎn)使用長(zhǎng)一點(diǎn)的時(shí)間,因?yàn)橛脩粜枰褂枚帱c(diǎn)的時(shí)間來(lái)讀頁(yè)面內(nèi)容。
另外,如果你的目的是快速地決定一個(gè)只有少量客戶端的Web服務(wù)器的吞吐量,你可以考慮零思考時(shí)間。沒有思考時(shí)間的話,WAS的每個(gè)線程以最快速度對(duì)Web服務(wù)器施加壓力。
為腳本項(xiàng)設(shè)置一系列的值
WAS允許你為一個(gè)腳本項(xiàng)的一對(duì)名字-值賦值,而不是對(duì)每一個(gè)請(qǐng)求都使用相同的值。這個(gè)特性對(duì)于模擬真實(shí)情形很重要,沒有用戶會(huì)不停的以相同的數(shù)據(jù)值請(qǐng)求同一頁(yè)面吧?
例如,其中一項(xiàng)測(cè)試腳本是請(qǐng)求一個(gè)ASP頁(yè)面展示一個(gè)產(chǎn)品的詳細(xì)信息。我們可以設(shè)置WAS隨機(jī)地從一列預(yù)先定義的產(chǎn)品ID選取不同的值,而不是每次都用相同的產(chǎn)品ID請(qǐng)求ASP頁(yè)面。
為腳本項(xiàng)建立一列值
1.                  在WAS窗口的腳本項(xiàng),雙擊腳本項(xiàng)最前面的方型按鈕(在表單的第一列)打開這項(xiàng)的詳細(xì)菜單。
2.                  Querystring標(biāo)簽里(也叫Querystring Editor,如Figure 3所示),選定Format data to CGI standard。相應(yīng)的名字-值對(duì)會(huì)出現(xiàn)在check box下的表單里。
3.                  點(diǎn)選定的名字-值對(duì)的值,一個(gè)新的按鈕會(huì)出現(xiàn)
4.                  點(diǎn)這個(gè)按鈕打開Field Values對(duì)話框
5.                  Field values對(duì)話框輸入一串值,每一行一個(gè)值。你也可以通過(guò)剪切,粘貼一個(gè)電子表格的數(shù)據(jù)文件來(lái)輸入。
6.                  在Querystring Editor里,在表單中點(diǎn)有相同名字-值對(duì)的Distribution一列。在下拉菜單選擇Random。
為腳本項(xiàng)設(shè)置SSL
為特定的腳本項(xiàng)激活SSL,需要作以下操作:
1.                   在WAS窗口的腳本項(xiàng),雙擊腳本項(xiàng)最前面的方型按鈕(在表單的第一列)打開這項(xiàng)的詳細(xì)菜單。
2.                   在 SSL標(biāo)簽里,選Use SSL. (注意在你激活SSL時(shí)確保端口值應(yīng)該在80到 443之間)。
調(diào)整腳本設(shè)置
為了您能滿意地運(yùn)行你的性能測(cè)試,你需要修改你的測(cè)試腳本的設(shè)置。通過(guò)雙擊左邊的腳本名展開腳本的信息,你會(huì)找到一個(gè)Settings標(biāo)簽,在這里你可以為你的測(cè)試腳本指定很多設(shè)置。點(diǎn)擊它將在右邊窗口打開Settings視圖。
指定目標(biāo)Web服務(wù)器
默認(rèn)地,目標(biāo)服務(wù)器是“localhost”,應(yīng)該替換為IP地址或目標(biāo)服務(wù)器的域名。
改變?cè)O(shè)置
1.                  在左邊的窗口點(diǎn)測(cè)試腳本的名字
2.                  在右邊窗口頂部的Server輸入目標(biāo)服務(wù)器的IP地址或域名
注意 如果你想對(duì)有Network Load Balancing(網(wǎng)絡(luò)負(fù)載均衡)的服務(wù)器群組進(jìn)行測(cè)試,就像Duwamish Online一樣,則需要輸入IP地址群。
設(shè)置并發(fā)連接數(shù)
在設(shè)置里的Concurrent Connections部分,你可以指定Stress level (threads)的值和Stress multiplier (sockets per thread)來(lái)控制對(duì)目標(biāo)服務(wù)器的壓力/負(fù)載程度。Stress level是全部客戶端所產(chǎn)生的Windows NT線程的總數(shù)。每個(gè)線程能產(chǎn)生多個(gè)socket而每個(gè)socket就是一個(gè)并發(fā)的請(qǐng)求。
以下公式解釋了他們之間的關(guān)系:
Total Concurrent Requests = Stress level (threads) x Stress multiplier
(sockets per thread) = Total Number Sockets
在我們的實(shí)驗(yàn)室,我們使用不同的Stress層次來(lái) 性能測(cè)試。例如,我們使用過(guò)100, 200, 300, 400, 500, 750, 1000, 1500,和2000的值來(lái)連續(xù)測(cè)試以研究我們的服務(wù)器群組是如何對(duì)連續(xù)增長(zhǎng)的負(fù)載作出反應(yīng)的。
你應(yīng)該在初步測(cè)試的結(jié)果基礎(chǔ)上調(diào)整這些數(shù)值。通常來(lái)說(shuō),你需要在低負(fù)載度時(shí)收集更多的數(shù)據(jù)點(diǎn),因?yàn)檫@時(shí)候系統(tǒng)的吞吐量會(huì)隨線程的增長(zhǎng)而線性增長(zhǎng)。另一方面,你可以在高負(fù)載度時(shí)運(yùn)行較少的測(cè)試以節(jié)省時(shí)間和精力,尤其是系統(tǒng)吞吐量已經(jīng)高于峰值時(shí)。
注意我們的第一次測(cè)試將設(shè)定在1000個(gè)線程。目的是運(yùn)行足夠的請(qǐng)求以建立我們程序的數(shù)據(jù)緩沖。因?yàn)槌绦虻男阅軙?huì)因?yàn)橛袥]有緩沖而表現(xiàn)大不相同,這將幫助我們?yōu)樨?fù)載測(cè)試保持一個(gè)一致的環(huán)境。
設(shè)定測(cè)試運(yùn)行時(shí)間
在設(shè)置視圖的Test Run Time部分,你可以以日,小時(shí),分鐘,秒來(lái)設(shè)定總的運(yùn)行時(shí)間。取決于你的腳本項(xiàng)的預(yù)期反應(yīng)時(shí)間,建議你運(yùn)行測(cè)試腳本至少若干分鐘以便產(chǎn)生足夠的請(qǐng)求,避免變形的測(cè)試結(jié)果。你的程序的反應(yīng)時(shí)間越高,測(cè)試進(jìn)行的時(shí)間就應(yīng)該越長(zhǎng),以便產(chǎn)生大量的數(shù)據(jù)。
你可以運(yùn)行短而密集的測(cè)試以便監(jiān)測(cè)你的站點(diǎn)的任何問題。另外,你需要運(yùn)行更長(zhǎng)的測(cè)試時(shí)間(例如,30天),看看你的站點(diǎn)的性能是否隨時(shí)間而退化,尤其是在中級(jí)或高級(jí)的負(fù)載壓力下。
在Duwamish Online這個(gè)站點(diǎn),大多數(shù)的性能測(cè)試都運(yùn)行7到10分鐘,以便有足夠時(shí)間來(lái)穩(wěn)定測(cè)試結(jié)果。
設(shè)置隨機(jī)延遲時(shí)間
在設(shè)置視圖的Request Delay部分,你可以在執(zhí)行測(cè)試前為每個(gè)腳本項(xiàng)選擇加入隨機(jī)延遲時(shí)間(或思考時(shí)間)。如果Use random delay選項(xiàng)框被選中,每個(gè)WAS線程會(huì)空轉(zhuǎn)一段隨機(jī)的時(shí)間(在最大值和最小值之間)加上為每個(gè)腳本項(xiàng)指定的固定的思考時(shí)間。
下面的公式解釋了延遲時(shí)間的計(jì)算方法:
每項(xiàng)的延遲時(shí)間=隨機(jī)延遲時(shí)間+每項(xiàng)的固定延遲時(shí)間
隨機(jī)延遲時(shí)間的特性在固定延遲時(shí)間被指定給腳本項(xiàng)時(shí)尤為重要。如果沒有使用隨機(jī)延遲時(shí)間,所有的線程會(huì)在幾乎相同的時(shí)間發(fā)送請(qǐng)求到Web服務(wù)器,然后等待幾乎相同的固定延遲時(shí)間然后發(fā)送下一個(gè)請(qǐng)求。隨機(jī)延遲時(shí)間在向Web服務(wù)器施加負(fù)載時(shí)有助于壓平峰值和谷值,因此為所需的負(fù)載水平呈現(xiàn)一個(gè)更為精確的環(huán)境。
設(shè)定掛起時(shí)間
在設(shè)置視圖的Suspend部分,你可以以日,小時(shí),分鐘,秒來(lái)設(shè)定warmupcooldown時(shí)間。Warmup時(shí)間就是初始化測(cè)試運(yùn)行時(shí)間,在這段時(shí)間里不會(huì)收集和計(jì)算性能數(shù)據(jù)。類似地,cooldown時(shí)間就是指定結(jié)束階段的測(cè)試時(shí)間,也不收集數(shù)據(jù)。Warmup 和 cooldown被用于最小化測(cè)試結(jié)果的失真。
通常,在一個(gè)新測(cè)試運(yùn)行的初始化階段,很多系統(tǒng)資源是被特定的活動(dòng)所消耗,像組件或應(yīng)用程序的緩沖初始化。Warmup時(shí)間有助于在任何測(cè)試數(shù)據(jù)被收集之前穩(wěn)定系統(tǒng)的環(huán)境。
另一方面,cooldown時(shí)間有助于在測(cè)試運(yùn)行的結(jié)束階段避免數(shù)據(jù)的變形,這時(shí)額外的系統(tǒng)資源被用于停止測(cè)試和開始從客戶端收集數(shù)據(jù)。另外,socket連接可能會(huì)過(guò)早地停止,造成大量的socket錯(cuò)誤。
在Duwamish Online,我們使用30 到 60秒作為大多數(shù)性能測(cè)試的warmup 和 cooldown時(shí)間
指定帶寬瓶頸
在設(shè)置視圖里的Bandwidth部分,WAS允許你模擬從14.4 Kbps的modem連接到T1 (1.5 Mbps)的Local Area Network (LAN)連接的網(wǎng)絡(luò)帶寬。這個(gè)特性的最大好處是可以支撐大量的并發(fā)連接到目標(biāo)服務(wù)器。這是大多數(shù)Web站點(diǎn)(用戶使用低速modem連接)所體驗(yàn)的情形。
激活帶寬瓶頸
1.                  在設(shè)置視圖里的Bandwidth部分,選擇Throttle bandwidth選項(xiàng)框。
2.                  在下拉菜單,選擇一個(gè)代表大多數(shù)用戶的連接吞吐量的帶寬。
在Duwamish Online里,我們?cè)囘^(guò)不同的帶寬瓶頸的設(shè)置。初始化時(shí)。我們把用戶連接設(shè)在56 Kbps,想明白我們的程序在大多數(shù)Web站點(diǎn)的情況下是如何表現(xiàn)的。我們也試過(guò)把用戶連接設(shè)在ISDN Dual Channel (128 Kbps)以模擬未來(lái)寬帶趨勢(shì)下,我們的大多數(shù)用戶通過(guò)快速的連接訪問我們的站點(diǎn)。最后,我們以沒有帶寬瓶頸的情形測(cè)試我們的站點(diǎn)。有趣的是,我們發(fā)現(xiàn)這種設(shè)置產(chǎn)生的負(fù)載條件與用128 Kbps連接的一樣。
不管你如何設(shè)置帶寬瓶頸,務(wù)必要在你想比較測(cè)試結(jié)果的所有測(cè)試中保持一致性。
指定其他設(shè)置
在設(shè)置視圖的其他部分,我們保持默認(rèn)值,除HTTP重定向外。我們故意去掉Follow HTTP redirects選項(xiàng)。這在創(chuàng)建腳本過(guò)程中你錄制腳本時(shí)已經(jīng)錄制了URL的重定向的時(shí)候是必須的。你不需要重復(fù)兩次地運(yùn)行那些URL。
設(shè)置頁(yè)面組
在WAS里,你可以把一系列的腳本項(xiàng)組織成所謂的頁(yè)面組。這個(gè)特性允許你把所有的頁(yè)面元素(包括HTML文件,圖象文件,樣式表單等)或多個(gè)相連的頁(yè)面組織成一個(gè)邏輯單元。你可以為每個(gè)頁(yè)面組指定不同的點(diǎn)擊率,那樣就能控制哪個(gè)頁(yè)面或相連的頁(yè)面會(huì)訪問更多或更少。如果你有你的網(wǎng)站的使用方法—像目錄瀏覽或購(gòu)物車—頁(yè)面組允許你以你希望你的站點(diǎn)會(huì)獲得的點(diǎn)擊率來(lái)運(yùn)行。
建立頁(yè)面組
1.                  展開左邊窗口的腳本的信息
2.                  點(diǎn)Page Groups節(jié)點(diǎn)在右邊窗口打開相應(yīng)的視圖
你會(huì)看到默認(rèn)的以100%分布率的頁(yè)面組已經(jīng)創(chuàng)建好了。所有的腳本項(xiàng)默認(rèn)都初始化為這個(gè)組。
3.                  在組表單的空白行,在Group列輸入新的組名(像"Home"作為主頁(yè)),在Distribution列輸入數(shù)值。分布率會(huì)被用于計(jì)算這個(gè)頁(yè)面組的點(diǎn)擊率,見Percent列。重復(fù)這個(gè)步驟添加更多的頁(yè)面組。
4.                  點(diǎn)左邊窗口的腳本名回到該腳本項(xiàng)的視圖
5.                  在腳本項(xiàng)表單的Group列,從下拉菜單選擇其中一個(gè)頁(yè)面組。為每個(gè)腳本項(xiàng)重復(fù)這個(gè)步驟。所有關(guān)聯(lián)的頁(yè)面都應(yīng)該選同樣的頁(yè)面組。
Figure 5. Example of page groups definition
6.                  點(diǎn)左邊窗口的腳本名回到該腳本項(xiàng)的視圖
7.                  在腳本項(xiàng)的表單的Group一列,從下拉菜單選則其中一個(gè)頁(yè)面組。
8.                  重復(fù)6到7為每一個(gè)腳本項(xiàng)選擇一個(gè)頁(yè)面組。所有相關(guān)項(xiàng)(像ASP 頁(yè)面,樣式表單和圖象文件)應(yīng)該選擇相同的頁(yè)面組。
另一種創(chuàng)建和指定頁(yè)面組的方法是在錄制腳本時(shí)指定頁(yè)面組。要使用這種方法,在瀏覽器跳到新的頁(yè)面之前返回到WAS窗口(見Figure 2)。點(diǎn)Change Group按鈕然后在New Group對(duì)話框輸入組名。以后錄制的腳本項(xiàng)都會(huì)被指定到這個(gè)新的組。
指定用戶
測(cè)試需要署名登錄的Web站點(diǎn)時(shí),WAS提供一個(gè)特性叫做Users,可用于存儲(chǔ)多個(gè)用戶的用戶名,密碼和cookie信息。
當(dāng)一個(gè)測(cè)試開始時(shí),所有的用戶被分配到給定壓力系數(shù)設(shè)置的各線程中。當(dāng)請(qǐng)求開始時(shí),每個(gè)線程使用從與該線程連接的共享池中獲得的用戶名,密碼,和cookie。如果WAS配置的用戶數(shù)比線程少,一些線程就會(huì)沒有用戶—所有的署名登錄頁(yè)面會(huì)登錄取失敗,任何與cookies的交互會(huì)被禁止。所以,當(dāng)測(cè)試需要個(gè)人認(rèn)證的網(wǎng)站時(shí),擁有的用戶數(shù)比線程多是很重要的。
對(duì)于可以在WAS中創(chuàng)建的用戶數(shù)沒有硬性的規(guī)定和限制。然而,因?yàn)槊總€(gè)用戶都會(huì)需要一定的內(nèi)存和資源,所以如果使用大量的用戶,將會(huì)使你的測(cè)試啟動(dòng)和停止時(shí)間更長(zhǎng)些。
創(chuàng)建新用戶
1.                  在左邊窗口展開腳本的信息
2.                  點(diǎn)Users節(jié)點(diǎn)在右邊窗口打開相應(yīng)的視圖
3.                  雙擊Default用戶組打開用戶視圖。
注意默認(rèn)已經(jīng)創(chuàng)建了200個(gè)用戶。你可以簡(jiǎn)單地修改用戶名和密碼就行了。
你也可以做以下操作來(lái)創(chuàng)建一系列新的用戶
1.                  點(diǎn)Remove All清除所有的記錄
2.                  Number of new users,輸入你想創(chuàng)建的新用戶的數(shù)量
3.                  User name prefix,你可以在用戶編號(hào)的前面輸入前綴值,例如“User.”
4.                  Password,輸入密碼。相同的密碼會(huì)賦給所有用戶。
5.                  最后,點(diǎn)Create按鈕。用戶表單就會(huì)填滿指定數(shù)量的用戶
如果你想使用定制的用戶名和密碼列表,你可以從一個(gè)預(yù)定格式的文本文件導(dǎo)入它們。參考WAS幫助文件的“Importing user names and passwords”部分。
建立各客戶端機(jī)器
WAS允許你使用多個(gè)客戶端機(jī)器測(cè)試你的網(wǎng)站。當(dāng)一個(gè)測(cè)試開始時(shí),WAS會(huì)自動(dòng)地與所有客戶機(jī)取得聯(lián)系,向他們傳輸所有的測(cè)試信息(包括測(cè)試腳本項(xiàng),頁(yè)面組和用戶定義信息),啟動(dòng)和停止他們的測(cè)試,然后收集測(cè)試結(jié)果。
使用其中一個(gè)客戶機(jī)器作為你的主客戶端。這個(gè)主客戶端應(yīng)該是你用來(lái)記錄和設(shè)置測(cè)試腳本的機(jī)器。
建立測(cè)試客戶端
1.                  在左邊窗口展開腳本信息
2.                  點(diǎn)Clients節(jié)點(diǎn)在右邊窗口打開相應(yīng)的視圖
3.                  雙擊Default客戶端打開客戶端視圖
本地客戶端的記錄(在你工作的主客戶端)已經(jīng)默認(rèn)被創(chuàng)建。
4.                  要想加入新的客戶端,在Machine name輸入IP地址或域名。
5.                  點(diǎn)Add按鈕,新的客戶端會(huì)以Connected的狀態(tài)被加到表單中去。
6.                  重復(fù)步驟5和6,直到全部客戶端機(jī)器都被加入。
當(dāng)添加新的客戶端時(shí),盡量加那些大致相同處理能力的機(jī)器。我們發(fā)現(xiàn)添加一個(gè)明顯比其他機(jī)器速度慢的機(jī)器比不添加它還要產(chǎn)生更多的socket錯(cuò)誤。
我們也發(fā)現(xiàn)如果我們?cè)O(shè)置一臺(tái)專注的機(jī)器作為主客戶端,但是這臺(tái)機(jī)器不參與產(chǎn)生負(fù)載。這樣的設(shè)置,我們會(huì)產(chǎn)生較少的socket錯(cuò)誤,而且測(cè)試結(jié)束得更快。
要這樣設(shè)置的話,從客戶端列表去掉主客戶端的名字。如果你有一臺(tái)慢的機(jī)器而你不打算用做負(fù)載產(chǎn)生機(jī)器,它可以作為你的主客戶端而不會(huì)影響測(cè)試的輸出。注意,這臺(tái)主客戶端仍然做所有的產(chǎn)生報(bào)告和分發(fā)測(cè)試腳本的工作。一臺(tái)慢速度的主客戶端意味著你的測(cè)試啟動(dòng)和結(jié)束的速度會(huì)慢些,而且要更多的時(shí)間來(lái)產(chǎn)生報(bào)告。
設(shè)置性能計(jì)數(shù)器
WAS可以與Windows NT性能監(jiān)視器結(jié)合簡(jiǎn)化測(cè)試數(shù)據(jù)的收集。你可以為每個(gè)腳本存儲(chǔ)你最喜歡的性能監(jiān)視計(jì)數(shù)器,WAS 會(huì)像其它信息一樣收集它們的數(shù)據(jù)。
把性能監(jiān)視計(jì)數(shù)器加到你的腳本
1.                  在左邊的窗口展開腳本的信息
2.                  在右邊的窗口點(diǎn)Perf Counters節(jié)點(diǎn)打開相應(yīng)的視圖
3.                  Collection Interval,輸入收集時(shí)間間隔。這是以秒計(jì)算的取樣時(shí)間。
4.                  點(diǎn)Add Counter按鈕
5.                  Add counter to report對(duì)話框,通過(guò)點(diǎn)Add按鈕選機(jī)器,對(duì)象和你感興趣收集的計(jì)數(shù)器。
在WAS幫助文件的"Common performance monitor counters"部分有一系列的通用性能計(jì)數(shù)器的介紹。
如果你在使用這個(gè)特性時(shí)遇到什么問題,請(qǐng)參考WAS的基本知識(shí)介紹。
運(yùn)行測(cè)試腳本
一旦你設(shè)置好了測(cè)試腳本,就準(zhǔn)備好了在你的客戶機(jī)運(yùn)行腳本
 啟動(dòng)主客戶端的測(cè)試
1.                  點(diǎn)需要測(cè)試的腳本
2.                  Scripts菜單選Run
也可以點(diǎn)工具欄上的Play按鈕運(yùn)行腳本。
檢查測(cè)試報(bào)告
測(cè)試完成后,你應(yīng)該先檢查測(cè)試報(bào)告看是否有socket 或 HTTP錯(cuò)誤
從報(bào)告中檢查這些錯(cuò)誤
1.                  View菜單選Reports打開相應(yīng)的視圖,見Figure 7.
2.                  在左邊窗口,雙擊腳本打開測(cè)試報(bào)告,如果需要的話
3.                  點(diǎn)測(cè)試報(bào)告名(有測(cè)試運(yùn)行時(shí)間指定),如果需要的話。你會(huì)看到右邊窗口顯示報(bào)告的概要。
4.                  在報(bào)告概要,檢查Socket Errors部分是否有任何的socket有關(guān)的錯(cuò)誤(值不為0)。這里列出每種socket錯(cuò)誤的解釋:
·                                Connect—客戶端不能與服務(wù)器取得連接的次數(shù)。如果這個(gè)值偏高,檢查在客戶端與服務(wù)器之間產(chǎn)生的任何潛在的錯(cuò)誤。從每個(gè)客戶端Ping服務(wù)器或telnet服務(wù)器的端口80驗(yàn)證你得到正確的回應(yīng)。
·                                Send—客戶端不能正確發(fā)送數(shù)據(jù)到服務(wù)器的次數(shù)。如果這個(gè)值偏高,檢查服務(wù)器是否正確地工作著。在客戶端打開一個(gè)瀏覽器然后手工點(diǎn)擊站點(diǎn)頁(yè)面驗(yàn)證站點(diǎn)正確地工作著。
·                                Recv—客戶端不能正確從服務(wù)器接收數(shù)據(jù)的次數(shù)。如果這個(gè)值偏高,執(zhí)行和Send錯(cuò)誤相同的操作。還要檢查一下如果你減低負(fù)載系數(shù),錯(cuò)誤是否跟著減少。
·                                Timeouts—超時(shí)的線程的數(shù)目,而且隨后就關(guān)閉了。如果這個(gè)值偏高,在客戶端打開一個(gè)瀏覽器然后手工點(diǎn)擊站點(diǎn)頁(yè)面驗(yàn)證是否即使只有一個(gè)用戶你的程序也會(huì)很慢。再做一個(gè)不同負(fù)載系數(shù)的壓力測(cè)試,看看你的程序的潛在特征。
5.                  如果socket錯(cuò)誤很低或?yàn)?,拉下報(bào)告視圖找到Result Codes部分。
6.                  檢查一下是否所有結(jié)果代碼都是200,表示所有請(qǐng)求都被服務(wù)器成功地返回了。如果找到大于或等于400的結(jié)果,繼續(xù)下面的步驟以查找哪個(gè)腳本項(xiàng)(URL)產(chǎn)生這些HTTP錯(cuò)誤的。
7.                  在左邊窗口展開腳本信息
8.                  雙擊Page Data節(jié)點(diǎn)展開所有的腳本項(xiàng)
9.                  點(diǎn)每個(gè)腳本項(xiàng)在右邊窗口看頁(yè)面數(shù)據(jù)的報(bào)告
10.               在每項(xiàng)腳本的頁(yè)面數(shù)據(jù)報(bào)告檢查Result Codes部分,驗(yàn)證是否有那項(xiàng)產(chǎn)生了HTTP錯(cuò)誤。如果要看常見的結(jié)果代碼列表,請(qǐng)參考WAS幫助文件的"HTTP result codes"部分。
運(yùn)行腳本
在準(zhǔn)備好以上介紹的測(cè)試腳本后,你現(xiàn)在就可以準(zhǔn)備運(yùn)行測(cè)試及收集數(shù)據(jù)了。
你可以按照前面介紹的步驟手工運(yùn)行每項(xiàng)測(cè)試。然而,這將會(huì)是一項(xiàng)耗時(shí)的過(guò)程。
WAS有一個(gè)對(duì)象模型,允許你創(chuàng)建自己的Microsoft Visual Basic Scripting Edition (VBScript)腳本來(lái)控制和配置測(cè)試運(yùn)行。
當(dāng)測(cè)試運(yùn)行時(shí),你應(yīng)該監(jiān)視和記錄不同的性能相關(guān)的系統(tǒng)計(jì)數(shù)器,包括跟蹤系統(tǒng)吞吐量的計(jì)數(shù)器,反應(yīng)時(shí)間和資源利用率。
結(jié)論:最好的習(xí)慣
客戶機(jī)器。密切監(jiān)視每個(gè)客戶端的系統(tǒng)資源利用率。如果CPU或內(nèi)存使用高于80%,客戶端可能已經(jīng)過(guò)載,你應(yīng)該考慮使用更多的客戶端機(jī)器來(lái)測(cè)試。壓迫客戶端機(jī)器會(huì)導(dǎo)致不可靠結(jié)果和在與服務(wù)器連接時(shí)產(chǎn)生socket錯(cuò)誤。
給服務(wù)器設(shè)置多層負(fù)載。估計(jì)一下需要并發(fā)請(qǐng)求的最大用戶量以便在預(yù)備測(cè)試中把你的Web服務(wù)器群推到100%的使用率。
當(dāng)沒有足夠的客戶端機(jī)器來(lái)使服務(wù)器群到達(dá)極限時(shí),就需要設(shè)置更高的負(fù)載倍數(shù),例如,如果你發(fā)現(xiàn)使用4,000個(gè)線程,都乘一倍的負(fù)載系數(shù),你還是不能把服務(wù)器推到極限的話,把負(fù)載系數(shù)加大。然而,使用大于1的負(fù)載系數(shù)會(huì)產(chǎn)生不精確的Web程序頁(yè)面的TTLB。如果有可能,增加更多的機(jī)器比靠增加負(fù)載系數(shù)要好。
使用Session跟蹤。使用Session跟蹤來(lái)記錄WAS 和Web服務(wù)器之間的詳細(xì)連接。當(dāng)定義一個(gè)新的WAS腳本時(shí),確保所有的URL都正常工作而且Web服務(wù)器返回的是所需要的結(jié)果。如果不是,那么很有可能你得到改進(jìn)的性能結(jié)果,但是Web服務(wù)器返回的卻是錯(cuò)誤的響應(yīng)。
你應(yīng)該設(shè)置SessionTrace為1,類型為REG_DWORD。SessionTrace線程跟蹤可以在注冊(cè)表的\HKEY_LOCAL_MACHINE \SOFTWARE \Microsoft \WAS注冊(cè)。最后,記得在確認(rèn)了新的腳本后關(guān)掉SessionTrace(0),否則,你的磁盤會(huì)很快就滿了。
監(jiān)視Web服務(wù)器的日志文件。要準(zhǔn)備重新部署或清除你的Web服務(wù)器日志文件。太多的性能測(cè)試會(huì)使它膨脹的很快,尤其對(duì)于長(zhǎng)時(shí)間的測(cè)試。你也可以把日志文件作為故障檢查員幫助你檢查WAS報(bào)告的應(yīng)用程序錯(cuò)誤。
限制腳本的項(xiàng)數(shù)和用戶數(shù)。避免創(chuàng)建多于1000腳本或用戶,除非有特殊原因需要多于這個(gè)數(shù)目的對(duì)象。雖然允許的數(shù)目限制是由客戶端的內(nèi)存決定的,你會(huì)發(fā)現(xiàn)初始化這么多的腳本和用戶會(huì)花費(fèi)太多的時(shí)間
跟蹤HTTP重定向的選項(xiàng)。如果腳本已經(jīng)錄制了重定向的URL就不要再使用這項(xiàng)選項(xiàng)。如果你使用這項(xiàng)選項(xiàng),重定向的頁(yè)面將會(huì)計(jì)算兩次。
用戶名和密碼。 WAS的幫助文件說(shuō)用USERNAME 和 PASSWORD填表是指定每一個(gè)WAS用戶的方法。在我們的測(cè)試過(guò)程中使用USERNAME 和 PASSWORD會(huì)大大地增加關(guān)閉各個(gè)客戶端的腳本的時(shí)間。從一些WAS的內(nèi)部使用者得到建議,我們?cè)?em>QueryString里指定USER 和 PASSWORD名字-值對(duì)。通過(guò)為USER 和 PASSWORD設(shè)置順序訪問機(jī)制,我們保證了密碼總是和用戶名對(duì)應(yīng)。
 
除了WAS的一些缺陷外,WAS是你發(fā)布網(wǎng)站之前模擬用戶使用你的網(wǎng)站的好工具。使用性能測(cè)試工具對(duì)于成功的網(wǎng)站程序發(fā)布有重要作用。這些工具允許你清楚你的程序的性能特征,那么你就會(huì)清楚你的程序在高負(fù)載情況下會(huì)如何表現(xiàn)。你在操作網(wǎng)站的過(guò)程中得到的驚奇越少,你的站點(diǎn)就越可靠。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
性能提升70%,Netflix的網(wǎng)站提速最佳實(shí)踐
性能測(cè)試指標(biāo)的基本概念
性能測(cè)試知多少
LoadRunner進(jìn)行Web測(cè)試時(shí)吞吐量和點(diǎn)擊率
load runner 學(xué)習(xí)
laodrunner11
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服