Functional Tester offre un moyen de localiser un ou plusieurs objets de test (TestObjects
) répondant
à des critères spécifiques. La recherche porte sur des paires nom-valeur qui représentent les
propriétés du ou des objets de test que vous recherchez. Elle peut être soit globale, soit limitée
aux descendants (objets enfants) d'un objet de test parent.
Pour représenter une vue globale du logiciel en cours de test,
Functional Tester prévoit un objet de test racine, le RootTestObject
.
Pour effectuer une recherche globale, vous devez invoquer la méthode find sur
le RootTestObject
. Si vous invoquez cette méthode sur un objet de test (TestObject
)
particulier, la recherche portera uniquement sur les descendants de cet objet.
Le premier argument de la méthode find est un sous-élément destiné à spécifier les propriétés de recherche. Le second argument, optionnel, est un fanion (flag) indiquant si la recherche doit porter uniquement sur les descendants (objets enfants) inclus dans la mappe d'objets de test. Les valeurs admises pour le sous-élément de spécification des propriétés de recherche sont les suivantes :
AtProperty
-- Une paire nom-valeur représentant une propriété de TestObject
AtChild
-- Une ou plusieurs propriétés à confronter à celles du descendant direct (enfant)
du TestObject
de départ
AtDescendant
-- Une ou plusieurs propriétés à confronter à celles de n'importe quel descendant (direct ou non)
du TestObject
de départ
AtList
-- Liste séquentielle de propriétés à confronter. Les sous-éléments valides pour
AtList
sont les suivants :
AtChild
AtDescendant
AtProperty
Les objets sont confrontés aux critères du premier élément de la liste afin d'obtenir une liste de candidats, puis les descendants de ces candidats sont confrontés aux critères de l'élément de liste suivant, et ainsi de suite.
Des propriétés spéciales sont prévues pour la méthode RootTestObject.find :
.processName
-- Propriété de niveau supérieur qui a deux fonctions :
Activer dynamiquement les processus ayant le nom (processName
) spécifié
Contraindre la méthode find à limiter sa recherche dans les processus qui portent ce nom
.processId
-- Propriété de niveau
supérieur qui a deux fonctions :
Activer dynamiquement les processus qui ont l'ID de processus (pid) spécifié
Contraindre la méthode find à limiter sa recherche dans les processus qui ont ce pid
.domain
-- Fanion indiquant de rechercher uniquement dans les domaines de niveau supérieur qui concordent avec la
propriété domain
.hWnd
-- Conjointement avec la propriété hWnd
utilisée pour la recherche,
si .domain
"Win" est également spécifié, la fenêtre concordante sera activée
pour les tests avec le domaine Windows.
Handle
-- Conjointement avec la propriété de descripteur (handle) de fenêtre utilisée pour la recherche,
si .domain
"Net" est également spécifié, la fenêtre concordante sera activée
pour les tests avec le domaine .NET.
Exemples :
Dim FoundTOs As TestObject() Dim Root As RootTestObject Root = RootTestObject.GetRootTestObject()
' Trouver, dans le domaine Windows, toutes les fenêtres de niveau supérieur ' qui ont pour titre (caption) "Mon document" Dim Caption As CaptionText Caption = New CaptionText("Mon document") FoundTOs = Root.Find(AtChild(".Domain", "Win", _ ".caption", Caption)) ' Trouver toutes les boîtes de dialogue, puis renvoyer ' leurs boutons "OK" enfants. Dim DialogRE As RegularExpression = New _ RegularExpression("*dialog", false) Dim ButtonRE As RegularExpression = New _ RegularExpression("*button", false) FoundTOs = Root.Find(AtList( _ AtDescendant(".class", DialogRE), _ AtChild(".class", ButtonRE, _ ".value", "OK")) ' Démarrer Notepad (Bloc-notes), activer dynamiquement ce processus, trouver ' sa fenêtre de niveau de supérieur concordant avec l'ID de processus (pid) ' et obtenir sa fenêtre de texte descendante. Dim P1 As ProcessTestObject = StartApp("Notepad") Dim Pid As Integer = P1.GetProcessId() FoundTOs = Root.Find(AtList( _ AtProperty(".processId", Pid), _ AtDescendant(".class", ".text")))
' Activer une application Windows ayant le descripteur (handle) de fenêtre ' fourni et retourner un TestObject représentant cette fenêtre Dim HWnd As Long = GetAppsHwnd() FoundTOs = Root.Find(AtChild(".hwnd", HWnd, ".domain", "Win")) ' Activer une application .NET ayant le descripteur (handle) de fenêtre ' fourni et retourner un TestObject représentant cette fenêtre Dim Handle As Long = GetAppsHwnd() FoundTOs = Root.Find(AtChild("Handle", Handle, ".domain", "Net"))
Conditions d'utilisation | Appréciations en retour
(C) Copyright IBM Corporation 2002, 2004. All Rights Reserved.