qtp tutorial 7 qtp s object identification paradigm how qtp identify objects uniquely
Comment QTP identifie-t-il un objet de manière unique? - Ceci est le 7e didacticiel QTP de notre série de formation QTP.
Nous nous équipons de tous les concepts de base qui nous permettront d'écrire tests QTP robustes . Nous avons couvert le QTP Paramètres d'enregistrement et d'exécution , Utilisation de la vue Mot-clé et les autres sujets connexes.
=> Cliquez ici pour la série de didacticiels de formation QTP
Ceci est le prochain article de la série qui parle d'un aspect crucial de QTP - Le mécanisme qu'il utilise pour identifier un objet de manière unique . Lorsque vous regardez l'écran ci-dessous:
Il y a 3 boutons et 2 zones de texte ainsi que divers autres éléments dans cette boîte de dialogue.
Dans les exemples précédents, lorsque nous avons entré le nom d'utilisateur et le mot de passe, nous avons vu comment QTP enregistrait les mêmes opérations en termes de code programmatique ainsi qu'un tableau en vue par mot-clé. Maintenant, pendant la lecture, comment QTP sait-il que la valeur que nous fournissons en tant que nom d'agent ou mot de passe doit être placée respectivement dans ces zones d'édition. Ou comment sait-il sur quel bouton cliquer pour soumettre les valeurs saisies?
Essayons de trouver une réponse à cela.
à quoi servent les fichiers apk
Il est clair que QTP se souvient en quelque sorte sur quel objet agir. La façon dont il le fait est, il stocke l'objet dans l'AUT en tant qu'objet de test. Il examine ensuite ses propriétés et classe l'objet. Par exemple, lorsqu'il rencontre le bouton OK, il examine ses propriétés et sur la base de celles-ci, il classe l’objet en tant que «WinButton».
QTP a un ensemble prédéterminé de propriétés qu'il apprend / stocke pour chaque classe d'objets qu'il identifie. Il y a 3 aspects à cela:
- Propriétés obligatoires : Il s'agit de la liste des propriétés d'une certaine classe que QTP stocke toujours. On pourrait dire que c'est la description de l'objet. Il vérifie également cela en conjonction avec l'objet parent pour voir si la description est suffisante pour identifier l'objet de manière unique.
- Propriétés d'assistance : Si la description des propriétés obligatoires est insuffisante pour identifier l'objet, un ensemble de propriétés non obligatoires sera ajouté à la description les unes après les autres jusqu'à ce qu'il y ait suffisamment de données pour identifier l'objet.
- Identificateur ordinal : Si les propriétés d'assistance n'entraînent pas non plus une identification unique d'un objet, un identificateur ordinal spécial est ajouté par QTP, tel que l'emplacement de l'objet sur la page ou dans le code source.
C'est ainsi que QTP forme des objets de test. Il utilise cette description d'objet de test pour rechercher les objets sur lesquels agir pendant une session d'exécution. Il choisit les objets qui correspondent parfaitement à la description qu'il contient. Ces objets sont appelés Objets d'exécution.
À moins que votre application n'ait changé de manière significative, la description de l'objet de test de QTP est suffisante pour trouver un objet.
Pour l'objet WinButton que nous avons dans notre application Flight, voyons quelles propriétés QTP a stockées. Ces informations sont disponibles dans le référentiel d'objets. L'option de menu «Resources-> Object Repository» lancera le OU pour nous. Vous pouvez également utiliser CTRL + R ou cliquer sur l'icône.
Si vous remarquez dans la fenêtre ci-dessus, il a stocké le «texte» dans le WinButton comme sa description pour identifier ce bouton au moment de l'exécution.
Pour les applications plus complexes, le testeur peut ajouter ou supprimer certaines propriétés pour rendre la description suffisamment robuste pour identifier plus précisément l'objet lors de l'exécution. Pour ce faire, cliquez simplement sur l’icône «+».
Toutes les autres propriétés de l'objet seront affichées. L'utilisateur peut choisir d'ajouter une ou plusieurs de ces propriétés.
Il y a aussi quelque chose qui s'appelle ' Identifiant de relation visuelle ”Dans l'écran OU pour les propriétés WinButton.
Il s'agit d'une fonctionnalité qui prend en charge la reconnaissance d'objets en fonction de leurs objets voisins dans l'AUT. Une fois défini, cela crée une sorte de lien pour les composants les moins stables de votre AUT avec les objets qui sont plus identifiables de manière unique. QTP identifiera ces objets tant qu'ils conservent leur position relative par rapport à ces objets uniques.
Pour définir une sorte de lien de position, nous allons devoir cliquer sur cette colonne dans le OU et l'écran suivant apparaît:
Dans cet écran, sélectionnez le signe «+» pour ajouter un objet avec lequel vous voulez que votre objet de test ait un lien de position.
Je vais choisir «Nom de l'agent» et dire que cet objet doit être au-dessus du bouton «OK».
Voici comment j'ai défini cela:
Désormais, au cas où certaines propriétés du bouton OK changeraient à l'avenir, QTP l'identifiera si «Nom de l'agent» est au-dessus.
Identification intelligente
quelle est la différence entre sql et sql server
C'est le mécanisme utilisé par QTP dans l'une de ces deux situations. La description d'un objet que QTP possède:
- Ne correspond à aucun objet d'exécution
- Correspond à plusieurs objets
C'est un peu un concept avancé, donc nous y reviendrons plus tard via quelques exemples pour une compréhension facile et élaborée.
Identificateur ordinal
Il s'agit d'une valeur numérique qui représente l'ordre relatif de l'objet avec des objets qui ont une description similaire. Si un objet 1 et un objet 2 ont les mêmes propriétés obligatoires et d'assistance, alors l'identificateur ordinal sera utilisé pour reconnaître l'objet de manière unique.
Cette valeur est liée aux autres objets de l'écran, donc au cas où quelque chose changerait dans l'écran, cet identifiant pourrait ne pas être utile. Il convient de noter que, si les propriétés obligatoires et d'assistance suffisent, aucun identificateur ordinal n'est attribué à l'enregistrement. Il peut être ajouté ultérieurement en cliquant sur la colonne respective de l'objet dans le bloc OU
Il existe 3 types d'identificateurs ordinaux:
- Indice: ceci est basé sur l'ordre d'apparition d'un objet dans le code d'application
- Lieu: en fonction de l'emplacement dans un écran, une boîte de dialogue ou une page
- Temps de creation: Ceci n'est utilisé que pour les objets du navigateur. Dans le cas où 2 navigateurs avec des propriétés similaires existent, alors celui qui est créé en premier et le suivant est pris en compte.
Par exemple, comprenons comment l’identifiant «index» fonctionne dans notre écran de connexion aux applications de vol:
Ce sont les composants suivants:
Comme vous pouvez le voir, le texte statique et les zones d’édition ont la même propriété «texte».
Si je sais que l'un d'eux est un texte statique et l'autre est un objet WinEdit, alors il n'y a aucun problème. Dites si tous ceux-ci sont traités comme WinObject, je devrai spécifier sur quel objet agir. Cela ne se produira que lorsque l'identification obligatoire, assistée et intelligente aura échoué. Donc, pour dire à QTP ce qui est quoi, je vais attribuer un identifiant ordinal «Index». Je le ferai depuis la salle d'opération.
Je définirai l'identificateur de texte statique du nom de l'agent sur 0 et pour la zone d'édition, je le définirai sur 1.
Voici à quoi ça ressemble:
Donc, si j'ai besoin d'accéder au texte statique, je le ferai comme suit:
WinObject ('texte: = Nom de l'agent:', index: = 0) - Cela fera référence au texte statique
WinObject ('texte: = Nom de l'agent:', index: = 1) - Cela fera référence à la boîte d'édition
La même théorie s'applique également à l'identificateur d'emplacement, sauf que nous choisirons l'emplacement dans la fenêtre pour déterminer la valeur numérique applicable à un certain objet.
Configuration des propriétés d'identification d'objet:
Les propriétés d'assistance et les identificateurs ordinaux obligatoires à prendre en compte pour qu'un objet d'une certaine classe soit reconnu peuvent être configurés en utilisant «Outils-> Identificateur d'objet». Nous pouvons également définir les propriétés d'identification intelligente via cette fenêtre.
La fenêtre ressemble à ceci:
Comme on peut le voir sur cette image ci-dessus, l'environnement peut être choisi dans la liste déroulante. Une fois que cela est choisi, les classes d'objets dans les environnements correspondants sont affichées dans la liste. Une fois qu'un objet est sélectionné, les propriétés obligatoires et d'assistance s'affichent. L'utilisateur peut ajouter / supprimer des propriétés supplémentaires à cette liste.
En outre, l'identification intelligente peut être activée / désactivée pour une certaine classe d'objets si nécessaire. Pour définir l'identifiant ordinal, il existe une liste déroulante qui peut être choisie pour identifier l'objet à l'aide de l'emplacement, de l'index ou de l'heure de création (uniquement pour le type de navigateur uniquement).
Nous résumerons les concepts fondamentaux avant de passer à des programmes QTP à part entière. Le prochain article QTP aura différents modes d'enregistrement, Object Spy, Object Repository, etc. détails.
=> Visitez ici pour la série de didacticiels de formation QTP
lecture recommandée
- Référentiel d'objets dans QTP - Tutoriel # 22
- Tutoriel QTP # 18 - Explication des cadres basés sur les données et hybrides avec des exemples QTP
- Tutoriel QTP n ° 24 - Utilisation d'objets virtuels et de scénarios de récupération dans les tests QTP
- Tutoriel QTP # 6 - Comprendre les paramètres d'enregistrement et d'exécution QTP pour notre premier test
- Didacticiel QTP # 23 - Identification des objets intelligents QTP, point de synchronisation et analyse des résultats de test
- Tutoriel QTP # 8 - En savoir plus sur les modes d'enregistrement QTP, l'espion d'objets et les référentiels d'objets
- Paramétrage dans QTP (partie 2) - Tutoriel QTP # 20
- Didacticiels QTP - Plus de 25 didacticiels de formation Micro Focus Quick Test Professional (QTP)