ExtractionRule.Extract 方法
在衍生類別中發生覆寫時,這個方法會從 HtmlDocument 擷取資訊,並將它放置到 WebTestContext。
命名空間: Microsoft.VisualStudio.TestTools.WebTesting
組件: Microsoft.VisualStudio.QualityTools.WebTestFramework (在 Microsoft.VisualStudio.QualityTools.WebTestFramework.dll 中)
語法
'宣告
Public MustOverride Sub Extract ( _
sender As Object, _
e As ExtractionEventArgs _
)
public abstract void Extract(
Object sender,
ExtractionEventArgs e
)
public:
virtual void Extract(
Object^ sender,
ExtractionEventArgs^ e
) abstract
abstract Extract :
sender:Object *
e:ExtractionEventArgs -> unit
public abstract function Extract(
sender : Object,
e : ExtractionEventArgs
)
參數
- sender
型別:System.Object
事件的來源。
備註
這個方法包含核心擷取功能。 這個方法的職責是從回應中擷取資料。
繼承者注意事項
在衍生類別中發生覆寫時,Extract 方法會將擷取值加入至由 e.WebTest.Context 所提供的 WebTestContext。 加入至 WebTestContext 的值名稱是以 ContextParameterName 屬性所設定。 如果擷取成功,e.Success 會設定為 true,否則為 false。
範例
以下是使用 ExtractCheckBoxes 自訂擷取規則的 Web 效能測試。 其程式碼可在 ExtractionRule 找到。 此程式碼會檢查 WebTestResponse (包含在 ExtractionEventArgs 內) 所提供的 HtmlDocument 中是否有核取方塊。 其結果會轉換至測試引擎。
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("http://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
Me.Proxy = "myproxy.com:80"
End Sub
Public Overrides Sub Run()
Dim request1 As WebTestRequest = New WebTestRequest _
("http://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 _
("http://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
.NET Framework 安全性
- 完全信任立即呼叫者。這個成員無法供部分信任的程式碼使用。如需詳細資訊,請參閱從部分受信任程式碼使用程式庫。
請參閱
參考
Microsoft.VisualStudio.TestTools.WebTesting 命名空間