Durant la lecture d'un script de test, il peut arriver que Functional Tester ne parvienne pas à différencier deux objets semblables dans l'application testée. Par exemple, prenons le cas du test d'une application HTML et supposons que plusieurs instances du navigateur soient actives. Si les actions sur la barre d'outils ont été enregistrées de la manière suivante, à la lecture du script, il est impossible de savoir à quelle instance ces actions sont destinées :
BrowserToolbar_Back().click()
BrowserToolbar_Forward().click()
Dans des cas comme celui-ci, Functional Tester peut éviter toute reconnaissance ambiguë en localisant le bouton de barre d'outils dans l'instance de navigateur identifiée par le document qui y est chargé (ce document constitue alors l'ancre de l'objet cible). Par exemple :
BrowserToolbar_Back(Browser_htmlBrowser(Document_MaPagePerso(),
DEFAULT), DEFAULT).click();
Le bouton Précédent (Back) de la barre d'outils est ancré par le navigateur, lui-même étant ancré par le document "MaPagePerso". Bien sûr, cela ne fonctionne pas si le même document est chargé dans chaque instance du navigateur. Notez que les méthodes du script auxiliaire qui prennent une ancre comme argument doivent aussi recevoir un autre argument qui spécifie l'état du composant (l'argument DEFAULT dans l'exemple ci-dessus). L'état par défaut des objets HTML est LOADED (chargé). Pour les composants HTML, les états LOADING (en cours de chargement) et UNINITIATED (non initialisé) sont également possibles. L'état par défaut des objets Java est SHOWING (visible) et ENABLED (activé). Les autres fanions d'état reconnus pour les objets Java sont NOT_SHOWING (non visible) et DISABLED (désactivé).
Vous pouvez aussi identifier l'instance de navigateur en lui
affectant une référence TestObject
et en invoquant sa méthode find comme suit (n'oubliez pas
de désenregistrer le TestObject lorsque vous n'en avez plus besoin) :
TestObject
monNavigateur = Browser_htmlBrowser(Document_MaPagePerso(),
DEFAULT).find();
Dans le script de test, les actions sur la barre d'outils du navigateur ressembleraient alors à l'exemple suivant :
BrowserToolbar_Back(monNavigateur,
DEFAULT).click();
Une autre situation sujette aux reconnaissances ambiguës est le cas d'un test
portant sur plusieurs applications exécutées en même temps. Durant la lecture du script,
des commandes telles que b5().click()
sont ambiguës. Cependant, comme
la commande startApp
renvoie un ProcessTestObject
, celui-ci
peut être utilisé comme référence pour spécifier à quelle application s'adresse une
commande particulière. Par exemple :
ProcessTestObject
p1 = startApp("SwingTest");
ProcessTestObject p2 = startApp("TryIt");
...
//b5().click(); ambigu à la lecture ; quelle application ?
b5(p1, DEFAULT).click();
Sur la dernière ligne de cet exemple, le ProcessTestObject
agit comme une ancre permettant de localiser l'application souhaitée. Notez qu'il n'est pas nécessaire
d'appeler la méthode de désenregistrement (unregister) pour un ProcessTestObject
.
Conditions d'utilisation | Appréciations en retour
(C) Copyright IBM Corporation 2002, 2004. All Rights Reserved.