用著放心 為你的ASP程序作一個負載測試_ASP教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:ASP:True or False,明明白白你的If語句流程通過學習ASP明明白白你的If語句流程。 以下為引用的內容: If condition Then [statements1] Else [statements2] End If
介紹當我們從傳統的CS結構的應用程序轉到當前流行的Web空間的程序時,我們發現我們在嘗試跟上不斷增長的可測性需求和性能要求。其中一個最大的挑戰在于如何確定你的程序能最多支持多少個用戶的訪問。你如何面對這一挑戰?設定清晰的性能目標并使用Web壓力測試工具會是一個好的開始。
這篇文章將會介紹如何對你的ASP程序進行壓力測試,同時將會介紹微軟的壓力測試工具- Web Application Stress test Tool (WAS).在接下來的一章,你將會學習到壓力測試的基礎,同時還會學到一些必要的技巧,通過這些學習,你將可以根據測試的結果更加有效的測試和修改你的程序。
劇情
假設你將要發布一個預期有1000用戶使用的ASP程序。你清楚的知道你的程序至少能處理兩個并發的用戶的訪問,因為你和你的伙伴能整天地點擊這個ASP程序而不會出現任何的問題。你在懷疑到底兩個用戶能否精確地反映你的程序的受壓能力。當然你可以使用標準的測試方法(發布你的程序,然后期待最好的結果出現),然而你還是決定預先測試你的程序的表現。這是一個好兆頭!
測試需求
為了更好的測試你的ASP程序,你首先需要決定你的程序將來需要面對多大的壓力。簡單的說,壓力或負載可以分解成以下數字:
· 最低用戶數量。(這個程序的使用者的最低數量是多少?通常這個數值可以是每日或沒周或每月的點擊量—當然你也可以分解成一個更可控的數值—每小時訪問量,)
· 并發用戶的總量. (在最高峰時的糟糕狀況是什么?作出相應的計劃. 希望在有壓力的情況下工作正常有效.)
· 請求高峰值. (每秒鐘需要產生多少ASP頁面? 這也許是在衡量一個ASP程序對用戶請求作出反應的能力時的一個最重要的因素.)
為你的程序決定用戶量和并發用戶數通常是很困難的事情,而且是在你的程序在被實際使用之前。尤其是網絡程序。即使是局域網程序也常常要面對用戶增加的問題,所以準確的預計用戶量將會是困難的。當你不知道怎么開始時,最好從基礎的開始:
Internet需要考慮的問題:
· 分析你已有的IIS日志。這個數值會暗示出一些實際的幾率
· 你的站點將會有多流行?流行的站點一天會有100萬或更多的訪問量。不會那么流行?那么假設一些不同的情況?假設你有1000以上的用戶群?你能通過增加更多的硬件設備來解決擴展性問題嗎?或者,你的程序的架構會成為瓶頸嗎?
· 什么是最糟糕的情況?問一下你的朋友這些情況會發生嗎?
Intranet需要考慮的問題:
· 同樣地,分析你已有的IIS日志。
· 這個ASP程序是可以給每個人用的嗎?在公司內部網有多少臺機器?你的系統管理員可以告訴你有關網絡高峰流量的東西嗎?
· 這個程序有特定的用戶對象嗎?只是HR人力資源部?有多少個人力資源部的員工在使用?
· 最糟糕的情況是怎樣的?
如果你不能提前決定適當的負載,那么確定你的程序的最高上限將是你最好的選擇。如果被10個用戶點擊,你能在1秒內產生多少的ASP響應結果?100個呢?1000個呢?10000個呢?記錄你的基準。當你從實際使用中得到你的流量日志顯示你正在接近你的極限時,你將不僅會為你知道你當前的極限是什么,而且你會有時間準備解決的辦法。
介紹測試工具WAS
雖然有很多的壓力測試工具可供選擇,但是在本文,我會主要集中介紹WAS(就是以前所謂的Homer),WAS是當前微軟的標準網頁壓力測試工具。如果你已經對WebCat很熟悉了,你會激動的發現WAS可以很方便地導入現有的WebCat腳本。如果你以前用過InetMonitor,你會激動的發現WAS也是基于GUI的(對于很多使用命令行的WebCat的用戶來說這將會是一個很好的附加特性)。另一個好處是它是免費的,我的一個好朋友常說,“如果是免費的,那么就是我的。”除了它的價格優勢外,這個工具還提供了完整的功能,而且還在不斷地升級更新中。Microsoft.com經常要使用它,所以他們會明白這個工具的重要性。
但是你不需要過多地理會我的話,只管自己去嘗試。我在文章的結尾會提供一個列表,列出一些第三方的壓力測試工具,你可以自己決定選什么工具。底線是你需要一個工具,能夠把你的ASP程序放到負載下,在發布之前測試它。
開始使用WAS
我會教你怎樣第一次使用這個工具來測試一個ASP頁面。我也會介紹怎樣使用署名登錄的測試和多用戶并發訪問的測試,因為這些東西會使初學者一頭霧水。
首先你需要下載和安裝這個工具。你能從下面的鏈接中得到最新版本
http://www.microsoft.com/technet/treeview/default.asp?url=/TechNet/itsolutions/intranet/downloads/webstres.asp. 在這個網站上還會有關于這個工具的入門指導,你可以隨時回去看看。
以下是在安裝時需要注意的幾點:
· 不要把WAS安裝在你的測試目標服務器上,安裝在別的機器以確保得到準確的測試結果。
· 在安裝WAS的機器上需要有ADO2。1以上的版本。如果oledb32.dll的版本不是2.10.3711或以上,ADO會被WAS自動安裝。
· 在安裝后你會有一個完整的安裝日志,默認會在\Program Files\Microsoft Web Application Stress Tool\INSTALL.LOG.
· 如果你已經安裝了舊版本的WAS,更新時會保留數據文件完好。WAS使用Access .mdb文件作為數據存儲文件。WAS的初始.mdb包是WAS.mdb,可以在程序安裝路徑找到。
· WAS在注冊表的HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WAS存儲注冊信息。
在運行我們新安裝的WAS之前,我們創建一個簡單的ASP腳本作為測試頁面。創建一個新的叫做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>
這個ASP腳本將在一個文本文件中插入SessionId及其活動時間,這樣我們可以方便地確認我們的ASP頁面是否在正確的執行。一旦你熟悉了這個工具,你就可以指向你實際的ASP頁面以作真正的測試。 在服務器的恰當的目錄放置你的ASP頁面以使它可以被匿名訪問。我們在后面將會再試署名訪問的測試,但是現在我們需要運行一個最基本的測試。用全路徑URL瀏覽你的頁面,包括你的服務器名。例如,一個完整的URL看起來像http://MyServer/MyVirtualDirectory/MyASPPage.asp。一旦你能成功地瀏覽你的ASP頁面(務必檢查MyFile.txt這個文件,這個文件會被程序寫在虛擬目錄的物理位置),你就可以運行WAS做實際的測試了。
當你第一次運行WAS時,將會出現下面的對話框:
Figure 1. Create a new script
雖然其他選項也很誘人,現在我們先選Manual 這項。將來你還可以從菜單的Scripts或在工具攔點取New Script圖標來創建一個新的腳本。
歡迎來到腳本瀏覽界面。左手邊的窗口以樹型結構列出了你的腳本。在右手邊的窗口里你可以修改你的腳本設置。
在左手邊的窗口里的樹狀列表單擊New Script可以激活腳本的瀏覽。在Server輸入框輸入你的服務器的名字。在Script Item的第一項,選擇GET作為你的動作。在PATH輸入你的ASP地址,以虛擬目錄為開始符。見圖Figure 2如下:
分享:ASP中Cache技術的應用ASP從發布至今已經7年了,使用ASP技術已經相當成熟,自從微軟推出了ASP.NET之后就逐漸停止了對ASP版本的更新。但是由于有很多人仍然習慣使用ASP來開發網站,所以,再次我將以一個簡單的例子來說
相關ASP教程:
- 相關鏈接:
- 教程說明:
ASP教程-用著放心 為你的ASP程序作一個負載測試。