Identification intelligente dans QTP/UFT avec exemple
โก Rรฉsumรฉ intelligent
L'identification intelligente est un mรฉcanisme de repli dans UFT Une mรฉthode pour localiser un objet lorsque sa description apprise ne correspond plus ร l'application testรฉe, en utilisant des propriรฉtรฉs de filtre de base et optionnelles pour rรฉduire une liste de candidats ร une seule correspondance.

Qu'est-ce que l'identification intelligente ? QTP/UFT?
Identification intelligente est un mรฉcanisme de reconnaissance d'objets de secours dans OpenText UFT Premiรจrement, l'outil anciennement connu sous le nom de HP QuickTest Professional (QTP). Si le processus d'identification normal ne parvient pas ร trouver une correspondance unique pour la description apprise d'un objet, UFT Dรฉclenche l'identification intelligente, ร condition que le mรฉcanisme soit activรฉ dans les paramรจtres d'identification des objets pour la classe de cet objet.
Contrairement ร la description apprise, l'identification intelligente ne requiert pas une correspondance exacte pour chaque propriรฉtรฉ enregistrรฉe. Elle รฉvalue deux catรฉgories de propriรฉtรฉs afin de rรฉduire un ensemble d'objets candidats ร un seul :
- Propriรฉtรฉs du filtre de base. Les propriรฉtรฉs les plus fondamentales d'une classe d'objet de test ; celles dont les valeurs ne peuvent รชtre modifiรฉes sans altรฉrer l'essence de l'objet d'origine.
- Propriรฉtรฉs de filtre facultatives. Propriรฉtรฉs de support qui aident ร identifier un objet mais qui sont plus susceptibles de changer avec le temps.
Lorsque l'identification intelligente est exรฉcutรฉe, UFT Il ยซ oublie ยป la description apprise et reconstruit une nouvelle liste de candidats contenant tous les objets correspondant ร l'ensemble des propriรฉtรฉs de filtre de base. Il affine ensuite cette liste en vรฉrifiant les propriรฉtรฉs de filtre optionnelles une ร une, jusqu'ร ce qu'il ne reste qu'un seul objet.
Si l'identification intelligente est invoquรฉe au cours d'une session d'exรฉcution, l'arborescence des rรฉsultats de test enregistre un message d'avertissement confirmant que le mรฉcanisme a รฉtรฉ utilisรฉ, et une รฉtape d'identification intelligente est insรฉrรฉe dans les rรฉsultats afin que l'รฉcart par rapport ร la description apprise reste visible.
L'identification intelligente se classe troisiรจme dans UFTL'identifiant d'objet se situe dans la hiรฉrarchie d'identification des objets, aprรจs la description apprise et tout identificateur de relation visuelle, et avant l'identificateur ordinal utilisรฉ en dernier recours. Comprendre sa place explique pourquoi le dรฉsactiver purement et simplement, plutรดt que de corriger les propriรฉtรฉs sous-jacentes, est rarement la meilleure solution ร long terme pour un script exรฉcutรฉ frรฉquemment.
Propriรฉtรฉs du filtre de base vs Propriรฉtรฉs du filtre optionnel
Ces deux filtres fonctionnent de concert, mais jouent des rรดles diffรฉrents dans le processus d'รฉlimination dรฉcrit prรฉcรฉdemment. Le tableau comparatif ci-dessous prรฉcise quand utiliser chacun d'eux et leur efficacitรฉ d'รฉlimination respective.
| Aspect | Propriรฉtรฉs du filtre de base | Propriรฉtรฉs du filtre facultatif |
|---|---|---|
| Rรดle | Constituer la liste initiale des candidats | Rรฉduire la liste des candidats ร un seul objet |
| Stabilitรฉ | Il est presque impossible de modifier un objet sans en changer l'identitรฉ. | Peut changer pรฉriodiquement sans modifier l'identitรฉ de l'objet |
| Rรจgle de correspondance | Chaque candidat doit correspondre ร toutes les propriรฉtรฉs de base | Les propriรฉtรฉs sont vรฉrifiรฉes une par une ; une propriรฉtรฉ est ignorรฉe si son examen รฉlimine tous les candidats. |
| Exemple typique | Balise HTML, classe d'objet, index | Nom, identifiant HTML, texte alternatif, source de l'image |
| Lorsque configurรฉ | Identification des objets > Configurer > Propriรฉtรฉs du filtre de base | Identification de l'objet > Configurer > Propriรฉtรฉs de filtre facultatives |
Puisqu'une mรชme propriรฉtรฉ ne peut figurer dans les deux listes, planifiez soigneusement la rรฉpartition. Les propriรฉtรฉs qui dรฉfinissent fondamentalement l'objet doivent figurer dans la liste de base ; celles qui permettent simplement de le distinguer d'objets similaires doivent figurer dans la liste optionnelle.
Comment fonctionne l'identification intelligente : le processus รฉtape par รฉtape
L'identification intelligente ne s'active qu'aprรจs que la description apprise et tout identificateur de relation visuelle n'aient pas permis de localiser un seul objet. Une fois dรฉclenchรฉe, UFT fonctionne selon un processus d'รฉlimination prรฉvisible en quatre รฉtapes :
- Reconstituer la liste des candidats. UFT ignore la description apprise et analyse le parent de l'objet pour chaque objet qui correspond ร toutes les propriรฉtรฉs du filtre de base.
- Appliquez la premiรจre propriรฉtรฉ facultative. UFT Supprime tout candidat qui ne correspond pas ร la premiรจre propriรฉtรฉ de la liste des propriรฉtรฉs de filtre facultatives.
- รvaluer le rรฉsultat. S'il reste plus d'un candidat, UFT rรฉpรจte l'รฉtape prรฉcรฉdente avec la propriรฉtรฉ optionnelle suivante. Si un filtre devait รฉliminer tous les candidats restants, UFT ignore cette propriรฉtรฉ et passe ร la suivante.
- Arrรชtez-vous ร un seul match. UFT rรฉpรจte le cycle de filtrage et d'รฉvaluation jusqu'ร ce qu'il ne reste qu'un seul objet, ou jusqu'ร ce qu'il n'y ait plus de propriรฉtรฉs facultatives ร vรฉrifier.
Si le processus d'รฉlimination ne permet toujours pas d'isoler un seul objet, UFT En cas de dรฉfaillance, l'exรฉcution se base sur la description apprise et un identifiant ordinal, tel que l'index, l'emplacement ou la date de crรฉation. Si mรชme cette combinaison ne permet pas d'identifier l'objet, la session est interrompue et une erreur d'exรฉcution s'affiche.
Comment activer ou dรฉsactiver l'identification intelligente
L'identification intelligente est configurรฉe par classe d'objet de test ร partir de Outils > Identification d'objetsSรฉlectionnez l'environnement et la classe d'objet, puis activez-les. Activer l'identification intelligente, puis clique Configurer pour choisir les propriรฉtรฉs de filtre de base et optionnelles de cette classe. La mรชme boรฎte de dialogue permet de dรฉsactiver l'option pour une classe qui doit toujours utiliser sa description apprise.
Comment fonctionne l'identification intelligente (Explication vidรฉo)
La vidรฉo ci-dessous prรฉsente le processus d'รฉlimination des filtres de base et optionnels ร l'aide d'un exemple concret.
Cliquez ร nouveau ici si la vidรฉo n'est pas accessible
Avantages et inconvรฉnients de l'utilisation de l'identification intelligente
L'identification intelligente renforce la rรฉsilience, mais celle-ci a un coรปt d'exรฉcution. Il convient d'en peser le pour et le contre avant de l'activer par dรฉfaut pour l'ensemble d'un rรฉfรฉrentiel d'objets.
- โ Rรฉsiste aux modifications mineures de l'interface utilisateur : Le fait de renommer un attribut ou de le dรฉplacer dans la page ne provoque plus la rupture de tous les scripts qui interagissent avec l'objet.
- โ Rรฉduit la maintenance du rรฉfรฉrentiel d'objets : Les testeurs passent moins de temps ร rรฉenregistrer les objets aprรจs les petites mises ร jour de l'interface utilisateur.
- โ Reste visible dans les rรฉsultats : Chaque invocation consigne un avertissement, permettant ainsi aux รฉquipes de vรฉrifier la frรฉquence rรฉelle d'utilisation de la solution de repli.
- โ ๏ธ Exรฉcution des tests plus lente : La constitution et le filtrage d'une liste de candidats prennent sensiblement plus de temps qu'une correspondance directe avec un bien immobilier, et le coรปt se multiplie pour un grand nombre d'รฉtablissements.
- โ ๏ธ Peut masquer de vรฉritables dรฉfauts : Si la fonction d'identification intelligente dรฉtecte discrรจtement un objet similaire, une vรฉritable rรฉgression de l'interface utilisateur peut passer inaperรงue.
- โ ๏ธ Nรฉcessite un examen pรฉriodique : Les propriรฉtรฉs de base et les propriรฉtรฉs de filtre optionnelles nรฉcessitent encore un examen occasionnel ร mesure que l'application รฉvolue.
La plupart des รฉquipes laissent l'identification intelligente activรฉe pour les scripts exploratoires et ร faible frรฉquence, puis la dรฉsactivent sรฉlectivement sur les objets critiques en termes de performances une fois que les propriรฉtรฉs d'identification de l'objet sont stables.
Modifier la propriรฉtรฉ de l'objet pour รฉviter l'identification intelligente
La flexibilitรฉ de l'identification intelligente a un coรปt en temps d'exรฉcution, comme dรฉcrit prรฉcรฉdemment. De nombreuses รฉquipes prรฉfรจrent donc corriger elles-mรชmes les propriรฉtรฉs d'identification des objets plutรดt que de recourir systรฉmatiquement ร la solution de repli. Deux signes indiquent qu'une correction des propriรฉtรฉs est prรฉfรฉrable ร une solution de repli : un avertissement d'identification intelligente qui apparaรฎt presque ร chaque exรฉcution et un script dont la vitesse a sensiblement augmentรฉ depuis le dรฉbut du recours ร la solution de repli. Ces deux signes indiquent qu'un objet dont les propriรฉtรฉs d'identification par dรฉfaut ne conviennent plus ร l'application, et non un simple bug d'interface utilisateur ponctuel. La vidรฉo ci-dessous illustre la correction sur un formulaire de connexion rรฉel.
Cliquez ร nouveau ici si la vidรฉo n'est pas accessible
Transcription vidรฉo : Points clรฉs ร retenir
- L'identification intelligente ralentit l'exรฉcution des scripts, ce qui n'est pas souhaitable pour les suites volumineuses ou frรฉquemment exรฉcutรฉes.
- Pour l'รฉviter complรจtement, modifiez les propriรฉtรฉs d'identification des objets par dรฉfaut au lieu de vous fier ร la solution de repli.
- In Identification d'objets, supprimez ยซ name ยป des propriรฉtรฉs obligatoires et remplacez-le par ยซ HTML id ยป pour rendre le test indรฉpendant des changements de nom.
- Rรฉpรฉtez les mรชmes รฉtapes une fois la liste des biens obligatoires mise ร jour.
- Si le nom passe ultรฉrieurement de ยซ Soumettre ยป ร ยซ Se connecter ยป, le script sโexรฉcute dรฉsormais sans dรฉclencher lโidentification intelligente.
- De mรชme, si une propriรฉtรฉ obligatoire ou auxiliaire d'un objet testรฉ change frรฉquemment, remplacez-la par une propriรฉtรฉ plus stable afin de garantir une exรฉcution rapide du script.
- Le rรฉglage prรฉcis des propriรฉtรฉs est une compรฉtence qui s'acquiert avec l'expรฉrience ; elle s'amรฉliore ร mesure que l'on utilise l'outil.
Dรฉsactiver l'identification intelligente ร l'aide de VBScript
L'identification intelligente peut รฉgalement รชtre dรฉsactivรฉe pour toute une session d'exรฉcution sans toucher au rรฉfรฉrentiel d'objets, ร l'aide de Dรฉsactiver la relecture ร l'aide de l'algorithme Paramรฉtrage d'exรฉcution. Ceci est utile lorsqu'un script doit รฉchouer immรฉdiatement en cas de non-concordance de propriรฉtรฉs, au lieu de revenir silencieusement au processus d'รฉlimination.
' Disable Smart Identification for this run session Setting("DisableReplayUsingAlgorithm") = 1 Browser("Mercury Tours").Page("Find Flights").WebEdit("userName").Set "mercury" ' Re-enable Smart Identification once the strict steps are done Setting("DisableReplayUsingAlgorithm") = 0
Rรฉduisez au maximum la durรฉe de la fenรชtre dรฉsactivรฉe. Les รฉtapes exรฉcutรฉes ร l'intรฉrieur de cette fenรชtre doivent correspondre exactement ร leur description apprise ; par consรฉquent, toute dรฉviation lรฉgitime dans l'application testรฉe entraรฎne un รฉchec immรฉdiat plutรดt qu'un retour en arriรจre progressif.
Ressources
Tรฉlรฉchargez les pages Web utilisรฉes dans le tutoriel ci-dessus pour vous entraรฎner.

