ExtractionRule.Extract, méthode
En cas de substitution dans une classe dérivée, cette méthode extrait des informations d'un HtmlDocument et les place dans WebTestContext.
Espace de noms : Microsoft.VisualStudio.TestTools.WebTesting
Assembly : Microsoft.VisualStudio.QualityTools.WebTestFramework (dans Microsoft.VisualStudio.QualityTools.WebTestFramework.dll)
Syntaxe
'Déclaration
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
)
Paramètres
- sender
Type : System.Object
Source de l'événement.
- e
Type : Microsoft.VisualStudio.TestTools.WebTesting.ExtractionEventArgs
ExtractionEventArgs qui contient les données de l'événement.
Notes
Cette méthode contient les fonctionnalités d'extraction principales. Cette méthode est chargée d'extraire les données de la réponse.
Remarques à l'attention des héritiers
En cas de substitution dans une classe dérivée, la méthode Extract ajoute la valeur extraite au WebTestContext fourni par e.WebTest.Context. Le nom de la valeur ajoutée à WebTestContext est défini avec la propriété ContextParameterName. Si l'extraction réussit, e.Success a la valeur true ; sinon, il doit avoir la valeur false.
Exemples
Le test de performances Web suivant utilise la règle d'extraction personnalisée ExtractCheckBoxes. Le code correspondant se trouve dans ExtractionRule. Le code vérifie l'existence de cases à cocher dans le HtmlDocument fourni par le WebTestResponse qui est contenu dans ExtractionEventArgs. Les résultats sont fournis au moteur de test.
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;
}
}
}
Le test de performances Web codé suivant s'appelle MyCodedWebTest et hérite de ThreadedWebTest. Ce test extrait des champs masqués. La deuxième demande publie des informations de formulaire contenues dans trois contrôles sur le serveur.
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
Sécurité .NET Framework
- Confiance totale accordée à l'appelant immédiat. Ce membre ne peut pas être utilisé par du code d'un niveau de confiance partiel. Pour plus d'informations, consultez Utilisation de bibliothèques à partir de code d'un niveau de confiance partiel.
Voir aussi
Référence
Microsoft.VisualStudio.TestTools.WebTesting, espace de noms
Autres ressources
Comment : créer une règle d'extraction personnalisée pour un test de performances de site Web