次の方法で共有


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
)

パラメーター

解説

このメソッドには、中核となる抽出機能が含まれます。 このメソッドは、応答からデータを抽出する役割を担います。

継承時の注意

派生クラスでオーバーライドされている場合、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 セキュリティ

  • 直前の呼び出し元に対する完全な信頼。 このメンバーは、部分的に信頼されているコードから使用することはできません。 詳細については、「部分信頼コードからのライブラリの使用」を参照してください。

参照

参照

ExtractionRule クラス

Microsoft.VisualStudio.TestTools.WebTesting 名前空間

その他の技術情報

方法: Web パフォーマンス テストのカスタム抽出規則を作成する