Compartir a través de


ValidationRule (Clase)

Comprueba si las solicitudes devuelven respuestas HTTP válidas y que el contenido de la respuesta coincide con los resultados esperados. Esta clase debe heredarse.

Jerarquía de herencia

System.Object
  Microsoft.VisualStudio.TestTools.WebTesting.ValidationRule
    Microsoft.VisualStudio.TestTools.WebTesting.Rules.ValidateFormField
    Microsoft.VisualStudio.TestTools.WebTesting.Rules.ValidateHtmlSelectTag
    Microsoft.VisualStudio.TestTools.WebTesting.Rules.ValidateHtmlTagInnerText
    Microsoft.VisualStudio.TestTools.WebTesting.Rules.ValidateResponseUrl
    Microsoft.VisualStudio.TestTools.WebTesting.Rules.ValidationRuleFindText
    Microsoft.VisualStudio.TestTools.WebTesting.Rules.ValidationRuleRequestTime
    Microsoft.VisualStudio.TestTools.WebTesting.Rules.ValidationRuleRequiredAttributeValue
    Microsoft.VisualStudio.TestTools.WebTesting.Rules.ValidationRuleRequiredTag
    Microsoft.VisualStudio.TestTools.WebTesting.Rules.ValidationRuleResponseTimeGoal

Espacio de nombres:  Microsoft.VisualStudio.TestTools.WebTesting
Ensamblado:  Microsoft.VisualStudio.QualityTools.WebTestFramework (en Microsoft.VisualStudio.QualityTools.WebTestFramework.dll)

Sintaxis

'Declaración
Public MustInherit Class ValidationRule
public abstract class ValidationRule
public ref class ValidationRule abstract
[<AbstractClass>]
type ValidationRule =  class end
public abstract class ValidationRule

El tipo ValidationRule expone los siguientes miembros.

Constructores

  Nombre Descripción
Método protegido ValidationRule Esta clase debe heredarse.No se puede crear instancias de ella.

Arriba

Propiedades

  Nombre Descripción
Propiedad pública RuleDescription Obsoleto. Obtiene la descripción mostrada en la interfaz de usuario cuando se selecciona una regla.
Propiedad pública RuleName Obsoleto. Cuando se reemplaza en una clase derivada, obtiene el nombre mostrado en la interfaz de usuario cuando se selecciona una regla o se muestra en el editor.

Arriba

Métodos

  Nombre Descripción
Método público Equals Determina si el objeto Object especificado es igual al objeto Object actual. (Se hereda de Object).
Método protegido Finalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método público GetHashCode Actúa como función hash para un tipo concreto. (Se hereda de Object).
Método público GetType Obtiene el objeto Type de la instancia actual. (Se hereda de Object).
Método protegido MemberwiseClone Crea una copia superficial del objeto Object actual. (Se hereda de Object).
Método público ToString Devuelve una cadena que representa el objeto actual. (Se hereda de Object).
Método público Validate Cuando se reemplaza en una clase derivada, valida la solicitud y la respuesta.

Arriba

Comentarios

Las reglas de validación escritas por el usuario deben derivar de esta clase. Las reglas de validación se ejecutan inmediatamente después de que finalice la solicitud.

Notas para los herederos

Cuando herede de ValidationRule, debe invalidar el método Validate y la propiedad RuleName.

Ejemplos

En el ejemplo de código siguiente se muestra cómo heredar de ValidationRule para crear una regla que valida la existencia de scripts en la página web.

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

namespace MyValidationRule
{
    public class ValidatePageContainsScript : ValidationRule
    {
        
        public override string RuleName
        {
            get { return "Validate Script Existence"; }
        }

        public override string RuleDescription
        {
            get { return "Validates that the page has a script."; }
        }

        public override void Validate(object sender, ValidationEventArgs e)
        {
            bool validated = false;
            string foundJS ="";
            string foundVBS = "";

            string message = "Non-valid HTML document";

            if (e.Response.HtmlDocument != null)
            {   // Gets all input tags
                foreach (HtmlTag tag in e.Response.HtmlDocument
                    .GetFilteredHtmlTags(new string[] { "script" }))
                {   // Check type of script for current tag
                    if (tag.GetAttributeValueAsString("type") == "text/JavaScript")
                        foundJS = "Found JavaScript";
                    if (tag.GetAttributeValueAsString("type") == "text/VBScript")
                        foundVBS = "Found VBScript";
                }

                if (foundVBS.Length != 0 || foundJS.Length != 0)
                {
                    validated = true;
                    message = string.Format("{0} {1}", foundJS, foundVBS);
                }
                else
                {
                   message = "No scripts in current page";
                }
            }
            e.IsValid = validated;
            e.Message = message;
        }
    }
}
Imports System
Imports Microsoft.VisualStudio.TestTools.WebTesting

Namespace MyValidationRule
    Public Class ValidatePageContainsScript
        Inherits ValidationRule

        Public Overrides ReadOnly Property RuleName() As String
            Get
                Return "Validate Script Existence"
            End Get
        End Property

        Public Overrides ReadOnly Property RuleDescription() As String
            Get
                Return "Validates that the page has a script"
            End Get
        End Property

        Public Overrides Sub Validate(ByVal sender As Object, _
            ByVal e As ValidationEventArgs)
            Dim validated As Boolean = False
            Dim foundJS As String = String.Empty
            Dim foundVBS As String = String.Empty
            Dim message As String = "Non-valid HTML document"

            If Not e.Response.HtmlDocument Is Nothing Then
                ' Get all input tags
                Dim tag As HtmlTag
                For Each tag In e.Response.HtmlDocument. _
                    GetFilteredHtmlTags(New String() {"script"})
                    ' Check type of script for current tag
                    If tag.GetAttributeValueAsString("type") = "text/JavaScript" _
                        Then
                        foundJS = "Found JavaScript"
                    End If
                    If tag.GetAttributeValueAsString("type") = "text/VBScript" _
                        Then
                        foundVBS = "Found VBScript"
                    End If
                Next

                If Not foundVBS.Length = 0 Or Not foundJS.Length = 0 Then
                    validated = True
                    message = String.Format("{0} {1}", foundJS, foundVBS)
                Else
                    message = "No scripts in current page."
                End If
            End If

            e.IsValid = validated
            e.Message = message

        End Sub
    End Class
End Namespace

Seguridad para subprocesos

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Vea también

Referencia

Microsoft.VisualStudio.TestTools.WebTesting (Espacio de nombres)

Otros recursos

Cómo: Agregar una regla de validación a una prueba de rendimiento web

Cómo: Crear una regla de validación personalizada para una prueba de rendimiento web