建立 Web 測試回調的步驟如下:
1.建立名為 WebTestFramework 的新類庫項目。
2.向Microsoft.VisualStudio.QualityTools.UnitTestFramework 和 Microsoft.VisualStudio.QualityTools.WebTestFramework 添加引用。
3.將從 Microsoft.VisualStudio.QualityTools.WebTestFramework.WebTestPlugin 派生的新類的名稱定義為 ValidationRuleXHTML。 在VS2005正式版中從 Microsoft.VisualStudio.QualityTools.WebTestFramework.WebTestPlugin下的Microsoft.VisualStudio.TestTools.WebTesting派生。
4.執行抽象方法 PreWebTest() 和 PostWebTest()。
最後這兩個方法符合標準事件簽名,sender 為第一個參數,PreWebTestEventArgs/PostWebTestEventArgs 為第二個參數。以下是樣本 Web 測試外掛程式類,說明了如何建立 XHTML 驗證程式。
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.VisualStudio.TestTools.WebTesting;
namespace WebTestFramework
{
public class ValidationRuleXHTML :WebTestPlugin
{
public override void PostWebTest(object sender, PostWebTestEventArgs args)
{
// 不需要 PostWebTest 處理。已實現
// 因為它是基類中的抽象方法。
}
void WebTestPostRequest(object sender, PostRequestEventArgs args)
{
// 1. 從 args.Response.ResponseBody 檢索
// ResponseBody。
// 2. 驗證 ResponseBody。
// 3. 如果 HTML 是無效 XHTML,則引發異常。
// 確保儘可能將異常資訊設定為
// 描述資訊。
}
public override void PreWebTest(object sender, PreWebTestEventArgs args)
{
// 為測試中的每個 PostRequest 註冊
// 事件回調。
args.WebTest.PostRequest += WebTestPostRequest;
}
}
}
在本樣本中,PreWebTest() 為 PostRequest 事件註冊委託 (WebTestPostRequest())。這樣,每次 Web 測試引擎處理請求時,請求都將調用註冊的委託接聽程式。委託的 PostRequestEventArgs 參數包括 WebTest 屬性,用於提供 stringResponseBody 屬性。當檢查 XHTML 時,最後這個屬性將提供對響應本文的所需訪問。對於 XML 驗證程式之類的對象,請注意一點,那就是當運行負載測試時,它們會佔用大部分負載產生容量。驗證測試需要大量資源,在大量使用時應保留在負載測試情節中未使用的單元測試中。