Une mappe d'objets contient chaque objet utilisé pendant l'enregistrement ainsi que les propriétés de reconnaissance de l'objet. Pour chaque propriété, la mappe contient également une pondération qui indique le niveau de dépendance de Rational Functional Tester à cette propriété pour la reconnaissance.
La mappe d'objets peut être automatiquement remplie lorsqu'un script est enregistré ou manuellement remplie par l'ajout d'objets à la mappe.
La mappe d'objets permet une maintenance de script efficace. Lorsque les objets de l'application sous test sont modifiés, la mappe d'objets est une source unique qui peut être mise à jour. En mettant à jour la mappe, tous les scripts qui font référence à l'objet modifié utilisent les informations d'objet mises à jour.
Rational Functional Tester différencie les objets en fonction des propriétés de reconnaissance et de la hiérarchie. Par exemple, si un bouton existe dans une fenêtre de niveau supérieur différente, il apparaît en tant que bouton différent dans la mappe. Si deux objets différents ou plus ont le même nom, pour rendre ce nom unique, Rational Functional Tester ajoute des suffixes numériques au nom de l'objet en position deux, trois, etc.
S'il existe deux instances identiques d'un objet, par exemple deux instances d'un navigateur, Rational Functional Tester fournit une méthode pour prendre en charge l'identification.
Une mappe d'objets privée est utilisée par un script unique. Une mappe d'objets publique (partagée) est utilisée par plusieurs scripts. Le paramètre par défaut pour chaque script consiste à utiliser une mappe d'objets privée. Cela est approprié pour les utilisateurs individuels qui débutent avec l'outil. Toutefois, une équipe de testeurs travaillant sur une application commune doit utiliser une mappe d'objets partagée afin de pouvoir tirer parti des objets définis globalement dans une mappe unique.
Les pondérations indiquent l'importance d'une propriété spécifique dans l'identification d'un objet pendant l'exécution d'un script. Les paramètres possibles sont compris entre 0 (aucune importance) et 100 (importance maximale). Vous pouvez modifier les pondérations de la plupart des propriétés. La propriété .class est fixe et ne peut pas être modifiée.
Si vous définissez la pondération à 0, la valeur de cette propriété est ignorée lors de la tentative d'identification d'un objet.
Utilisez l'outil de configuration de propriété d'objet pour attribuer de nouvelles pondérations par défaut aux propriétés et pour définir de nouvelles propriétés à utiliser lors de l'identification d'objets dans les enregistrements à venir.
Vous pouvez utiliser l'utilitaire de recherche et de modification de mappe d'objets pour rechercher tous les objets qui correspondent à un critère tel qu'un nom de propriété, une valeur de propriété ou différents filtres personnalisés. Les actions pouvant être effectuées sur les objets correspondants sont l'ajout de propriété, la suppression de propriété, la modification de valeur et la modification de pondération. Les modifications peuvent être appliquées aux objets individuellement ou globalement.
Oui. Pour fusionner les scripts, créez une mappe publique en cliquant sur . Si une page d'assistant apparaît, fermez-la. Cliquez avec le bouton droit de la souris sur la mappe créée et sélectionnez Fusionner les objets dans. Dans la boîte de dialogue qui apparaît, sélectionnez les scripts à fusionner. Assurez-vous de cocher la case Connecter les scripts sélectionnés à la nouvelle mappe d'objets de test pour associer les scripts sélectionnés à la nouvelle mappe d'objets fusionnée.
Pour des informations sur la fusion de plusieurs mappes, voir Fusion de plusieurs mappes d'objets de test.
Si les propriétés du noeud parent sont modifiées en raison d'insertions ou de suppressions ou qu'un nouveau noeud est ajouté à la hiérarchie, vous pouvez mettre à jour la mappe. Pour mettre à jour la mappe, utilisez l'éditeur de mappe pour insérer des références dans des objets qui possèdent un nouveau parent inséré. Les références aux objets enfant du nouvel objet sont donc dupliquées. Pour chacune de ces références, déplacez l'ancien objet dans le nouveau afin que l'éditeur de mappe unifie les objets. Vous pouvez utiliser les mêmes étapes pour supprimer un objet de la hiérarchie de mappes.
Oui. Ouvrez l'objet dans la mappe d'objets, puis sélectionnez . Utilisez le sélecteur d'objet pour désigner l'objet. Lorsque la boîte de dialogue de mise à jour des propriétés de reconnaissance avec les trois panneaux apparaît, cliquez avec le bouton droit de la souris sur le panneau Toutes les propriétés actives et sélectionnez Ajouter aux propriétés unifiées de l'objet de test.
Lorsqu'une mappe d'objets s'agrandit, le temps nécessaire pour l'ouvrir et la charger est plus long.
Lorsqu'un script est exécuté, la mappe d'objets est chargée la première fois qu'elle est nécessaire pendant l'exécution. Si une suite de scénarios de test utilise des scripts de test fonctionnels, la mappe se charge pendant l'exécution de chaque script car chaque script est un processus distinct. Une application normale comporte environ 2 000 à 3 000 objets (certaines mappes peuvent être plus grandes ou plus petites).
Les attributs affichés dans le tableau 1 ont été calculés au moment de l'exécution du script mais peuvent également s'appliquer lorsque la mappe est chargée. Ils montrent que le temps de chargement d'une mappe n'augmente pas de manière significative tant qu'une mappe considérablement inférieure à la taille normale est rencontrée. Le temps de lecture augmente uniquement au début de l'exécution du script, lorsque la mappe est chargée et l'exécution du script n'est pas ralentie après le chargement de la mappe. En outre, les scripts imbriqués (à l'aide de la fonction callScript) qui partagent la même mappe d'objets partagent également la même instance de mappe pendant l'exécution du script. Par conséquent, les scripts imbriqués n'augmentent pas le temps de chargement.
| Objets dans une mappe | Secondes pour l'exécution complète d'un script |
|---|---|
| 10 | X secondes |
| 600 à 2 000 | X + 2 secondes |
| 2 000 à 11 000 | X + 3 secondes |
| plus de 11 000 | X +10 secondes |