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 | 取得用來與動態參數相互關聯之擷取規則的參考集合。 | |
DependentGuid | ||
DependentRequests | 取得相依要求的集合。 | |
EncodeRedirectedUrl | 取得或設定布林值,這個值表示是否要加密重新導向 URL 的查詢字串參數。 | |
Encoding | 取得或設定 Encoding 格式。 | |
ExpectedHttpStatusCode | 取得或設定此要求所預期的 HTTP 狀態碼。 | |
ExpectedResponseUrl | 取得或設定回應的預期 URL。當預期會重新導向時,這個 URL 可能會與要求 URL 不同。 | |
ExtractionRuleReferences | 取得針對要求所定義之擷取規則的參考集合。 | |
FollowRedirects | 取得或設定值,指出是否要接受重新導向。 | |
Guid | ||
HasCookies | 取得值,指出要求是否具有 Cookie。 | |
HasDependentRequests | 取得值,指出要求是否具有相依要求。 | |
HasHeaders | 取得值,指出要求是否具有 HTTP 標頭。 | |
HasQueryStringParameters | 取得值,指出要求是否具有 QueryString 參數。 | |
Headers | 取得要求的 HTTP 標頭集合。 | |
IgnoreHttpStatusCode | ||
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)。 | |
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 要求傳回至 Web 效能測試引擎會 Visual C# Web 效能測試的 GetRequestEnumerator 方法和使用 ThreadedWebTest 用於 Visual Basic的 Run 方法。
此類別可以序列化。
範例
下列 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.adatum.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 命名空間