ExtractionRule, classe
Classe de base utilisée pour définir des règles d'obtention de données à partir d'une réponse Web qui est générée par un test de performances Web.
Hiérarchie d'héritage
System.Object
Microsoft.VisualStudio.TestTools.WebTesting.ExtractionRule
En savoir plus...
Espace de noms : Microsoft.VisualStudio.TestTools.WebTesting
Assembly : Microsoft.VisualStudio.QualityTools.WebTestFramework (dans Microsoft.VisualStudio.QualityTools.WebTestFramework.dll)
Syntaxe
'Déclaration
Public MustInherit Class ExtractionRule
public abstract class ExtractionRule
public ref class ExtractionRule abstract
[<AbstractClass>]
type ExtractionRule = class end
public abstract class ExtractionRule
Le type ExtractionRule expose les membres suivants.
Constructeurs
Nom | Description | |
---|---|---|
ExtractionRule | Initialise une nouvelle instance de la classe ExtractionRule. |
Début
Propriétés
Nom | Description | |
---|---|---|
ContextParameterName | Obtient ou définit le nom de contexte de la propriété extraite. | |
RuleDescription | Obsolète. Cette méthode n'est plus utilisée.Utilisez le DisplayNameAttribute sur la classe pour définir une description pour cette règle. | |
RuleName | Obsolète. Cette méthode n'est plus utilisée.Utilisez le DisplayNameAttribute sur la classe pour définir un nom complet pour cette règle. |
Début
Méthodes
Nom | Description | |
---|---|---|
Equals | Détermine si l'objet spécifié est identique à l'objet actuel. (Hérité de Object.) | |
Extract | En cas de substitution dans une classe dérivée, cette méthode extrait des informations d'un HtmlDocument et les place dans WebTestContext. | |
Finalize | Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.) | |
GetHashCode | Sert de fonction de hachage pour un type particulier. (Hérité de Object.) | |
GetType | Obtient le Type de l'instance actuelle. (Hérité de Object.) | |
MemberwiseClone | Crée une copie superficielle de l'objet Object actuel. (Hérité de Object.) | |
ToString | Retourne une chaîne qui représente l'objet actif. (Hérité de Object.) |
Début
Notes
La classe ExtractionRule doit être héritée par toute règle d'extraction, qu'elle soit écrite par l'utilisateur ou intégrée.Les règles d'extraction associées à la définition de requête sont exécutées après avoir reçu une réponse et les résultats de l'extraction sont ajoutés à WebTestContext.
Remarques à l'attention des héritiers
Lorsque vous héritez de ExtractionRule, vous devez substituer les membres suivants : Extract, RuleDescription et RuleName.
Exemples
La règle d'extraction personnalisée suivante extrait des cases à cocher du HtmlDocument et place l'état des cases à cocher trouvées dans le contexte.
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
Sécurité des threads
Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
Voir aussi
Référence
Microsoft.VisualStudio.TestTools.WebTesting, espace de noms
Autres ressources
Comment : créer une règle d'extraction personnalisée pour un test de performances de site Web
Comment : ajouter une règle d'extraction à un test des performances de site Web
Hiérarchie d'héritage
System.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