Método ExtractionRule.Extract
Quando substituído em uma classe derivada, este método extrai informações de um HtmlDocument e coloca-o para o WebTestContext.
Namespace: Microsoft.VisualStudio.TestTools.WebTesting
Assembly: Microsoft.VisualStudio.QualityTools.WebTestFramework (em Microsoft.VisualStudio.QualityTools.WebTestFramework.dll)
Sintaxe
'Declaração
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
A origem do evento.
- e
Tipo: Microsoft.VisualStudio.TestTools.WebTesting.ExtractionEventArgs
Um ExtractionEventArgs que contém os dados do evento.
Comentários
Esse método contém a funcionalidade de extração do núcleo. Este método tem a responsabilidade de extração de dados de resposta.
Observações para herdeiros
Quando substituído em uma classe derivada, o Extract método adiciona o valor extraído para a WebTestContext fornecido por e.WebTest.Context. O nome do valor adicionado para o WebTestContext está definido com o ContextParameterName propriedade. Se a extração é um sucesso, e.Success for definido como true; Caso contrário, ele deve ser definido false.
Exemplos
A seguir é um teste de desempenho da Web que usa a regra de extração personalizada ExtractCheckBoxes. O código para isso pode ser encontrado em ExtractionRule. O código verifica a existência de caixas de seleção a HtmlDocument fornecida pelo WebTestResponse que está contida na ExtractionEventArgs. Os resultados são produzidos para o mecanismo de teste.
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;
}
}
}
A seguir está um teste de desempenho da Web codificado chamado MyCodedWebTest que herda de ThreadedWebTest. Esse teste extrai os campos ocultos. A segunda solicitação posta contidas em três controles de volta para o servidor de informações de formulário.
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
Segurança do .NET Framework
- Confiança total para o chamador imediato. O membro não pode ser usado por código parcialmente confiável. Para obter mais informações, consulte Usando bibliotecas de código parcialmente confiáveis.
Consulte também
Referência
Namespace Microsoft.VisualStudio.TestTools.WebTesting
Outros recursos
Como: Criar uma regra de extração personalizada para um teste de desempenho de Web