Partilhar via


Classe ExtractionRule

Classe base usada para definir regras para obter dados de uma resposta Web que é gerada por um teste de desempenho da Web.

Hierarquia de herança

Object
  Microsoft.VisualStudio.TestTools.WebTesting.ExtractionRule
    Mais...

Namespace:  Microsoft.VisualStudio.TestTools.WebTesting
Assembly:  Microsoft.VisualStudio.QualityTools.WebTestFramework (em Microsoft.VisualStudio.QualityTools.WebTestFramework.dll)

Sintaxe

'Declaração
Public MustInherit Class ExtractionRule
public abstract class ExtractionRule
public ref class ExtractionRule abstract
[<AbstractClass>]
type ExtractionRule =  class end
public abstract class ExtractionRule

O tipo ExtractionRule expõe os membros a seguir.

Construtores

  Nome Descrição
Método protegido ExtractionRule Inicializa uma nova instância da classe ExtractionRule.

Superior

Propriedades

  Nome Descrição
Propriedade pública ContextParameterName Obtém ou define o nome do contexto da propriedade extraída.
Propriedade pública RuleDescription Obsoleta. Esse método é usado.Use DisplayNameAttribute na classe para definir uma descrição para a regra.
Propriedade pública RuleName Obsoleta. Esse método é usado.Use DisplayNameAttribute na classe para definir um nome para exibição para a regra.

Superior

Métodos

  Nome Descrição
Método público Equals Determines whether the specified object is equal to the current object. (Herdado de Object.)
Método público Extract Quando substituído em uma classe derivada, esse método extrai informações de HtmlDocument e a colocará em WebTestContext.
Método protegido Finalize Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Herdado de Object.)
Método público GetHashCode Serves as the default hash function. (Herdado de Object.)
Método público GetType Gets the Type of the current instance. (Herdado de Object.)
Método protegido MemberwiseClone Creates a shallow copy of the current Object. (Herdado de Object.)
Método público ToString Returns a string that represents the current object. (Herdado de Object.)

Superior

Comentários

A classe de ExtractionRule deve ser herdada por qualquer regra de extração se o usuário é gravada ou internas. As regras de extração que são associadas com a definição de solicitação são executadas depois que uma resposta foi recebida, e os resultados da extração são adicionadas a WebTestContext.

Observações para herdeiros

Quando você herda de ExtractionRule, você deve substituir os seguintes membros: Extract, RuleDescription, e RuleName.

Exemplos

A seguinte regra personalizada de extração extrai caixas de seleção de HtmlDocument e coloca o status das caixas de seleção localizada no contexto.

using System;
using Microsoft.VisualStudio.TestTools.WebTesting;

namespace ClassLibrary2
{
    public class ExtractCheckBoxes : ExtractionRule
    {
        private string myContextParameter = "ExtractCBoxParam";
        private bool isChecked = true;

        public override string ContextParameterName
        {
            get { return myContextParameter; }
            set
            {
                if (value != string.Empty)
                    myContextParameter = value;
            }
        }

        public bool FindCheckedBoxes
        {
            get { return isChecked; }
            set { isChecked = value; }
        }

        public override string RuleName
        {
            get { return "Extract Check Boxes"; }
        }

        public override string RuleDescription
        {
            get { return "Extract check boxes based on whether they are" +
                    " checked or not."; }
        }

        public override void Extract(object sender, ExtractionEventArgs e)
        {   
            e.Success = false;
            
            if (e.Response.HtmlDocument != null)
            {   // Gets all input tags
                foreach (HtmlTag tag in e.Response.HtmlDocument
                    .GetFilteredHtmlTags(new string[] { "input" }))
                {   // Verify that current tag is a checkbox
                    if (tag.GetAttributeValueAsString("type") == "checkbox")
                    {   // Is the checkbox checked
                        if (tag.GetAttributeValueAsString("checked") == "CHECKED")
                        {   // Add checked check boxes to context
                            if (isChecked)
                            {
                                e.WebTest.Context.Add(myContextParameter + "_" +
                                    tag.GetAttributeValueAsString("id"),
                                    "Is Checked");
                                e.Success = true;
                            }
                        }
                        else // The checkbox is not checked
                        {   // Add non-checked boxes to context
                            if (!isChecked)
                            {
                                e.WebTest.Context.Add(myContextParameter + "_" +
                                    tag.GetAttributeValueAsString("id"),
                                    "Is Not Checked");
                                e.Success = true;
                            }
                        }
                    }
                }
            }
            if (e.Success)
                e.Message = "Extracted check boxes.";
            else
                e.Message = "No check boxes extracted.";
        }
    }
}
Imports System
Imports Microsoft.VisualStudio.TestTools.WebTesting

Namespace ClassLibrary2
    Public Class ExtractCheckBoxes
        Inherits ExtractionRule

        Private myContextParameter As String = "ExtractCBoxParam"
        Private isChecked As Boolean = True

        Public Overrides Property ContextParameterName() As String
            Get
                Return myContextParameter
            End Get
            Set(ByVal value As String)
                If (value <> String.Empty) Then
                    myContextParameter = value
                End If
            End Set
        End Property

        Public Property FindCheckedBoxes() As Boolean
            Get
                Return isChecked
            End Get
            Set(ByVal value As Boolean)
                isChecked = value
            End Set
        End Property

        Public Overrides ReadOnly Property RuleName() As String
            Get
                Return "Extract Check Boxes"
            End Get
        End Property

        Public Overrides ReadOnly Property RuleDescription() As String
            Get
                Return "Extract check boxes based on whether they are" + _
                    " checked or not."
            End Get
        End Property

        Public Overrides Sub Extract(ByVal sender As Object, ByVal e As ExtractionEventArgs)
            e.Success = False
            If Not e.Response.HtmlDocument Is Nothing Then
                ' Gets all input tags
                Dim tag As HtmlTag
                For Each tag In e.Response.HtmlDocument.GetFilteredHtmlTags(New String() {"input"})
                    ' Verify if current tag is a checkbox
                    If tag.GetAttributeValueAsString("type") = "checkbox" Then
                        ' Is the check box checked
                        If tag.GetAttributeValueAsString("checked") = "CHECKED" Then
                            ' Add checked checkbox to context
                            If isChecked = True Then
                                e.WebTest.Context.Add(myContextParameter + "_" + _
                                tag.GetAttributeValueAsString("id"), "Is Checked")
                                e.Success = True
                            End If
                        Else ' The check box is not checked
                            If isChecked = False Then
                                ' Add non-checked boxes to context
                                e.WebTest.Context.Add(myContextParameter + "_" + _
                                tag.GetAttributeValueAsString("id"), "Is Not Checked")
                                e.Success = True
                            End If
                        End If
                    End If
                Next
            End If
            If e.Success = True Then
                e.Message = "Extracted check boxes."
            Else
                e.Message = "No check boxes extracted."
            End If
        End Sub
    End Class
End Namespace

Acesso thread-safe

Quaisquer membros estático (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Consulte também

Referência

Namespace Microsoft.VisualStudio.TestTools.WebTesting

Outros recursos

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

[obsoleto] Como adicionar uma regra de extração a um teste de desempenho na Web

Hierarquia de herança

Object
  Microsoft.VisualStudio.TestTools.WebTesting.ExtractionRule
    Microsoft.VisualStudio.TestTools.WebTesting.ExtractHtmlSelectTag
    Microsoft.VisualStudio.TestTools.WebTesting.ExtractHtmlTagInnerText
    Microsoft.VisualStudio.TestTools.WebTesting.Rules.ExtractAttributeValue
    Microsoft.VisualStudio.TestTools.WebTesting.Rules.ExtractFormField
    Microsoft.VisualStudio.TestTools.WebTesting.Rules.ExtractGuids
    Microsoft.VisualStudio.TestTools.WebTesting.Rules.ExtractHiddenFields
    Microsoft.VisualStudio.TestTools.WebTesting.Rules.ExtractHttpHeader
    Microsoft.VisualStudio.TestTools.WebTesting.Rules.ExtractRegularExpression
    Microsoft.VisualStudio.TestTools.WebTesting.Rules.ExtractText
    Microsoft.VisualStudio.TestTools.WebTesting.Rules.SharePointExtractFormField2
    Microsoft.VisualStudio.TestTools.WebTesting.Rules.SharePointExtractListViewWebPartScriptValues
    Microsoft.VisualStudio.TestTools.WebTesting.Rules.SharePointExtractSelectFormField
    Microsoft.VisualStudio.TestTools.WebTesting.Rules.SharePointExtractViaKeyString
    Microsoft.VisualStudio.TestTools.WebTesting.Rules.SharePointFindCalendarDates
    Microsoft.VisualStudio.TestTools.WebTesting.Rules.SharePointFindCalendarItems
    Microsoft.VisualStudio.TestTools.WebTesting.Rules.SharePointFindDocumentItems
    Microsoft.VisualStudio.TestTools.WebTesting.Rules.SharePointFindHrefs
    Microsoft.VisualStudio.TestTools.WebTesting.Rules.SharePointFindListItems
    Microsoft.VisualStudio.TestTools.WebTesting.Rules.SharePointFindWorkFlowInstances