DescriptProgrammation ive dans QTP/UFT : dynamique et statique
Qu'est-ce que le DescriptProgrammation ive ?
DescriptLa programmation ive est utilisรฉe pour exรฉcuter des opรฉrations sur un objet dans l'AUT dont la dรฉfinition n'est pas stockรฉe dans le rรฉfรฉrentiel d'objets. En utilisant ce mรฉcanisme, vous pouvez contourner l'identification du rรฉfรฉrentiel d'objets et fournir l'objet Description dans la dรฉclaration elle-mรชme.
Un nom d'objet est simplement utilisรฉ pour mapper un objet dans un script avec sa description dans un rรฉfรฉrentiel d'objets. Cela signifie que si vous modifiez le nom de l'objet dans votre script et votre rรฉfรฉrentiel d'objets, le script doit s'exรฉcuter. Regardez la vidรฉo suivante sur ce concept
Cliquez ร nouveau sur ici si la vidรฉo n'est pas accessible
Extraits vidรฉo
- Supprimer l'objet Description du nom de l'agent Win Modifier Box ร partir du rรฉfรฉrentiel d'objets. Si vous relancez le test, il รฉchouera car il ne pourra pas reconnaรฎtre l'objet. Examinons la raison pour laquelle le script รฉchoue
- Pendant l'exรฉcution, Micro Focus UFT identifie l'opรฉration effectuรฉe sur la boรฎte WinEdit et l'objet DescriptL'objet dans le rรฉfรฉrentiel d'objets est stockรฉ sous le nom d'agent. Il utilise ce nom pour suivre l'objet dans un rรฉfรฉrentiel d'objets. Pour un parent, vous ne pouvez pas avoir deux objets enfants portant le mรชme nom. Par consรฉquent, QTP mappe de maniรจre unique l'objet dans le rรฉfรฉrentiel. Il utilise ensuite la description stockรฉe dans le rรฉfรฉrentiel d'objets et remplace le nom par la description. Il utilise ensuite cette instruction pour identifier l'objet dans l'application testรฉe
- Puisque dans notre cas, nous avions complรจtement supprimรฉ la description de cet objet, le script รฉchoue
- Mais que se passerait-il si, au lieu que QTP remplace la description de l'objet, vous, en tant que testeur, spรฉcifiiez directement les descriptions d'objet dans votre script. Ce n'est rien d'autre que "DescriptProgrammation ive ยป
Types d' DescriptProgrammation ive
Vous pouvez utiliser Descriptprogrammation ive de deux maniรจres
- Statique
- Dynamique
Statique DescriptProgrammation ive
Dans la mรฉthode statique, pour l'identification d'un objet, vous spรฉcifiez la propriรฉtรฉ d'un objet au format suivant
property:=values,
Ce format est appelรฉ paire de valeurs de propriรฉtรฉ et est entourรฉ de virgules inversรฉes.
Si votre objet utilise plusieurs descriptions pour l'identification, vous pouvez spรฉcifier celles-ci ร l'aide de virgules
Ainsi, dans notre cas, la description du nom de l'agent devient
"nativeclass:=Edit", "attached text:=Agent Name:"
Dynamique DescriptProgrammation ive
La deuxiรจme mรฉthode pour effectuer la mรชme action consiste ร utiliser Dynamic Descriptprogrammation vivante
Dans le cas oรน votre script utilise plusieurs fois l'objet de programmation descriptif candidat, il sera trรจs fastidieux de spรฉcifier toutes les paires de valeurs de propriรฉtรฉ pour chaque instruction.
Dans de tels cas, vous pouvez utiliser DescriptClasse ionique fourni par QTP
La syntaxe pour crรฉer un objet de description est
Set MyDescription = Description.Create();
MyDescription("property").Value = "property-value";
Il s'agit de la Mรฉthode dynamique
Pourquoi utiliser DescriptProgrammation ive ?
Transcription de la vidรฉo
- La question ร un million de dollars est de savoir pourquoi utiliser DP lorsque le processus d'identification d'objet est gรฉrรฉ par QTP.
- Supposons que vous soyez chargรฉ de tester un portail d'emploi. Vous saisissez une requรชte de recherche dans le portail et
- votre test s'attend ร ce que vous sรฉlectionniez tous les emplois disponibles et cliquez sur Postuler.
- Mais le nombre de tรขches reflรฉtรฉes dรฉpendra de la requรชte de recherche et des tรขches disponibles au moment de l'exรฉcution du script, mais il n'y a aucun moyen de prรฉdire ร l'avance le nombre de tรขches qui seraient reflรฉtรฉes.
- Dans de tels cas, vous pouvez utiliser la programmation descriptive. Mรชme si vous ne connaissez pas le nombre et les noms des cases ร cocher, vous connaissez la classe des objets comme ยซ WebCheckBox ยป
- Vous pouvez utiliser le Mรฉthode EnfantObject pour renvoyer des objets appartenant ร un parent particulier
- Une ligne de code comme โ
Set allObjects = Browser("Jobs").Page("QTP").ChildObjects() - Renvoie tous les objets enfants de cette page.
- Mais nous voulons seulement WebCheckBox objets. Pour ce faire, nous pouvons crรฉer un objet de crรฉation de filtre et dรฉfinir sa propriรฉtรฉ comme case ร cocher Web et passer ce filtre comme argument pour la mรฉthode ChildObjects
- Dans ce cas, seules les cases ร cocher sont renvoyรฉes.
- Ensuite, vous pouvez รฉcrire un code comme celui-ci qui accรจde ร toute la collection de cases ร cocher ร partir de zรฉro et active toutes les cases.
- Ensuite, vous pouvez cliquer sur le bouton Appliquer pour terminer le test
- Vous pouvez รฉgalement utiliser Descriptive Programmation pour exรฉcuter des objets difficiles ร enregistrer comme les panneaux de masquage automatique, les objets avec des hiรฉrarchies changeantes, les objets internes imbriquรฉs, les sous-menus.
- Vous pouvez รฉgalement effectuer des manipulations avancรฉes de chaรฎnes ร l'aide de la programmation descriptive.
- En conjonction avec la propriรฉtรฉ d'index, la programmation descriptive pourrait รชtre trรจs utile pour identifier des objets difficiles.
- Si vous utilisez la description programmatique pour un objet dans la hiรฉrarchie d'objets, vous devrez utiliser la programmation de description pour les objets enfants suivants.
- Par exemple, pour l'objet page, une programmation descriptive a รฉtรฉ utilisรฉe, mais pour l'objet enfant suivant, le rรฉfรฉrentiel d'objets WinEdit est utilisรฉ, ce qui est incorrect.
- Au contraire, ici pour Page et WinEdit, une programmation descriptive est utilisรฉe, ce qui est correct
