Il s'agit de l'exercice 8 du tutoriel de test fonctionnel. Pour prendre le tutoriel à son début, voir Tutoriel de test fonctionnel.
Mise à jour de la mappe d'objets
Dans cette section, vous allez utiliser la mappe d'objets pour que l'avertissement de reconnaissance d'objet ne soit plus généré. Vous allez également utiliser une expression régulière pour offrir plus de souplesse pour la reconnaissance d'objet.
Lorsqu'un message d'erreur ou d'avertissement est généré pour la reconnaissance, consultez le journal. A la fin de l'exercice 7, vous avez laissé le journal ouvert. Si ce n'est pas le cas, ouvrez-le en cliquant deux fois dessus dans Solution Explorer.
Un message d'avertissement individuel reste dans le journal. L'événement a pour en-tête "La reconnaissance des objets est faible (au dessus du seuil d'avertissement)."
Consultez le contenu des zones ObjectLookedFor et objectFound dans la section d'avertissement située dans la partie finale du journal.
Dans ClassicsA, la zone du mot de passe a pour nom Remember Password. Dans l'application ClassicsB, cette zone a pour libellé Remember The Password. Lorsque vous avez lancé la lecture du script sur ClassicsB, la reconnaissance d'objet n'a pas établi une correspondance exacte en raison de cette différence.
Consultez le contenu de la zone Line Number du journal et notez le numéro indiqué.
Fermez le journal et revenez au test fonctionnel.
Pour accéder au numéro de ligne que vous avez noté, cliquez à un emplacement quelconque de la fenêtre de script, puis sélectionnez Editer > Accéder à.
Entrez le numéro de ligne indiqué dans le message d'erreur enregistré dans le journal et cliquez sur OK.
Le curseur se place dans la marge gauche, au niveau du numéro de ligne recherché. Pour localiser le numéro de ligne, vous pouvez également consulter l'indicateur situé au bas de la fenêtre de test fonctionnel. Le numéro de ligne et la position du curseur sur la ligne sont indiqués ici. Par exemple, "Ln 6 Col 9" indique que le curseur se trouve sur la ligne 6, au niveau du 9e caractère à partir de la marge de gauche. La ligne du script doit être la suivante :
RememberPassword().ClickToState(SELECTED)
Cette ligne indique que vous avez cliqué sur la case à cocher du mot de passe. Dans le script, elle indique l'objet qui a échoué. Vous pouvez maintenant rechercher cet objet dans la mappe d'objets.
Pour rechercher l'objet, revenez à la liste des objets de test dans l'explorateur de scripts (panneau de gauche).
Le texte "RememberPassword" doit figurer sous le dossier Objets de test.
Cliquez deux fois sur l'objet pour l'ouvrir dans la mappe d'objets.
Cliquez sur Objet de test
> Accepter tout dans le menu de la mappe d'objets. Si la commande est grisée, ne faites rien.
Le texte de tous les objets apparaît maintenant en noir. Les nouveaux objets apparaissent en bleu tant qu'ils n'ont pas été acceptés dans une mappe. Vous devez accepter les objets dès que vous consultez une mappe d'objets nouvellement créée.
Si l'objet case à cocher du mot de passe n'est pas sélectionné dans la mappe, sélectionnez-le. (Il s'agit de l'objet appelé "Java: checkBox: checkRemeber: javax.swing.JCheckBox.)
Consultez les propriétés de reconnaissance répertoriées dans l'onglet Reconnaissance situé au bas de la mappe d'objets.
Comme vous pouvez le constater, il s'agit de l'objet provenant de l'application ClassicsA, car "Remember Password" est indiqué dans la propriété accessibleContext.accessibleName. Il s'agit de l'"ancien" objet. Toutefois, lors de la lecture du script sur l'application ClassicsB, le texte de l'objet a changé et ce dernier est reconnu en tant que "nouvel" objet par le test fonctionnel. Etant donné que vous souhaitez utiliser les propriétés du nouvel objet, vous devez ajouter ce dernier à la mappe.
Pour ajouter le nouvel objet à la mappe, ouvrez l'application ClassicsB et la boîte de dialogue Member Logon.
Cliquez sur Applications > Exécuter dans le menu de la mappe d'objets.
Utilisez la flèche pour sélectionner ClassicsJavaB. (Veillez à sélectionner B.)
Cliquez sur OK.
Dans l'application ClassicsCD, sélectionnez n'importe quel CD et cliquez sur Place Order.
La boîte de dialogue Member Logon s'affiche.
Déplacez la mappe d'objets vers le bas de l'écran, si nécessaire, pour l'afficher dans son intégralité. Dans le menu de la mappe d'objets, cliquez sur Objet de test > Insérer des objets.
Cela équivaut à l'outil de recherche des objets dans la page Sélection d'un objet de l'assistant des points de vérification.
Le cas échéant, désélectionnez l'option permettant d'accéder à la page suivante.
Utilisez l'outil de recherche des objets pour sélectionner la case à cocher Remember Password dans la boîte de dialogue Member Logon.
Après avoir coché cette case, vous pourrez constater que la propriété accessibleContext.accessibleName a maintenant pour valeur "Remember The Password." Si nécessaire, étirez les bordures de la mappe d'objets pour visualiser les propriétés.
Dans la page Sélection d'un objet, cliquez sur Suivant.
N'apportez aucune modification à la page Sélection des options d'objet et cliquez sur Terminer.
Le nouvel objet case à cocher n'apparaît pas dans la mappe d'objets.
Cliquez sur un autre objet et vous constaterez que le nouvel élément s'affiche en bleu et que le mot "New" apparaît en début de ligne.
L'ancien et le nouvel objet sont maintenant répertoriés dans la mappe. Vous souhaitez unifier ces deux objets et prendre sur chacun d'eux les propriétés à affecter au nouvel objet.
Pour unifier les objets, cliquez sur l'ancien objet (case à cocher d'origine appelée "CheckBox: checkRemember") et faites-le glisser sur le nouvel objet dans la liste. Placez l'info-bulle de la flèche du curseur au-dessus du nouvel objet avant de relâcher le bouton de la souris.
L'assistant d'unification des objets de test s'affiche.
Si nécessaire, agrandissez la fenêtre de l'assistant d'unification afin de visualiser plus d'informations dans les sections inférieures.
Les propriétés de l'objet d'origine apparaissent dans la section du bas à gauche. Elles doivent avoir pour libellé "Source: RememberPassword." Cela correspond au texte affecté à la case à cocher dans ClassicsA. Dans la section du bas à droite, elles doivent avoir pour libellé "Target: RememberThePassword." Cela correspond au texte affecté à la case à cocher dans ClassicsB. Etant donné que vous avez fait glisser l'ancien objet sur le nouveau, les propriétés de reconnaissance du nouvel objet sont remplies au niveau supérieur. En général, le test fonctionnel place les nouvelles propriétés au niveau supérieur s'il s'agit des propriétés préférées. Cependant, d'anciennes propriétés d'administration peuvent être privilégiées. Par exemple, le test fonctionnel conserve des expressions régulières dans l'ancien ensemble de propriétés. Pour utiliser une propriété de l'ancien objet, cliquez deux fois dessus dans la grille de l'ancien objet afin de la copier dans l'objet unifié. Dans ce cas, nous souhaitons utiliser toutes les propriétés du nouvel objet, qui sont déjà renseignées.
Cliquez sur Suivant.
Tous les scripts affectés par cette modification dans la mappe d'objets sont répertoriés. Un seul script, Classics, est affecté.
Cliquez sur Terminer.
Dans la mappe d'objets, cliquez sur Fichier : Sauvegarder pour sauvegarder les modifications effectuées, et fermez la mappe d'objets.
Nous allons lire à nouveau le script sur ClassicsB pour vérifier que son exécution aboutit.
Fermez d'abord les deux boîtes de dialogue de ClassicsCD.
Cliquez à un emplacement quelconque de la fenêtre de test fonctionnel et activez la barre d'outils.
Cliquez sur Exécute le script du test fonctionnel.
Sélectionnez le journal Classics et cliquez sur Terminer.
L'exécution du script aboutit sans qu'aucun avertissement soit généré ! Vous pouvez constater que la lecture ne s'interrompt plus au niveau de l'objet case à cocher car les propriétés de reconnaissance concordent.
La fonction d'unification d'objet permet aisément de mettre à jour des scripts lorsque les propriétés de reconnaissance d'un objet sont modifiées de manière intentionnelle. Si la mappe d'objets est utilisée par un grand nombre de scripts, cette fonction a pour avantage principal de mettre à jour tous les scripts lorsque vous effectuez des modifications dans l'assistant. Au lieu d'éditer manuellement plusieurs scripts, vous pouvez effectuer la modification une seule fois dans la mappe et propager celle-ci automatiquement à tous les scripts qui utilisent la mappe. Cette fonction peut vous faire gagner du temps.
Remarque : Il existe également une méthode plus simple pour mettre à jour les propriétés de reconnaissance d'un objet de test si celles-ci doivent être modifiées. Au lieu d'utiliser l'assistant d'unification comme indiqué dans la présente étape, vous pouvez sélectionner dans la mappe d'objets l'objet de test dont vous souhaitez mettre à jour les propriétés de reconnaissance. Cliquez à l'aide du bouton droit de la souris sur l'objet de test, tel qu'il apparaît dans l'arborescence de la mappe d'objets, et sélectionnez Mettre à jour les propriétés de reconnaissance dans le menu en incrustation. Au moment où vous effectuez cette opération, l'application de test doit être active afin que le test fonctionnel puisse extraire les propriétés de reconnaissance mises à jour. Cette méthode de mise à jour ne doit être employée que si vous ne souhaitez pas utiliser les propriétés de l'ancien objet.
Fermez le journal.
Passez à l'exercice 9 : Modification des préférences de reconnaissance.