ExtractionRule.Extract-Methode
Wenn diese Methode in einer abgeleiteten Klasse überschrieben wird, werden durch diese Informationen aus HtmlDocument extrahiert und in WebTestContext eingefügt.
Namespace: Microsoft.VisualStudio.TestTools.WebTesting
Assembly: Microsoft.VisualStudio.QualityTools.WebTestFramework (in Microsoft.VisualStudio.QualityTools.WebTestFramework.dll)
Syntax
'Declaration
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
)
Parameter
- sender
Typ: System.Object
Die Quelle des Ereignisses.
- e
Typ: Microsoft.VisualStudio.TestTools.WebTesting.ExtractionEventArgs
Eine Instanz der ExtractionEventArgs-Klasse, die die Ereignisdaten enthält.
Hinweise
Diese Methode enthält die Basisextraktionsfunktionalität. Diese Methode dient dem Extrahieren von Daten aus der Antwort.
Hinweise zur Vererbung
Wenn die Extract-Methode in einer abgeleiteten Klasse überschrieben wird, wird durch diese der extrahierte Wert WebTestContext, bereitgestellt durch e.WebTest.Context, hinzugefügt. Der Name des WebTestContext hinzugefügten Werts wird durch die ContextParameterName-Eigenschaft festgelegt. Wenn die Extraktion erfolgreich ist, wird e.Success auf true gesetzt. Andernfalls sollte der Wert auf false gesetzt werden.
Beispiele
Im Folgenden wird ein Webleistungstest dargestellt, bei dem die benutzerdefinierte ExtractCheckBoxes-Extraktionsregel verwendet wird. Der zugehörige Code befindet sich unter ExtractionRule. Durch den Code wird überprüft, ob in HtmlDocument Kontrollkästchen vorhanden sind, die von der in ExtractionEventArgs enthaltenen WebTestResponse bereitgestellt werden. Die Ergebnisse werden dem Testmodul übergeben.
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;
}
}
}
Im folgenden Beispiel wurde ein codierter Webleistungstest mit der Bezeichnung MyCodedWebTest erstellt, der von ThreadedWebTest erbt. Durch diesen Test werden ausgeblendete Felder extrahiert. Die zweite Anforderung sendet Formularinformationen, die in drei Steuerelementen enthalten sind, zurück an den Server.
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-Sicherheit
- Volle Vertrauenswürdigkeit für den unmittelbaren Aufrufer. Dieser Member kann von nur teilweise vertrauenswürdigem Code nicht verwendet werden. Weitere Informationen finden Sie unter Verwenden von Bibliotheken aus teilweise vertrauenswürdigem Code.
Siehe auch
Referenz
Microsoft.VisualStudio.TestTools.WebTesting-Namespace
Weitere Ressourcen
How to: Create a Custom Extraction Rule for a Web Performance Test