http://www.sina.com.cn 2005年06月22日 09:12 天極yesky
作者: 陶剛
在編寫(xiě)ASP.NET應用程序的時(shí)候,你會(huì )花費多長(cháng)的時(shí)間來(lái)考慮性能的問(wèn)題?很不幸,大多數開(kāi)發(fā)者都對性能問(wèn)題感到很后悔。性能的規劃和設計真的需要放在前面和中心位置。你需要考慮自己的目標,并且確保把良好的性能作為目標之一;接著(zhù)你需要評估自己的程序,評估的方面越多,改善性能的機會(huì )就越大。
在本文中我將解釋
微軟Visual Studio企業(yè)
版中包含的一個(gè)重要工具:微軟Application Center Test。嚴肅的Web開(kāi)發(fā)者都應該把這個(gè)工具放在自己的工具包中。
Application Center Test
在離開(kāi)微軟之前,我參加了12個(gè)城市的ASP.NET說(shuō)明會(huì )。其中一個(gè)覆蓋了性能問(wèn)題,并且給很多開(kāi)發(fā)者介紹了微軟Application Center Test。這個(gè)工具總是生成大量的有趣的信息,我對它有很多疑問(wèn)。
你會(huì )發(fā)現Application Center Test是Application Center(可以在舊的MSDN CD或DVD中找到)的一部分,或者安裝在Visual Studio .NET企業(yè)版的Visual Studio .NET 2003\Visual Studio .NET Enterprise Features目錄下面。當你第一次打開(kāi)Application Center Test的時(shí)候,你可以看到一個(gè)用于導航可用的測試、結果和用戶(hù)的樹(shù)視圖。首先,我希望顯示出很容易建立測試。
使用Application Center Test
首先,建立一個(gè)簡(jiǎn)單的Web應用程序。例如,我將使用圖1所示的頁(yè)面(請注意,我使用了一些聯(lián)機編寫(xiě)ASP.NET頁(yè)面的小技巧,你不需要編寫(xiě)完整的Page_Load事件聲明)。
示例Web應用程序
<%@ Page Language="C#" %>
<%@ Import Namespace="System.Data " %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace=" System.Configuration" %>
<script runat="server">
public void Page_Load() {
using(SqlConnection connection =
new SqlConnection(ConfigurationSettings.AppSettings["Northwind"]))
{
SqlCommand command = new SqlCommand("SELECT * FROM Products", connection);
connection.Open();
DataGrid1.DataSource = command.ExecuteReader();
DataGrid1.DataBind();
}
}
</script>
<form runat="server">
<asp:DataGrid id="DataGrid1" runat="server" />
</form>
上面的代碼雖然不是推薦的用于構造應用程序的方法,但是它也足夠簡(jiǎn)單,我們能夠在它上面執行一些基本的測試。在Web
瀏覽器中打開(kāi)這個(gè)頁(yè)面會(huì )返回一個(gè)填充了的數據表格,它顯示為HTML表格。
現在你知道這個(gè)頁(yè)面可以工作了,把鏈接復制到剪貼板上,你還需要使用它的。在我的計算機上這個(gè)例子的鏈接是http://localhost/blackbelt/outputcache/test.aspx。
下一步,導航到Application Center Test,右鍵點(diǎn)擊"Tests(測試)"并選擇"New Test(新建測試)"。它會(huì )打開(kāi)"新建測試向導"歡迎頁(yè)面。點(diǎn)擊"下一步"選擇新測試的源代碼,并選中"記錄新測試"。再次點(diǎn)擊"下一步"以選擇測試類(lèi)型,提示選擇腳本語(yǔ)言(我們不修改默認值)的時(shí)候,點(diǎn)擊"下一步",出現了圖1所示的界面:
圖1:新建測試向導
"記錄測試"使Application Center Test易于使用。點(diǎn)擊"開(kāi)始記錄"會(huì )打開(kāi)一個(gè)新的瀏覽器實(shí)例。不要在地址欄中輸入URL(應該為about:blank)。我們的操作是,在這個(gè)新的瀏覽器實(shí)例中選擇Tools | Internet選擇,并瀏覽"連接"屬性頁(yè)。接著(zhù)點(diǎn)擊"局域網(wǎng)設置"按鈕,會(huì )看到圖2所示的界面:
圖2:連接設置
你會(huì )發(fā)現代理服務(wù)器(proxy)設置信息被填充了,并且與正常值不同。這是因為Application Center Test打開(kāi)了一個(gè)新的瀏覽器實(shí)例并指示它使用Application Center Test運行的專(zhuān)用代理服務(wù)器。經(jīng)過(guò)瀏覽器的任何請求都會(huì )被Application Center Test代理捕捉到。
為了完成測試,請關(guān)閉瀏覽器對話(huà)框并把用于測試的ASP.NET頁(yè)面的鏈接粘貼到地址欄中。點(diǎn)擊瀏覽器的"轉到"按鈕或直接按下回車(chē)鍵,再次出現了數據表格。下一步,關(guān)閉瀏覽器,你可能看到與圖3類(lèi)似的信息:
圖3:捕捉到的請求
上面的對話(huà)框中的請求的詳細信息部分現在被Application Center Test代理捕捉到的請求所填充了。這也是瀏覽器發(fā)送的HTTP請求?,F在點(diǎn)擊"停止記錄",接著(zhù)點(diǎn)擊"下一步"。你會(huì )得到一個(gè)提示,需要給該測試輸入一個(gè)名稱(chēng)(我用的是"My Test"),接著(zhù)你可以點(diǎn)擊"完成"關(guān)閉向導。
恭喜你!你現在是一個(gè)性能測試工程師了--很容易,對嗎?
你還可以選擇很多其它的設置信息和配置選項。你右鍵點(diǎn)擊"測試"列表中的"My Test"節點(diǎn)并選擇"屬性" 可以看到這些設置。在這些選項中你可以模擬多個(gè)瀏覽器、多個(gè)用戶(hù)、"熱身"時(shí)間的參數(不會(huì )被報告其結果)以及測試的持續時(shí)間。你可以以后研究這些設置并閱讀一些討論測試原理和測試策略的文章。我們不在細節上花費太多時(shí)間,直接運行測試吧。