FAQ sur la reconnaissance d'objets et les mappes d'objets dans Rational Functional Tester

La présente rubrique répond à des questions fréquemment posées sur la reconnaissance d'objets et les mappes d'objets de test.

Qu'est-ce qu'une mappe d'objets et pourquoi est-elle nécessaire ?

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.

Que se passe-t-il si deux objets différents ont le même nom ?

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.

Quelle est la différence entre une mappe d'objets privée et publique ?

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.

Que signifient les pondérations sur les propriétés de reconnaissance et comment sont-elles utilisées ?

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.

Les pondérations par défaut qui sont attribuées à chaque propriété peuvent-elles être modifiées ?

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.

Une pondération ou une valeur de propriété peut-elle être modifiée pour tous les objets d'un projet ou pour tous les objets d'un type spécifique ?

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.

Les scripts créés avec des mappes privées peuvent-ils être fusionnés avec une mappe publique ?

Oui. Pour fusionner les scripts, créez une mappe publique en cliquant sur Fichier > Nouveau > Mappe d'objets de test. 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.

Une mappe privée peut-elle être rendue publique ?

Oui. Vous pouvez copier le contenu d'une mappe privée dans une mappe publique en procédant comme suit :
  1. Sélectionnez Fichier > Nouveau > Mappe d'objets de test.
  2. Sélectionnez le dossier où la mappe publique doit être créée, puis entrez le nom de la nouvelle mappe. Vous pouvez également cocher la case pour définir cette mappe d'objets de test comme le choix par défaut pour les nouveaux scripts Rational Functional Tester. Cliquez sur Suivant.
  3. Sélectionnez les Scripts et mappes à partir desquels copier des objets de test.
  4. Sélectionnez le script contenant la mappe privée que vous souhaitez rendre publique. Vous pouvez également sélectionner la case Connecter les scripts sélectionnés à la nouvelle mappe d'objets de test.

Les modifications de la hiérarchie de mappes d'objets nécessitent-elles de nouvelles sections dans la mappe d'objets pour tous les objets enfant ?

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.

Les propriétés utilisées pour la reconnaissance d'objet peuvent-elles être modifiées ?

Oui. Ouvrez l'objet dans la mappe d'objets, puis sélectionnez Objet de test > Mettre à jour les propriétés de reconnaissance. 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.

Un script peut-il faire référence à plusieurs mappes d'objets ?

Non.

Des objets individuels peuvent-ils être copiés d'une mappe à une autre ?

Non.

Quelles sont les attributs de performances d'une mappe d'objets lorsqu'elle s'agrandit ?

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.

Tableau 1. Attributs de mappe d'objets
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

Retour d'informations