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 名前空間