< Précédent | Suivant >

Leçon 8 : Mise à jour de la mappe d'objets

Dans cette leçon, 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 la leçon 7, vous avez laissé le journal ouvert. Si ce n'est pas le cas, ouvrez-le en cliquant deux fois dessus dans la vue des projets. Un avertissement reste dans le journal. L'événement a pour en-tête La reconnaissance des objets est faible (au dessus du seuil d'avertissement).
  1. 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.

  2. Consultez le contenu de la zone Line Number dans le journal. Notez le numéro et fermez le journal pour revenir dans Functional Tester.
  3. Cliquez à un emplacement quelconque de la fenêtre de script et sélectionnez Naviguer > Accéder à la ligne.
  4. 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é.

    Remarque : Pour localiser le numéro de ligne, vous pouvez également consulter l'indicateur situé au bas de la fenêtre Functional Tester. Par exemple : "43:9" se réfère à la position 9 sur la ligne 43.
    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.
  5. Pour rechercher l'objet, revenez à la liste des objets de test dans l'explorateur de script (panneau de droite). Le texte rememberPassword doit figurer sous le dossier Objets de test.

Affichage des propriétés de reconnaissance d'objet dans la mappe d'objets

  1. Cliquez deux fois sur l'objet rememberPassword pour l'ouvrir dans la mappe d'objets.
  2. 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.

  3. 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: checkRemember: javax.swing.JCheckBox).
  4. 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 rememberPassword 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 Functional Tester. Etant donné que vous souhaitez utiliser les propriétés du nouvel objet, vous devez ajouter ce dernier à la mappe.

Ajout du nouvel objet dans la mappe

Pour ajouter le nouvel objet à la mappe, ouvrez l'application ClassicsB puis la fenêtre Member Logon.
  1. Sélectionnez Applications > exécuter dans le menu de la mappe d'objets.
  2. Sélectionnez ClassicsJavaB (veillez à sélectionner B).
  3. Cliquez sur OK.
  4. Dans l'application ClassicsCD, sélectionnez n'importe quel CD et cliquez sur Place Order.

    La fenêtre Member Logon s'ouvre.

  5. 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, sélectionnez Objet de test > Insérer des objets.

    Cela équivaut au sélecteur d'objet dans la page Sélection d'un objet de l'assistant des points de vérification.

  6. Désélectionnez la case Une fois l'objet sélectionné, passer à la page suivante si elle est cochée.
  7. A l'aide du Sélecteur d'objet, cochez la case Remember the Password dans la fenêtre Member Logon.

    Après avoir coché cette case, vous pourrez constater que la propriété accessibleContext.accessibleName prend désormais pour valeur Remember the password. Etirez les bordures de la mappe d'objets pour visualiser les propriétés.

  8. Sur la page Sélection d'un objet, cliquez sur Suivant.
  9. N'apportez aucune modification à la page Options de sélection d'objet et cliquez sur Terminer.

    Le nouvel objet case à cocher n'apparaît pas dans la mappe d'objets.

  10. 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.

Unification des objets

  1. 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. Relâchez ensuite le bouton de la souris.

    L'assistant Unification des objets de test s'affiche.

  2. 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 de l'assistant. En général, Functional Tester 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, Functional Tester 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.

  3. 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é.

  4. Cliquez sur Terminer.
  5. Dans la mappe d'objets, cliquez sur Fichier > Sauvegarder dans la barre d'outils de la mappe d'objets pour sauvegarder les modifications effectuées, puis fermez la mappe d'objets.

Seconde lecture du script

Nous allons lire à nouveau le script sur ClassicsB pour vérifier que son exécution aboutit.
  1. Fermez les boîtes de dialogue de ClassicsCD.
  2. Dans Functional Tester, cliquez sur Exécuter le script Functional Tester dans la barre d'outils.
  3. 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 du mot de passe 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.

    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 cet exercice, 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 en cours d'exécution de telle sorte que Functional Tester 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.
  4. Fermez le journal.
< Précédent | Suivant >