Partilhar via


Método ExtractionRule.Extract

Quando substituído em uma classe derivada, esse método extrai informações de HtmlDocument e a colocará em 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: Object

    A origem do evento.

Comentários

Este método contém a funcionalidade de extração de núcleo. Esse método tem responsabilidade de extrair os dados da resposta.

Observações para herdeiros

Quando substituído em uma classe derivada, o método de Extract adiciona o valor extraído para WebTestContext fornecido por e.WebTest.Context. O nome do valor adicionado a WebTestContext é definido com a propriedade de ContextParameterName . Se a extração é um êxito, e.Success está definido como true; se não deve ser definida como false.

Exemplos

O seguinte é um teste de desempenho da Web que usa a regra personalizada de extração de ExtractCheckBoxes. O código para esse pode ser encontrado em ExtractionRule. As verificações de código da existência das caixas de seleção em HtmlDocument fornecidos por WebTestResponse contida em ExtractionEventArgs. Os resultados são rendidos ao 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;
        }
    }
}

O seguinte é um teste de desempenho codificado MyCodedWebTest chamado da Web que herde de ThreadedWebTest. Esse teste extrai campos ocultos. A segunda solicitação envia as informações do formulário contida em três controles de volta ao 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

Segurança do .NET Framework

Consulte também

Referência

ExtractionRule Classe

Namespace Microsoft.VisualStudio.TestTools.WebTesting

Outros recursos

Codificando uma regra de extração personalizada para um teste de desempenho para Web