Programmation descriptive en QTP / UFT: Dynamique & Statique

Table des matières:

Anonim

Qu'est-ce que la programmation descriptive?

La programmation descriptive est utilisée pour exécuter des opérations sur un objet de l'AUT dont la définition n'est pas stockée dans le référentiel d'objets. À l'aide de ce mécanisme, vous pouvez contourner l'identification du référentiel d'objets et fournir la description d'objet dans l'instruction 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 ici si la vidéo n'est pas accessible

Faits saillants de la vidéo

  • Supprimez la description d'objet du nom de l'agent Win Edit Box du référentiel d'objets. Si vous réexécutez le test, il échouera car il ne peut 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 la description de l'objet dans le référentiel d'objets est stockée en tant que nom de l'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 avec 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 sous test / li>
  • Puisque dans notre cas nous avions complètement supprimé cette description d'objet, le script échoue / li>
  • Mais que se passe-t-il si, au lieu de remplacer la description d'objet par QTP, vous spécifiez directement en tant que testeur les descriptions d'objet dans votre script. Ce n'est rien d'autre que de la "programmation descriptive"

Types de programmation descriptive

Vous pouvez utiliser la programmation descriptive de deux manières

  1. Statique
  2. Dynamique

Programmation descriptive statique

Dans la méthode statique, pour l'identification d'objet, vous spécifiez la propriété d'un objet au format suivant

propriété: = valeurs,

Ce format est appelé paire valeur de propriété et est entouré de virgules inversées>

Si votre objet utilise plusieurs descriptions pour l'identification, vous pouvez spécifier celles en utilisant des virgules >

Donc, dans notre cas, la description du nom de l'agent devient

"nativeclass: = Edit", "texte joint: = Nom de l'agent:"

Programmation descriptive dynamique

La deuxième méthode pour faire la même action consiste à utiliser la programmation descriptive dynamique

Dans le cas où votre script utilise le candidat d'objet de programmation descriptif plusieurs fois, 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 la classe de description fournie par QTP

La syntaxe de création d'un objet de description est

Set MyDescription = Description.Create ();MaDescription ("propriété"). Value = "propriété-valeur";

C'est la méthode dynamique

Pourquoi utiliser la programmation descriptive?

Transcription 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'emplois. Vous entrez 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 le bouton appliquer
  • Mais le nombre de tâches reflété dépendra de la requête de recherche et des travaux disponibles au moment de l'exécution du script, mais il n'y a aucun moyen de prédire à l'avance le nombre de travaux qui seraient reflétés.
  • 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 en tant que "WebCheckBox"
  • Vous pouvez utiliser la méthode ChildObject pour renvoyer des objets appartenant à un parent particulier
  • Une ligne de code comme -
    Définissez allObjects = Browser ("Jobs"). Page ("QTP"). ChildObjects ()
  • Renvoie tous les objets enfants de cette page.
  • Mais nous ne voulons que des objets WebCheckBox. 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 en tant qu'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 à cocher.
  • Ensuite, vous pouvez cliquer sur le bouton Appliquer pour terminer le test
  • Vous pouvez également utiliser la programmation descriptive pour exécuter des objets difficiles à enregistrer tels que 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 de chaînes avancées à l'aide de la programmation descriptive
  • En conjonction avec la propriété index, la programmation descriptive pourrait être très utile pour identifier les objets difficiles.
  • Si vous utilisez la description par programmation 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 de 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 les pages et WinEdit, la programmation descriptive est utilisée, ce qui est correct