新聞中心
【獨家特稿】在Web性能測試方面,增加了循環(huán)(Loops)和條件(Conditions),讓開發(fā)人員可以為他們的應(yīng)用程序?qū)懗龈鼜?fù)雜,更智能的測試;在負載測試方面,增加了64位代理和控制器,讓測試人員可以更高效地利用可用的硬件資源產(chǎn)生負載。此外,改變了負載測試代理和控制器的許可,提供了更多的靈活性,間接地更節(jié)省成本。

Web測試允許你在你的ASP.NET Web應(yīng)用程序上模擬一個用戶執(zhí)行一組操作 – 通常是一個定義好的用例,然后確認程序的響應(yīng)結(jié)果是否與預(yù)期結(jié)果一致,當你定義好Web測試后,可以將它們組織在一起就構(gòu)成了負載測試,通過負載測試可以查看你的應(yīng)用程序在壓力下的表現(xiàn)。本文將重點介紹如何使用Visual Studio 2010執(zhí)行Web測試,負載測試將在另外一篇文章中介紹。
創(chuàng)建Web測試
Web測試通常是使用IE Web測試工具條創(chuàng)建的,它從頭到尾詳細記錄了測試人員在Web應(yīng)用程序上的點擊動作,本文使用的示例代碼中,我們的Visual Studio測試項目叫做Com.Benday.WebTesting.WebTests,當然你可以在這個項目上點擊右鍵,選擇“新建Web測試”創(chuàng)建一個新的Web測試。
在項目上添加好新的Web測試后,Visual Studio將會打開IE瀏覽器,你將會在瀏覽器中看到Web測試記錄器面板,然后你可以轉(zhuǎn)到任意一個網(wǎng)站,就象平常瀏覽一樣進行操作,你的每一個操作都將被Web測試記錄器記錄下來,如圖1所示。
圖 1 Web測試記錄器記錄下的操作
當你想要記錄的操作執(zhí)行完畢后,點擊“停止”按鈕,返回Visual Studio 2010,你將會在一個*.webtest文件中看到你的操作,如圖2所示。
圖 2 在.webtest文件中的操作記錄
#p#
更復(fù)雜的Web測試
前面錄制的Web測試并沒有太大的實用價值,它僅僅回放了你的原始操作,并沒有檢查返回的值,也不知道你的應(yīng)用程序工作得怎樣,但它是創(chuàng)建更復(fù)雜,更全面Web測試的基礎(chǔ)。
可以使用校驗規(guī)則,提取規(guī)則和Web測試請求中的測試上下文創(chuàng)建更智能的測試,校驗規(guī)則檢查從服務(wù)器返回的HTML,驗證應(yīng)用程序是否如你預(yù)期那樣工作的,提取規(guī)則檢查HTML,提出值,保存在所謂的測試上下文字典結(jié)構(gòu)中,這些值可用于響應(yīng)后面的測試請求,創(chuàng)建動態(tài)的行為和動態(tài)的驗證。
本文所使用的示例代碼中,我提供了一個管理個人信息的Web應(yīng)用程序,每個人的記錄都有姓名,電話號碼,Email地址,加上主鍵ID,其類圖如圖3所示,數(shù)據(jù)庫表結(jié)構(gòu)如圖4所示,在我們的Web應(yīng)用程序中將會使用這個ID值確定顯示和編輯哪個人的記錄。
圖 3 Person類圖
圖 4 Person數(shù)據(jù)庫表結(jié)構(gòu)
假設(shè)你想模擬一群人通過你的Web應(yīng)用程序在數(shù)據(jù)庫中創(chuàng)建個人信息,下面是創(chuàng)建一個新用戶的具體步驟:
1、在瀏覽器中訪問應(yīng)用程序。
2、點擊“創(chuàng)建一個新用戶”。
2.1驗證是否顯示了“創(chuàng)建新用戶”界面。
2.2驗證所有文本輸入框是否都是空白的,以及ID值是否等于-1,如果是-1就表明你是在創(chuàng)建新用戶,如圖5所示。
圖 5 創(chuàng)建新用戶
3、輸入新用戶的信息,如圖6所示。
圖 6 輸入新用戶信息
4、點擊“保存”。驗證ID值是否不再是-1,如果不是-1表明新用戶已經(jīng)創(chuàng)建成功,如圖7所示。
圖 7 用戶創(chuàng)建成功后ID值不再是-1
5、返回人員名單界面,驗證新創(chuàng)建的用戶是否位于列表中,如圖8所示。
圖 8 新創(chuàng)建的用戶位于列表中
6、打開新建用戶的記錄,驗證內(nèi)容與你輸入的是否一致。
#p#
如果使用Web測試記錄器,可以很容易記錄下最基本的操作,但每次新增用戶時,ID值由于是主鍵,因此每次都會發(fā)生變化,這就使得回放操作更復(fù)雜了。
我們首先從第2步開始,增加一個驗證規(guī)則檢查ID值是否等于-1,要做到這一點,你需要知道兩件事:1)哪個Web請求啟動“創(chuàng)建新用戶”頁面,2)顯示ID值的ASP.NET Label控件的名字。
解決這兩個問題最好的辦法是運行Web測試,然后分析其結(jié)果,結(jié)果記錄清晰地記錄了你發(fā)送給Web應(yīng)用程序的請求以及從Web應(yīng)用程序返回的結(jié)果,通過查看HTML內(nèi)容,可以確定每個請求都發(fā)生了什么,使用了哪些Web控件,它們的名字是什么都一清二楚,如圖9所示。
圖 9 點擊響應(yīng)標簽,查看HTML,找出顯示ID信息Label控件的名字
當你知道這個控件的名字 - 在這個例子叫做m_labelId – 也弄清楚了你需要哪個Web請求后,在這個請求上點擊右鍵,選擇“添加驗證規(guī)則”,打開添加驗證規(guī)則對話框,如圖10所示。
圖 10 給請求添加驗證規(guī)則
#p#
在Visual Studio 2010中,你可以使用標簽內(nèi)文本(Tag Inner Text)驗證規(guī)則讀取m_labelId控件的值,如果你使用的是Visual Studio 2008,你需自己編寫驗證規(guī)則獲取它的值。
接下來我們創(chuàng)建一個規(guī)則,確保保存成功后,人員ID值不等于-1,這一次可以使用查找文本(Find Text)規(guī)則,將發(fā)現(xiàn)文本則通過(Pass If Text Found)屬性設(shè)為否(False),如圖11所示,如果你發(fā)現(xiàn)標簽控件的文本和值是-1,規(guī)則驗證就失敗,表明未保存成功。
圖 11 給保存按鈕增加文本發(fā)現(xiàn)驗證規(guī)則
你可能也想給這個請求增加一個提取規(guī)則,提取出m_labelId的值,便于后面的測試使用,對于這個要求,可以使用標簽內(nèi)文本提取規(guī)則(Tag Inner Text Extraction Rule)提取m_labelId的值,然后將它放入名叫PersonId的上下文參數(shù)中,如圖12所示。
圖 12 給人員PersonId值添加提取規(guī)則
#p#
Web測試參數(shù)
當你提取到你想要的值,保存在測試上下文后,可以利用Web測試參數(shù)將測試上下文中的值插入到Web測試請求中,在我們的Web應(yīng)用程序示例中,EditPerson.aspx頁面使用了一個名叫ID的查詢字符串參數(shù)載入人員信息。
當你記錄Web測試時,它會保存你使用到的值,因此當你重新載入這個人的信息時,你會發(fā)現(xiàn)在查詢字符串參數(shù)的值是一個硬編碼的值,如圖13所示。
圖 13 查詢字符串參數(shù)的值被硬編碼了
如果你點擊Id參數(shù),你會看到它的屬性對話框,在“值”屬性上,你可以點擊下拉列表看到所有的數(shù)據(jù)上下文值,你需要做的是選擇其中的PersonId上下文值,如圖14所示,之后查詢字符串參數(shù)的值就是動態(tài)填充的了。
圖 14 將PersonId 上下文值綁定給Id查詢字符串參數(shù)
參數(shù)化有一個最佳實踐應(yīng)該在所有Web測試中使用 – 參數(shù)化Web服務(wù)器地址,特別是你打算在最后的負載測試中使用這些Web測試時,幸運的是,在Web測試編輯器中有一個按鈕提供了這個功能,如圖15所示,參數(shù)化Web服務(wù)器地址后,所有Web測試請求都會轉(zhuǎn)移到參數(shù)化后的Web服務(wù)器地址。
圖 15 參數(shù)化Web服務(wù)器按鈕
在Web測試的底部你應(yīng)該看到有一個上下文參數(shù)(Context Parameters)節(jié)點,展開它就能看到測試期間引用的所有Web服務(wù)器,如圖16所示,這個功能非常有用,因為你運行Web測試的環(huán)境與運行負載測試的環(huán)境可能不同,另外,你可能將Web測試和負載測試與每日構(gòu)建關(guān)聯(lián)起來了,服務(wù)器的變化取決于你的構(gòu)建類型,即使你現(xiàn)在不需要它,你也會喜歡它的靈活性。
圖 16 在測試上下文中的參數(shù)化Web服務(wù)器
#p#
數(shù)據(jù)源和數(shù)據(jù)綁定
用數(shù)據(jù)上下文值實現(xiàn)參數(shù)化僅僅是構(gòu)建復(fù)雜的Web測試和負載測試的開始,你也可以給Web測試附加一個包含測試數(shù)據(jù)的數(shù)據(jù)源,對于數(shù)據(jù)源也可以運用參數(shù)化思想,每執(zhí)行一次Web測試換一行數(shù)據(jù)。
獲得一個數(shù)據(jù)源最簡單的方法是創(chuàng)建一個用逗號分隔的值組成的CSV文件,并將它導(dǎo)入到你的Visual Studio測試項目,如圖17所示。
圖 17 逗號分隔的數(shù)據(jù)源文件
導(dǎo)入這個CSV文件后,在Web測試上點擊右鍵,選擇“添加數(shù)據(jù)源”,如圖18所示,啟動添加數(shù)據(jù)源向?qū)?,如圖19所示。
圖 18 給Web測試添加一個數(shù)據(jù)源
圖 19 新建測試數(shù)據(jù)源向?qū)υ捒?/p>
#p#
當你配置好數(shù)據(jù)源后,就可以使用參數(shù)綁定將數(shù)據(jù)行值附加給你的Web測試請求,例如,如果你想使用數(shù)據(jù)源的值填充“創(chuàng)建新用戶”Web頁面中的字段,你可以將每個textbox控件的表單POST參數(shù)綁定到數(shù)據(jù)源中的字段,如圖20,21所示。
圖 20 將m_textFirstName POST參數(shù)綁定到數(shù)據(jù)源的FirstName列
圖 21 數(shù)據(jù)綁定表單POST參數(shù)
當你運行數(shù)據(jù)驅(qū)動的Web測試時,你會看到測試每執(zhí)行一次就使用數(shù)據(jù)源中的一行數(shù)據(jù),如圖22所示,這樣不僅可以創(chuàng)建一個動態(tài)的測試,也可以在大數(shù)據(jù)集上運行測試。
圖 22 使用數(shù)據(jù)源執(zhí)行多次迭代Web測試
小結(jié)
Web性能測試是構(gòu)成負載測試的基礎(chǔ),是測試你的Web應(yīng)用程序確保質(zhì)量和性能的有效方法,由數(shù)據(jù)驅(qū)動的Web性能測試使負載測試更接近真實環(huán)境,數(shù)據(jù)源的每一行數(shù)據(jù)由負載測試代理用來模擬用戶執(zhí)行類似的用例,但每次用到的數(shù)據(jù)都不同,如果每次發(fā)給服務(wù)器的數(shù)據(jù)都是相同,這樣的測試不算真正意義上的測試。
Visual Studio 2010旗艦版中增強的Web測試和負載測試功能為減少Q(mào)A周期提供了一個極好的方法,可以快速地確定你的應(yīng)用程序是否如預(yù)期那樣工作,如果你從Team Foundation Server 2010自動構(gòu)建執(zhí)行測試,那么每次構(gòu)建時都可以執(zhí)行這些高質(zhì)量的測試。
本文引用的示例程序全部源代碼可從http://visualstudiomagazine.com/~/media/ECG/visualstudiomagazine/Code%20Download/2010/06/BenDay_WebTesting_vs2010.ashx下載。
原文名:Web Performance Testing with Visual Studio 2010
【編輯推薦】
- Visual Studio 2010中Xaml開發(fā)格式設(shè)置技巧
- Visual Studio 2010中手動添加圖片文件
- 使用Visual Studio 2010統(tǒng)一管理數(shù)據(jù)庫對象
- Visual Studio 2010 TFS探索之旅
- Visual Studio 2010更改顏色背景的方法
本文題目:WEB性能測試:你應(yīng)該帶上VisualStudio2010
當前鏈接:http://fisionsoft.com.cn/article/djcigdo.html


咨詢
建站咨詢
