Metodo ExtractionRule.Extract
Questo metodo, quando ne viene eseguito l'override in una classe derivata, estrae informazioni da una classe HtmlDocument e lo posiziona in WebTestContext.
Spazio dei nomi: Microsoft.VisualStudio.TestTools.WebTesting
Assembly: Microsoft.VisualStudio.QualityTools.WebTestFramework (in Microsoft.VisualStudio.QualityTools.WebTestFramework.dll)
Sintassi
'Dichiarazione
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
)
Parametri
- sender
Tipo: System.Object
Origine dell’evento.
- e
Tipo: Microsoft.VisualStudio.TestTools.WebTesting.ExtractionEventArgs
Oggetto ExtractionEventArgs contenente i dati dell'evento.
Note
Questo metodo contiene la funzionalità di base di estrazione. Questo metodo ha la responsabilità di estrarre i dati dalla risposta.
Note per gli eredi
Il metodo Extract, quando ne viene eseguito l'override in una classe derivata aggiunge il valore estratto a WebTestContext fornito da e.WebTest.Context. Il nome del valore aggiunto a WebTestContext viene impostato con la proprietà ContextParameterName. Se l'estrazione ha esito positivo, e.Success viene impostato su true; in caso contrario dovrà essere impostata su false.
Esempi
Di seguito viene illustrato un test delle prestazioni Web che utilizza la regola di estrazione personalizzata ExtractCheckBoxes. Il codice relativo è disponibile in ExtractionRule. Il codice verifica l'esistenza delle caselle di controllo nel documento HtmlDocument fornito dalla rispostaWebTestResponse contenuta in ExtractionEventArgs. I risultati sono generati nel motore dei 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;
}
}
}
Di seguito viene riportato un test delle prestazioni Web codificato chiamato MyCodedWebTest che eredita dalla classe ThreadedWebTest. Questo test consente di estrarre i Campi nascosti. La seconda richiesta invia nuovamente le informazioni dei form contenute nei tre controlli al 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
Sicurezza di .NET Framework
- Attendibilità totale per il chiamante immediato. Impossibile utilizzare questo membro in codice parzialmente attendibile. Per ulteriori informazioni, vedere Utilizzo di librerie da codice parzialmente attendibile.
Vedere anche
Riferimenti
Spazio dei nomi Microsoft.VisualStudio.TestTools.WebTesting
Altre risorse
Procedura: creare una regola di estrazione personalizzata per un test delle prestazioni Web