WebTestRequest 類別

表示將傳送到 Web 伺服器的 HTTP 要求。

繼承階層架構

System.Object
  Microsoft.VisualStudio.TestTools.WebTesting.WebTestItem
    Microsoft.VisualStudio.TestTools.WebTesting.WebTestRequest

命名空間:  Microsoft.VisualStudio.TestTools.WebTesting
組件:  Microsoft.VisualStudio.QualityTools.WebTestFramework (在 Microsoft.VisualStudio.QualityTools.WebTestFramework.dll 中)

語法

'宣告
<SerializableAttribute> _
Public Class WebTestRequest _
    Inherits WebTestItem
[SerializableAttribute]
public class WebTestRequest : WebTestItem
[SerializableAttribute]
public ref class WebTestRequest : public WebTestItem
[<SerializableAttribute>]
type WebTestRequest =  
    class
        inherit WebTestItem
    end
public class WebTestRequest extends WebTestItem

WebTestRequest 型別會公開下列成員。

建構函式

  名稱 說明
公用方法 WebTestRequest(String) 使用 URL 字串,初始化 WebTestRequest 類別的新執行個體。
公用方法 WebTestRequest(Uri) 使用 WebTestRequest 物件,初始化 Uri 類別的新執行個體。

回頁首

屬性

  名稱 說明
公用屬性 Body 取得或設定這個要求的內容。
公用屬性 BodyBytes 取得與主體相關聯的位元組。
公用屬性 Cache 取得或設定值,指出是否要為此要求模擬瀏覽快取。
公用屬性 ClientCertificates 取得或設定參考,以允許使用者使用 X.509 SSL 憑證進行驗證。
公用屬性 ContentLength 取得要求主體的長度 (以位元組為單位)。
公用屬性 ContentType 取得要求的內容類型。
公用屬性 Cookies 取得 Cookie 集合。
公用屬性 CorrelationExtractionRuleReferences 取得用來與動態參數相互關聯之擷取規則的參考集合。
公用屬性 DependentRequests 取得相依要求的集合。
公用屬性 EncodeRedirectedUrl 取得或設定布林值,這個值表示是否要加密重新導向 URL 的查詢字串參數。
公用屬性 Encoding 取得或設定 Encoding 格式。
公用屬性 ExpectedHttpStatusCode 取得或設定此要求所預期的 HTTP 狀態碼。
公用屬性 ExpectedResponseUrl 取得或設定回應的預期 URL。當預期會重新導向時,這個 URL 可能會與要求 URL 不同。
公用屬性 ExtractionRuleReferences 取得針對要求所定義之擷取規則的參考集合。
公用屬性 FollowRedirects 取得或設定值,指出是否要接受重新導向。
公用屬性 HasCookies 取得值,指出要求是否具有 Cookie。
公用屬性 HasDependentRequests 取得值,指出要求是否具有相依要求。
公用屬性 HasHeaders 取得值,指出要求是否具有 HTTP 標頭。
公用屬性 HasQueryStringParameters 取得值,指出要求是否具有 QueryString 參數。
公用屬性 Headers 取得要求的 HTTP 標頭集合。
公用屬性 IsRedirectFollow 取得值,指出此要求是否是因為接受重新導向而建立的。
公用屬性 ItemId 項目在 Web 效能測試內之以零為起始的序號。 (繼承自 WebTestItem)。
公用屬性 Method 取得或設定要求所使用的方法。
公用屬性 Outcome 取得或設定 Web 效能測試要求的「成功」或「失敗」結果。
公用屬性 ParseDependentRequests 取得或設定值,這個值表示是否要自動擷取於回應內容中找到的相依要求。
公用屬性 QueryStringParameters 取得要求之查詢字串參數的清單。
公用屬性 RecordedCookies 取得與要求一起記錄的 Cookie。
公用屬性 RecordResult 取得或設定值,指出是否要追蹤這項要求的個別統計資料和結果資料。
公用屬性 ReportingName 取得或設定要求的報告名稱。
公用屬性 ResponseTimeGoal 取得或設定特定網頁的回應時間目標。
公用屬性 SendChunked 取得或設定值,指出使用者是否能夠使用區塊 (Chunked) 來傳送要求的內容。
公用屬性 ThinkTime 取得或設定值,這個值表示接收到回應之後要等候的考慮時間。
公用屬性 Timeout 取得或設定值,這個值表示逾時之前等待此要求的時間。
公用屬性 Url 取得或設定用於要求之資源的 URL。
公用屬性 UrlWithQueryString 取得要求所使用之資源的 URL。這包括查詢字串。
公用屬性 ValidationRuleReferences 取得針對要求所定義之驗證規則的參考集合。
公用屬性 Version 取得或設定要求的 HTTP 版本。
公用屬性 WebTestRequestPluginReferences 取得在要求上定義之 Web 效能測試要求外掛程式的參考集合。

回頁首

方法

  名稱 說明
公用方法 Clone 深層複製 (Deep Copy) WebTestRequest 物件。 (覆寫 WebTestItem.Clone()。)
公用方法 Equals 判斷指定的 Object 和目前的 Object 是否相等。 (繼承自 Object)。
受保護的方法 Finalize 允許物件在記憶體回收進行回收之前,嘗試釋放資源並執行其他清除作業。 (繼承自 Object)。
公用方法 GetHashCode 做為特定型別的雜湊函式。 (繼承自 Object)。
公用方法 GetType 取得目前執行個體的 Type。 (繼承自 Object)。
公用方法 InternalSetOutcome 代表由 RequestPlugin 在內部設定的結果。
受保護的方法 MemberwiseClone 建立目前 Object 的淺層複本 (Shallow Copy)。 (繼承自 Object)。
公用方法 RuntimeClone 傳回此物件在執行階段時的複製品。 (繼承自 WebTestItem)。
公用方法 ToString 傳回表示目前物件的字串。 (繼承自 Object)。

回頁首

事件

  名稱 說明
公用事件 ExtractValues ValidateResponse 事件之後發生。
公用事件 PostRequest ValidateResponseExtractValues 事件之後發生。
公用事件 PreRequest 在傳送要求之前發生。
公用事件 PreRequestDataBinding 這個事件是在資料繫結發生之前擲回。
公用事件 ValidateResponse 在接收到回應之後立即發生。
公用事件 ValidateResponseOnPageComplete 在頁面完全載入後擲回這個事件。這是用來檢查回應是否有效。

回頁首

備註

這個類別提供可在 Web 效能測試程式碼中模擬 HTTP 要求的核心功能。 模擬的 HTTP 要求會透過 Visual C# Web 效能測試的 GetRequestEnumerator 方法以及透過 Visual Basic 中之 ThreadedWebTest 所使用的 Run 方法傳回至 Web 效能測試引擎。

此類別可以序列化。

範例

下列 Web 效能測試會抽取表示核取方塊狀態的值,並將這些值加入內容中。

namespace TestProject1
{
    using System;
    using System.Collections.Generic;
    using Microsoft.VisualStudio.TestTools.WebTesting;
    using ClassLibrary2;

    public class MyWebTest : WebTest
    {
        public MyWebTest()
        {
            this.PreAuthenticate = true;
        }

        public override IEnumerator<WebTestRequest> GetRequestEnumerator()
        {
            WebTestRequest request1 = new WebTestRequest("https://localhost/ts");
            ExtractCheckBoxes rule1 = new ExtractCheckBoxes();
            rule1.FindCheckedBoxes = true;
            rule1.ContextParameterName = "CheckedBoxes";
            request1.ExtractValues += new EventHandler
                <ExtractionEventArgs>(rule1.Extract);
            ExtractCheckBoxes rule2 = new ExtractCheckBoxes();
            rule2.FindCheckedBoxes = false;
            rule2.ContextParameterName = "";
            request1.ExtractValues += new EventHandler
                <ExtractionEventArgs>(rule2.Extract);
            yield return request1;
        }
    }
}

以下是繼承自 ThreadedWebTest 的 Web 效能測試程式碼,名為 MyCodedWebTest。 第二個要求會將三個控制項內所包含的表單資訊張貼回伺服器。

Option Strict Off
Option Explicit On

Imports Microsoft.VisualStudio.TestTools.WebTesting
Imports Microsoft.VisualStudio.TestTools.WebTesting.Rules
Imports System
Imports System.Collections.Generic

Namespace TestProject2
    
    Public Class MyCodedWebTest
        Inherits ThreadedWebTest
        
        Public Sub New()
            MyBase.New
            Me.PreAuthenticate = true
            // TODO: specify your proxy below
            Me.Proxy = "myproxy.seattle.corp.northwind.com:80"
        End Sub
        
        Public Overrides Sub Run()
            Dim request1 As WebTestRequest = New WebTestRequest _
                ("https://localhost/MyWebSite")
            request1.ThinkTime = 1
            Dim rule1 As ExtractHiddenFields = New ExtractHiddenFields
            rule1.ContextParameterName = "1"
            AddHandler request1.ExtractValues, AddressOf rule1.Extract
            MyBase.Send(request1)

            Dim request2 As WebTestRequest = New WebTestRequest _
                ("https://localhost/MyWebSite/Default.aspx")
            request2.Method = "POST"
            Dim request2Body As FormPostHttpBody = New FormPostHttpBody
            request2Body.FormPostParameters.Add("__VIEWSTATE", "{{$HIDDEN1" + _
                ".__VIEWSTATE}}")
            request2Body.FormPostParameters.Add("Button1", "Button")
            request2Body.FormPostParameters.Add("TextBox1", "Hello text")
            request2.Body = request2Body
            Dim rule2 As ExtractHiddenFields = New ExtractHiddenFields
            rule2.ContextParameterName = ""
            AddHandler request2.ExtractValues, AddressOf rule2.Extract
            MyBase.Send(request2)
        End Sub
    End Class
End Namespace

執行緒安全

這個型別的任何 Public static (在 Visual Basic 中為 Shared) 成員都具備執行緒安全。並非所有的執行個體成員都是安全執行緒。

請參閱

參考

Microsoft.VisualStudio.TestTools.WebTesting 命名空間

其他資源

Working with Web Tests

Understanding Web Tests