| DIDACTICIEL VERSION 2.0 | |
| SOMMAIRE | CHAPITRE 9 - GESTION DE COMPOSANTS D'IHM COMPLEXES |
|
Création d'une Procédure Générale Gestion de Composants d'IHM Complexes Avant de démarrer votre propre Application
|
Durée estimée : 30 à 45 minutes
9.2 Composants Complexes Unidimensionnels 9.3 Composants Complexes Bidimensionnels
Jusqu'à maintenant, nous avons traité des composants d'IHM Java dits éléments d'IHM "simples", tels que des boutons radio ou des text fields. Nous allons maintenant nous intéresser à des composants plus complexes, qui eux-mêmes contiennent des sous-éléments. Les exemples classiques pour de tels composants sont les arbres et les tables. Prenons les nSuds d'un arbre. Un nSud n'est pas un composant d'IHM au sens Java, mais une représentation graphique de données. Cette distinction technique n'est pas d'une grande aide pour le test, pour lequel le comportement d'un tel nSud arbre est aussi important que le comportement d'un élément d'IHM plus simple. Pour gérer ces cas, QF-Test dispose d'un élément spécial appelé item qui représente des sous-éléments complexes. Nous allons donc traiter de la manipulation des items et la syntaxe utilisée par QF-Test pour s'y référer. Une solide compréhension de ces concepts sera nécessaire car nous allons aborder des tests avec des scripts automatisés et alimentés par des données dans les sections qui suivent. Dans cette section, nous utiliserons une application simple comme SUT qui contient plusieurs éléments complexes. Nous l'avons appelé ItemsDemo ; elle se trouve dans la distribution de la version courante de QF-Test. Nous vous laisserons le soin de créer une suite de test pour encapsuler le SUT, mais voici un nSud Start Java SUT client qui exécutera l'application : ![]() Figure 9.1 - NSud Start Java SUT client Pour ItemsDemo Créez une nouvelle suite et ajoutez ce nSud en tant qu'élément du nSud Startup normal. Le reste de l'infrastructure de la suite de test doit désormais être simple à mettre en place par vous. Démarrez le SUT. Vous devriez voir ce qui suit :
Figure 9.2 - Fenêtre ItemsDemo 9.2 Composants Complexes Unidimensionnels Nous commencerons par l'analyse du plus simple des éléments complexes, qui est une liste unidimensionnelle, telle que représentée par la classe Java JList. Dans la fenêtre du SUT, vous verrez une JList comme premier composant, ayant pour étiquette Sample list. Commencez à enregistrer et cliquez sur les éléments de la liste Sample. A l'arrêt de l'enregistrement, vous verrez alors une séquence de ce type :
Figure 9.3 - Opérations Souris sur une JList Cliquez sur un des nSuds MPRC enregistrés et regardez le composant qui est référencé : Figure 9.4 - Référence à un Item JList La référence est tout ce qu'il y a de plus simple, avec une structure de type parent-fils. Dans ce cas List est le nom du composant parent (la JList), et list_item_2 est le nom de l'item individuel (enfant) de la liste. Regardons comment ce composant est réellement stocké par QF-Test. Avec le même nSud encore sélectionné, exécutez locate component, soit par un clic-droit et en cliquant sur l'option locate component, soit en utilisant le raccourci clavier Ctrl+W. Vous devez alors voir une liste ouverte des éléments enregistrés du SUT dans la section Windows and Components de la suite de test, avec le nSud pour l'item list sélectionné, comme montré ci-dessous :
Figure 9.5 - NSud Item JList Ce que nous voyons alors est un nSud type appelé Item qui est spécifiquement utilisé pour décrire les éléments de structures complexes, comme notre liste. Un nSud Item consiste en deux composants principaux : le parent à qui il appartient et l'index (ou indices) du(des) item(s) dans le parent. Regardez les propriétés pour ce nSud Item :
Figure 9.6 - Propriétés de l'Item JList Ici nous voyons l'ID du composant (contenant la référence au composant parent) et un index primaire. La liste étant une structure unidimensionnelle, nous avons seulement besoin d'un index pour le moment. Lorsque nous étudierons les tableaux dans la section suivante, l'index secondaire entrera alors en jeu. L'index primaire est décrit ici comme une chaîne de caractères, qui est le texte de l'item dans la liste du SUT. Ce type de mise en Suvre est adapté à la plupart des applications, mais bien sûr peut avoir de fâcheuses conséquences si jamais le texte des items dans la liste est amené à changer. Alors pour éviter ce type de problème, QF-Test vous offre deux autres possibilités : la première consiste à référencer l'item en tant qu'index numérique (commençant par l'index 0) de la liste. Veuillez changer l'index list item 2 par son index numérique équivalent, c'est-à-dire 1. Puiss changez l'interprétation de l'index primaire en cliquant sur le bouton radio As number :
Figure 9.7 - Item JList avec un Index Numérique Une autre possibilité pour indexer des items est offerte avec l'index sophistiqué d'expression régulière. Ici, QF-Test effectue une recherche textuelle des items dans la liste jusqu'à ce qu'un pattern correspondant à l'expression régulière que vous avez fournie soit trouvé. Par exemple :
Figure 9.8 - Item JList avec un Index Expression Régulière L'expression régulière [0-9a-zA-Z ]*2 donnée ici indique un nombre arbitraire de caractères alphanumériques ou avec des espaces blancs et avec le chiffre 2 obligatoire à la fin. Une autre option serait l'expression .*2. Pour plus de détails sur l'écriture d'expressions régulières, merci de consulter le Chapitre Détails techniques relatifs à divers points dans le Manuel de Référence Technique. Essayez à nouveau d'exécuter votre séquence enregistrée pour la liste, mais maintenant avec les nSuds Item modifiés. Si vous avez correctement modifié les références d'index, alors le comportement de la séquence doit être exactement le même. 9.3 Composants Complexes Bidimensionnels Maintenant nous allons passer à une structure un peu plus complexe : un composant bidimensionnel le mieux représenté par une classe Java est JTable. Un tableau, bien sûr, consiste en des lignes et des colonnes. Donc un item dans un tableau requiert deux indices afin d'être correctement référencé.
Figure 9.9 - Sample Table dans le SUT Comme vous l'avez fait avec la liste, essayez d'enregistrer quelques clics sur les items dans la sample table du SUT. Veillez à enregistrer des clics sur les éléments des deux colonnes. Vous devez alors obtenir :
Figure 9.10 - Clics Souris Enregistrés dans la Jtable Les nSuds doivent être similaires aux nSuds enregistrés pour la structure JList. Ici, nous avons simplement un nSud MPRC qui référence un composant dans la forme parent.primaryIndex&secondaryIndex. JTable est le parent de Table, Label ou Value est l'index primaire (ou colonne) et un nombre représente l'index secondaire (ou ligne). Le & avant l'index secondaire a une signification particulière. Il signifie que l'index secondaire se réfère directement à l'item de la table et qu'il n'y a pas de noeud Item utilisé pour l'accès. Cette syntaxe spéciale est décrite en détail dans le chapitre qui suit. Utilisez locate component et regardez les nSuds Item qui ont été enregistrés :
Figure 9.11 - NSuds Items Enregistrés pour la JTable Parce que les noeuds Item ne sont pas utilisés pour accéder à l'index secondaire, ils ont seulement été enregistrés pour l'index primaire, dans notre exemple pour les colonnes Label et Value. Si vous regardez les détails du noeud Item Label, vous verrez que seulement l'index primaire est utilisé au au sein du noeud Item.
Figure 9.12 - Propriétés d'un NSud Item JTable Le chapitre précédent a expliqué la représentation des items dans QF-Test. Mais il existe un autre moyen d'accéder aux éléments de composants complexes. Cela est faisable en référençant l'élément cible par son composant parent étendu avec une certaine syntaxe spécifiant le sous-composant. Ce type de syntaxe est ce que QF-Test appelle un "accès direct" à l'item. Trois types de syntaxe sont possibles :
L'index secondaire dans les clics souris (montré en figure 9.10) est représentée par cette syntaxe numérique directe. Aucun noeud Item n'est requis pour ce cas. Essayer de comprendre les différentes représentations. Que les sous-items soient représentés comme des noeuds item ou comme une syntaxe ne fait aucune différence du point de vue de QF-Test. Les deux méthodes ont leur mérite. Les noeuds items conviennent parfaitement pour des éléments statiques, tandis que que la syntaxe est presque toujours préférable s'il y a un certain degré de variabilité. QF-Test essaie d'enregistrer les sous-items aussi intelligemment que possible, et dans certains cas il peut être préférable de passer outre les paramètres par défaut. En utilisant les options pour l'enregistrement de sous-items (se référer au manuel) vous pouvez définir précisément comment QF-Test enregistrera les sous-items. En tant qu'exemple de conclusion, la figure suivante montre une séquence MPRC dans laquelle l'index primaire est représenté comme une syntaxe. la fonctionnalité reste la même.
Figure 9.13 - Clic Souris Utilisant la Syntaxe pour l'Accès Direct Nous insistons à nouveau sur l'importance du référencement unique d'items dans un composant complexe. Comme la nature du composant augmente en complexité, la complexité de référencement des items du composant augmente. Pour les deux exemples précédents (listes et tableaux), la structure est relativement simple. Toutefois, même avec ces composants, des entrées en doublon peuvent apparaître. Regardez la figure suivante :
Figure 9.14 - Tableau avec des Items en Doublon Dans la mesure où des items en doublon peuvent apparaître, vous devez prendre en compte comment votre suite de test devrait gérer un tel tableau, à savoir ce qui pourra changer et ce qui restera statique. Les réponses déterminent le type de référencement que vous devez mettre en Suvre pour ces items dans le tableau. C'est pourquoi QF-Test utilise le nombre ligne comme index secondaire, lors de l'enregistrement de composants en mode intelligent. Dans la prochaine section, nous nous attaquerons aux composants les plus complexes, dans lesquels la gestion d'items potentiels en doublon est d'une importance critique. Les arbres sont un cas spécial de composants complexes car leur framework hiérarchique ne se mappe pas à une structure linéaire. L'unicité d'un nSud doit également être pris en considération. Toutefois, étant donné l'ensemble d'outils et de concepts étudiés dans les sections précédentes, QF-Test rend la manipulation des arbres très viable. L'opérateur / a une grande importance ; il fonctionne comme le séparateur de chemin d'une hiérarchie de fichiers. Essayons. Enregistrez donc quelques clics sur le sample tree du SUT. Vous devriez alors obtenir quelque chose de similaire à :
Figure 9.15 - Clics Souris Enregistrés avec le JTree Tout d'abord, essayez d'ajuster et de jouer votre séquence enregistrée pour comprendre comment les arbres sont gérés. Par exemple, en retirant les clics intermédiaires qui ont ouvert le nSud JTree, alors les nSuds colors ne sont pas nécessaires si vous voulez simplement cliquer sur le nSud yellow. Dans ce cas, QF-Test ouvrira automatiquement l'arbre. Maintenant regardons la syntaxe, par exemple pour le clic sur le nSud /JTree/colors/yellow. L'opérateur de chemin ('/') est mis en utilisation en décrivant le chemin pris par l'arbre pour trouver le bon nSud. Ce type de schéma présente de grands avantages dont celui d'éliminer immédiatement le problème d'unicité d'un autre nSud avec le même nSud situé dans une branche différente de l'arbre. Le seul problème d'unicité qui demeure est s'il y a des nSuds arbre du même nom situés dans la même branche (c'est-à-dire, il y a deux nSuds yellow situés dans /JTree/colors). Dans ce cas, nous pouvons revenir à notre mécanisme de référencement numérique d'un nSud. La modification de l'indexation d'un nSud JTree est la mieux réalisée en utilisant la méthode d'accès direct introduite dans la section précédente. Ici, nous utilisons l'un des opérateurs @, &, ou % pour permettre respectivement des références directes textuelles, numériques ou expression régulière. Voici à quoi ressemble une référence numérique au même nSud en utilisant l'accès direct :
Figure 9.16 - Référence Numérique Direct à un NSud JTree |
|
QF-Test est une marque de Quality First Software GmbH. Kapitec Software SAS est le Distributeur Français de QF-Test. Ce didacticiel a été traduit de l'anglais par Kapitec Software SAS (Novembre 2005). Date de mise à jour : 14-Mai-2007 |
|