用著放心 為你的ASP程序作一個(gè)負(fù)載測(cè)試_ASP教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:ASP:True or False,明明白白你的If語句流程通過學(xué)習(xí)ASP明明白白你的If語句流程。 以下為引用的內(nèi)容: If condition Then [statements1] Else [statements2] End If
介紹當(dāng)我們從傳統(tǒng)的CS結(jié)構(gòu)的應(yīng)用程序轉(zhuǎn)到當(dāng)前流行的Web空間的程序時(shí),我們發(fā)現(xiàn)我們?cè)趪L試跟上不斷增長的可測(cè)性需求和性能要求。其中一個(gè)最大的挑戰(zhàn)在于如何確定你的程序能最多支持多少個(gè)用戶的訪問。你如何面對(duì)這一挑戰(zhàn)?設(shè)定清晰的性能目標(biāo)并使用Web壓力測(cè)試工具會(huì)是一個(gè)好的開始。
這篇文章將會(huì)介紹如何對(duì)你的ASP程序進(jìn)行壓力測(cè)試,同時(shí)將會(huì)介紹微軟的壓力測(cè)試工具- Web Application Stress test Tool (WAS).在接下來的一章,你將會(huì)學(xué)習(xí)到壓力測(cè)試的基礎(chǔ),同時(shí)還會(huì)學(xué)到一些必要的技巧,通過這些學(xué)習(xí),你將可以根據(jù)測(cè)試的結(jié)果更加有效的測(cè)試和修改你的程序。
劇情
假設(shè)你將要發(fā)布一個(gè)預(yù)期有1000用戶使用的ASP程序。你清楚的知道你的程序至少能處理兩個(gè)并發(fā)的用戶的訪問,因?yàn)槟愫湍愕幕锇槟苷斓攸c(diǎn)擊這個(gè)ASP程序而不會(huì)出現(xiàn)任何的問題。你在懷疑到底兩個(gè)用戶能否精確地反映你的程序的受壓能力。當(dāng)然你可以使用標(biāo)準(zhǔn)的測(cè)試方法(發(fā)布你的程序,然后期待最好的結(jié)果出現(xiàn)),然而你還是決定預(yù)先測(cè)試你的程序的表現(xiàn)。這是一個(gè)好兆頭!
測(cè)試需求
為了更好的測(cè)試你的ASP程序,你首先需要決定你的程序?qū)硇枰鎸?duì)多大的壓力。簡單的說,壓力或負(fù)載可以分解成以下數(shù)字:
· 最低用戶數(shù)量。(這個(gè)程序的使用者的最低數(shù)量是多少?通常這個(gè)數(shù)值可以是每日或沒周或每月的點(diǎn)擊量—當(dāng)然你也可以分解成一個(gè)更可控的數(shù)值—每小時(shí)訪問量,)
· 并發(fā)用戶的總量. (在最高峰時(shí)的糟糕狀況是什么?作出相應(yīng)的計(jì)劃. 希望在有壓力的情況下工作正常有效.)
· 請(qǐng)求高峰值. (每秒鐘需要產(chǎn)生多少ASP頁面? 這也許是在衡量一個(gè)ASP程序?qū)τ脩粽?qǐng)求作出反應(yīng)的能力時(shí)的一個(gè)最重要的因素.)
為你的程序決定用戶量和并發(fā)用戶數(shù)通常是很困難的事情,而且是在你的程序在被實(shí)際使用之前。尤其是網(wǎng)絡(luò)程序。即使是局域網(wǎng)程序也常常要面對(duì)用戶增加的問題,所以準(zhǔn)確的預(yù)計(jì)用戶量將會(huì)是困難的。當(dāng)你不知道怎么開始時(shí),最好從基礎(chǔ)的開始:
Internet需要考慮的問題:
· 分析你已有的IIS日志。這個(gè)數(shù)值會(huì)暗示出一些實(shí)際的幾率
· 你的站點(diǎn)將會(huì)有多流行?流行的站點(diǎn)一天會(huì)有100萬或更多的訪問量。不會(huì)那么流行?那么假設(shè)一些不同的情況?假設(shè)你有1000以上的用戶群?你能通過增加更多的硬件設(shè)備來解決擴(kuò)展性問題嗎?或者,你的程序的架構(gòu)會(huì)成為瓶頸嗎?
· 什么是最糟糕的情況?問一下你的朋友這些情況會(huì)發(fā)生嗎?
Intranet需要考慮的問題:
· 同樣地,分析你已有的IIS日志。
· 這個(gè)ASP程序是可以給每個(gè)人用的嗎?在公司內(nèi)部網(wǎng)有多少臺(tái)機(jī)器?你的系統(tǒng)管理員可以告訴你有關(guān)網(wǎng)絡(luò)高峰流量的東西嗎?
· 這個(gè)程序有特定的用戶對(duì)象嗎?只是HR人力資源部?有多少個(gè)人力資源部的員工在使用?
· 最糟糕的情況是怎樣的?
如果你不能提前決定適當(dāng)?shù)呢?fù)載,那么確定你的程序的最高上限將是你最好的選擇。如果被10個(gè)用戶點(diǎn)擊,你能在1秒內(nèi)產(chǎn)生多少的ASP響應(yīng)結(jié)果?100個(gè)呢?1000個(gè)呢?10000個(gè)呢?記錄你的基準(zhǔn)。當(dāng)你從實(shí)際使用中得到你的流量日志顯示你正在接近你的極限時(shí),你將不僅會(huì)為你知道你當(dāng)前的極限是什么,而且你會(huì)有時(shí)間準(zhǔn)備解決的辦法。
介紹測(cè)試工具WAS
雖然有很多的壓力測(cè)試工具可供選擇,但是在本文,我會(huì)主要集中介紹WAS(就是以前所謂的Homer),WAS是當(dāng)前微軟的標(biāo)準(zhǔn)網(wǎng)頁壓力測(cè)試工具。如果你已經(jīng)對(duì)WebCat很熟悉了,你會(huì)激動(dòng)的發(fā)現(xiàn)WAS可以很方便地導(dǎo)入現(xiàn)有的WebCat腳本。如果你以前用過InetMonitor,你會(huì)激動(dòng)的發(fā)現(xiàn)WAS也是基于GUI的(對(duì)于很多使用命令行的WebCat的用戶來說這將會(huì)是一個(gè)很好的附加特性)。另一個(gè)好處是它是免費(fèi)的,我的一個(gè)好朋友常說,“如果是免費(fèi)的,那么就是我的。”除了它的價(jià)格優(yōu)勢(shì)外,這個(gè)工具還提供了完整的功能,而且還在不斷地升級(jí)更新中。Microsoft.com經(jīng)常要使用它,所以他們會(huì)明白這個(gè)工具的重要性。
但是你不需要過多地理會(huì)我的話,只管自己去嘗試。我在文章的結(jié)尾會(huì)提供一個(gè)列表,列出一些第三方的壓力測(cè)試工具,你可以自己決定選什么工具。底線是你需要一個(gè)工具,能夠把你的ASP程序放到負(fù)載下,在發(fā)布之前測(cè)試它。
開始使用WAS
我會(huì)教你怎樣第一次使用這個(gè)工具來測(cè)試一個(gè)ASP頁面。我也會(huì)介紹怎樣使用署名登錄的測(cè)試和多用戶并發(fā)訪問的測(cè)試,因?yàn)檫@些東西會(huì)使初學(xué)者一頭霧水。
首先你需要下載和安裝這個(gè)工具。你能從下面的鏈接中得到最新版本
http://www.microsoft.com/technet/treeview/default.asp?url=/TechNet/itsolutions/intranet/downloads/webstres.asp. 在這個(gè)網(wǎng)站上還會(huì)有關(guān)于這個(gè)工具的入門指導(dǎo),你可以隨時(shí)回去看看。
以下是在安裝時(shí)需要注意的幾點(diǎn):
· 不要把WAS安裝在你的測(cè)試目標(biāo)服務(wù)器上,安裝在別的機(jī)器以確保得到準(zhǔn)確的測(cè)試結(jié)果。
· 在安裝WAS的機(jī)器上需要有ADO2。1以上的版本。如果oledb32.dll的版本不是2.10.3711或以上,ADO會(huì)被WAS自動(dòng)安裝。
· 在安裝后你會(huì)有一個(gè)完整的安裝日志,默認(rèn)會(huì)在\Program Files\Microsoft Web Application Stress Tool\INSTALL.LOG.
· 如果你已經(jīng)安裝了舊版本的WAS,更新時(shí)會(huì)保留數(shù)據(jù)文件完好。WAS使用Access .mdb文件作為數(shù)據(jù)存儲(chǔ)文件。WAS的初始.mdb包是WAS.mdb,可以在程序安裝路徑找到。
· WAS在注冊(cè)表的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WAS存儲(chǔ)注冊(cè)信息。
在運(yùn)行我們新安裝的WAS之前,我們創(chuàng)建一個(gè)簡單的ASP腳本作為測(cè)試頁面。創(chuàng)建一個(gè)新的叫做MyASPPage.asp 的ASP頁面,然后插入以下腳本:
MyASPPage.asp
<%@ Language=VBScript %>
<HTML>
<BODY>
<% CONST ForAppending = 8
set oFSO = server.CreateObject("Scripting.FileSystemObject")
'translate our virtual directory into a physical path
strFilePath = Server.MapPath(Request.ServerVariables("PATH_INFO"))
'grab the root of the virtual directory
strFilePath = left(strFilePath, (InstrRev(strFilePath, "\")))
strFilePath = strFilePath & "MyFile.txt"
'write out to the screen the full file path
Response.Write(strFilePath & "<BR>")
set oTS = oFSO.OpenTextFile(strFilePath,ForAppending, true)
oTS.writeline("Session Id: " & Session.SessionId & chr(32) & _
"Time: " & Cstr(now()))
%>
</BODY>
</HTML>
這個(gè)ASP腳本將在一個(gè)文本文件中插入SessionId及其活動(dòng)時(shí)間,這樣我們可以方便地確認(rèn)我們的ASP頁面是否在正確的執(zhí)行。一旦你熟悉了這個(gè)工具,你就可以指向你實(shí)際的ASP頁面以作真正的測(cè)試。 在服務(wù)器的恰當(dāng)?shù)哪夸浄胖媚愕腁SP頁面以使它可以被匿名訪問。我們?cè)诤竺鎸?huì)再試署名訪問的測(cè)試,但是現(xiàn)在我們需要運(yùn)行一個(gè)最基本的測(cè)試。用全路徑URL瀏覽你的頁面,包括你的服務(wù)器名。例如,一個(gè)完整的URL看起來像http://MyServer/MyVirtualDirectory/MyASPPage.asp。一旦你能成功地瀏覽你的ASP頁面(務(wù)必檢查MyFile.txt這個(gè)文件,這個(gè)文件會(huì)被程序?qū)懺谔摂M目錄的物理位置),你就可以運(yùn)行WAS做實(shí)際的測(cè)試了。
當(dāng)你第一次運(yùn)行WAS時(shí),將會(huì)出現(xiàn)下面的對(duì)話框:
Figure 1. Create a new script
雖然其他選項(xiàng)也很誘人,現(xiàn)在我們先選Manual 這項(xiàng)。將來你還可以從菜單的Scripts或在工具攔點(diǎn)取New Script圖標(biāo)來創(chuàng)建一個(gè)新的腳本。
歡迎來到腳本瀏覽界面。左手邊的窗口以樹型結(jié)構(gòu)列出了你的腳本。在右手邊的窗口里你可以修改你的腳本設(shè)置。
在左手邊的窗口里的樹狀列表單擊New Script可以激活腳本的瀏覽。在Server輸入框輸入你的服務(wù)器的名字。在Script Item的第一項(xiàng),選擇GET作為你的動(dòng)作。在PATH輸入你的ASP地址,以虛擬目錄為開始符。見圖Figure 2如下:
分享:ASP中Cache技術(shù)的應(yīng)用ASP從發(fā)布至今已經(jīng)7年了,使用ASP技術(shù)已經(jīng)相當(dāng)成熟,自從微軟推出了ASP.NET之后就逐漸停止了對(duì)ASP版本的更新。但是由于有很多人仍然習(xí)慣使用ASP來開發(fā)網(wǎng)站,所以,再次我將以一個(gè)簡單的例子來說
相關(guān)ASP教程:
- asp FSO 讀寫文件本文件實(shí)現(xiàn)代碼
- asp中isNull、isEmpty和空字符串的區(qū)別
- asp獲取用戶真實(shí)IP地址的方法
- asp連接sqlserver數(shù)據(jù)庫實(shí)現(xiàn)代碼
- asp中正則表達(dá)式過濾html代碼函數(shù)
- asp中g(shù)et post提交表單區(qū)別
- 網(wǎng)頁模板:ASP內(nèi)建對(duì)象Request
- xmlhttp的open方法使用詳解
- ASP的常用的自定義函數(shù)大全
- asp中用for循環(huán)的一個(gè)小技巧
- eWebEditor v3.8 列目錄
- ASP無組件分頁實(shí)現(xiàn)思路及代碼
- 相關(guān)鏈接:
- 教程說明:
ASP教程-用著放心 為你的ASP程序作一個(gè)負(fù)載測(cè)試
。