ExtractionRule.Extract (Método)
Cuando se reemplaza en una clase derivada, este método extrae información de un objeto HtmlDocument y la sitúa en WebTestContext.
Espacio de nombres: Microsoft.VisualStudio.TestTools.WebTesting
Ensamblado: Microsoft.VisualStudio.QualityTools.WebTestFramework (en Microsoft.VisualStudio.QualityTools.WebTestFramework.dll)
Sintaxis
'Declaración
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
)
Parámetros
- sender
Tipo: System.Object
Origen del evento.
- e
Tipo: Microsoft.VisualStudio.TestTools.WebTesting.ExtractionEventArgs
Objeto ExtractionEventArgs que contiene los datos del evento.
Comentarios
Este método contiene la funcionalidad de extracción central.Este método es el responsable de la extracción de los datos de la respuesta.
Notas para los herederos
Cuando se reemplaza en una clase derivada, el método Extract agrega el valor extraído al objeto WebTestContext proporcionado por e.WebTest.Context.El nombre del valor agregado al objeto WebTestContext se establece con la propiedad ContextParameterName.Si la extracción se realiza correctamente, e.Success se establece en true; de lo contrario, se debe establecer en false.
Ejemplos
A continuación se muestra una prueba de rendimiento web que utiliza la regla de extracción personalizada ExtractCheckBoxes.El código para ello se encuentra en ExtractionRule.El código comprueba la existencia de casillas en el objeto HtmlDocument proporcionado por WebTestResponse contenido en ExtractionEventArgs.Los resultados se envían al motor de pruebas.
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;
}
}
}
La prueba de rendimiento web codificada siguiente se llama MyCodedWebTest y hereda de ThreadedWebTest.Esta prueba extrae los campos ocultos.La segunda solicitud expone la información de formulario que contiene en tres controles del servidor.
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
Seguridad de .NET Framework
- Plena confianza para el llamador inmediato. Un código de confianza parcial no puede utilizar este miembro. Para obtener más información, vea Utilizar bibliotecas de código que no es de plena confianza.
Vea también
Referencia
Microsoft.VisualStudio.TestTools.WebTesting (Espacio de nombres)
Otros recursos
Cómo: Crear una regla de extracción personalizada para una prueba de rendimiento web