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
イベントのソース。
- e
型 : Microsoft.VisualStudio.TestTools.WebTesting.ExtractionEventArgs
イベント データを格納している ExtractionEventArgs。
解説
このメソッドには、中核となる抽出機能が含まれます。このメソッドは、応答からデータを抽出する役割を担います。
継承時の注意
派生クラスでオーバーライドされている場合、Extract メソッドは、抽出した値を e.WebTest.Context によって提供された WebTestContext に追加します。WebTestContext に追加される値の名前は、ContextParameterName プロパティで設定されます。抽出が成功した場合、e.Success が true に設定されます。それ以外の場合は false に設定されます。
例
カスタム抽出規則 ExtractCheckBoxes を使用する Web パフォーマンス テストを次に示します。これのコードは、ExtractionRule に格納されています。このコードは、ExtractionEventArgs に格納されている WebTestResponse によって提供される 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("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 を継承する、MyCodedWebTest という名前のコード化された Web パフォーマンス テストを次に示します。このテストは、隠しフィールドを抽出します。2 番目の要求は、3 つのコントロール内に格納されているフォーム情報をサーバーにポストバックします。
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 _
("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
.NET Framework セキュリティ
- 直前の呼び出し元に対する完全な信頼。このメンバーは、部分的に信頼されているコードから使用することはできません。詳細については、「部分信頼コードからのライブラリの使用」を参照してください。
参照
関連項目
Microsoft.VisualStudio.TestTools.WebTesting 名前空間