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 | 在 ValidateResponse 和 ExtractValues 事件之後發生。 | |
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 命名空間