GetRoProperty, GetToProperty dans QTP/UFT avec exemple

⚡ Résumé intelligent

Object Spy révèle les propriétés et les méthodes de tout contrôle de l'application testée, tandis que GetROProperty, GetTOProperty et SetTOProperty lisent et écrivent ces valeurs de propriété à partir d'un QTP or UFT Un seul script à l'exécution.

  • ???? En premier : Object Spy : Pointez-le vers un contrôle pour afficher les propriétés de l'objet de test, les propriétés d'exécution, les méthodes et la hiérarchie complète.
  • ☑️ Deux mondes d'objets : L'objet de test est la description enregistrée ; l'objet d'exécution est le contrôle actif dans l'application.
  • GetROProperty : Lit la valeur actuelle à partir du contrôle en direct ; l'application doit donc être ouverte et l'objet doit exister.
  • 🧪 GetTOProperty : Elle lit plutôt la description enregistrée, ce qui explique pourquoi les deux méthodes peuvent renvoyer des valeurs différentes.
  • Définir la propriété : Modifie la description uniquement pour cette exécution ; le dépôt n’est jamais touché et la modification est annulée à la fin.
  • 📌 Aucune propriété SetRO : Un script peut lire l'application mais ne peut pas y écrire une propriété.

L'espion d'objets et les méthodes GetROProperty, GetTOProperty et SetTOProperty dans QTP et UFT Un

Ce tutoriel montre Objet Espion.

Object Spy peut vous aider à déterminer les propriétés et méthodes utiles associées à un objet dans votre environnement.

Le HP/Micro Focus UFT tutoriels décrit aussi GetROProperty, GetTOProperty et SetTOProperty.

⚠️ Note de version : L'outil décrit ici, commercialisé sous le nom de HP QuickTest Professional, est devenu Micro Focus Unified Functional Testing et est aujourd'hui vendu sous le nom de OpenText Tests fonctionnels (UFT Une). Object Spy et les trois méthodes fonctionnent toujours exactement comme décrit ci-dessous.

Cliquez à nouveau ici si la vidéo n'est pas accessible

Objet Espion

  • L'espionnage d'objets est une fonctionnalité de QTP qui vous permet de visualiser les propriétés et les méthodes des objets de test et d'exécution.
  • Il donne également la syntaxe d'une méthode sélectionnée.
  • Object Spy affiche la hiérarchie complète de l'objet sélectionné.

Cette hiérarchie est importante, car le nom d'une propriété copié depuis Object Spy correspond exactement à la chaîne attendue par les trois méthodes ci-dessous. L'espionnage d'un objet est donc la première étape de presque toutes les tâches de récupération de propriétés.

GetROProperty

  • GetROProperty – est une méthode intégrée utilisée pour récupérer la valeur d'exécution d'une propriété d'objet.

L'utilisation de GetROProperty comporte 4 étapes :

  1. Enregistrez l'objet sur lequel vous souhaitez utiliser la méthode GetROProperty dans Référentiel d'objets.
  2. L'objet enregistré identifie la propriété d'exécution qui peut être utilisée. Vous pouvez utiliser Object Spy.
  3. Utilisez la méthode GetROProperty pour récupérer la propriété d'exécution identifiée et stocker sa valeur dans une variable.
  4. Utilisez cette valeur pour effectuer d'autres déductions.

Étant donné que la valeur est lue à partir du contrôle en direct, l'application doit être ouverte et l'objet doit effectivement exister à l'écran lorsque la ligne est exécutée.

DéfinirTOPropriété et ObtenirTOPropriété

  • Prenons l'exemple d'un bouton Web stocké dans le référentiel d'objets.
  • Lorsque le test est exécuté QTP crée une copie de cet objet appelée Objet de test et la compare avec l'objet d'exécution
  • La méthode GetTOProperty permet de récupérer la valeur d'une propriété de l'objet Test.
  • La méthode SetTOProperty permet de modifier la valeur d'une propriété d'un objet de test.
  • Une fois le test terminé, cet objet de test est supprimé, de même que toutes les modifications que vous avez apportées aux propriétés de l'objet à l'aide de SetTOProperty.
  • Lorsque le test est réexécuté, une nouvelle copie de l'objet de test est créée avec les valeurs de propriété d'origine stockées dans le référentiel d'objets.
  • Vous pouvez envisager d'utiliser GetTOProperty et SetTOProperty lorsque votre script de test comporte plusieurs lignes de code et que votre environnement est sporadique.
  • À noter qu'il n'existe pas de SetROProperty

Syntaxe et exemples

Ces trois méthodes sont appelées sur un objet de test situé à la fin de sa hiérarchie et prennent toutes trois une propriété de description nommée sous forme de chaîne de caractères. Le tableau ci-dessous présente la signature de chacune.

Méthode Syntaxe Lit ou écrit
GetROProperty objet.GetROProperty(Property) Lit le contrôle en direct dans l'application
GetTOProperty objet.GetTOProperty(Property) Lit la description de l'objet de test stocké
Définir la propriété objet.SetTOProperty Propriété, Valeur Rédige la description de l'objet de test uniquement pour cette exécution.

La lecture d'une valeur d'exécution se résume à une seule instruction. Cet exemple, tiré de… Référence officielle pour la récupération et la définition des valeurs, récupère l'adresse cible d'un lien pendant la session d'exécution.

link_href = Browser("Technologies").Page("Technologies").Link("Jobs").GetROProperty("href")

Écrire puis lire une propriété d'un objet de test est tout aussi simple. Le code ci-dessous définit le nom du bouton « Soumettre » sur « my button » et lit immédiatement la même valeur.

Browser("QA Home Page").Page("QA Home Page").WebButton("Submit").SetTOProperty "Name", "my button"
ButtonName = Browser("QA Home Page").Page("QA Home Page").WebButton("Submit").GetTOProperty("Name")

Une vérification typique combine ces deux idées : lire la valeur d’exécution avec GetROProperty, puis la comparer à ce que le test attend.

strValue = Browser("Welcome").Page("Find a Flight").WebList("fromPort").GetROProperty("selection")
If strValue = "Acapulco" Then
    Reporter.ReportEvent micPass, "Default city", "Default city is correct"
Else
    Reporter.ReportEvent micFail, "Default city", "Unexpected value: " & strValue
End If

Différence entre GetROProperty et GetTOProperty

Ces deux noms ne diffèrent que par une lettre et constituent la paire la plus source de confusion dans cet outil. RO signifie « objet d'exécution », TO « objet de test », et chacun effectue une lecture à un emplacement différent.

Point de comparaison GetROProperty GetTOProperty
Source de la valeur Le contrôle en direct dans l'application en cours d'exécution La description enregistrée pour l'objet de test
L'application doit être ouverte Oui Non
Détecte une modification de SetTOProperty Non Oui, pour la session actuelle
Utilisation typique Vérifier ce que l'utilisateur voit réellement Vérification ou débogage de la manière dont l'objet est identifié
Correspondance avec le setter Aucun — il n'y a pas de SetROProperty Définir la propriété

Un exemple concret met en évidence la différence. Attribuez un identifiant HTML à une liste qui n'en possède aucun, puis relisez-la des deux manières : GetROProperty renvoie une chaîne vide car l'application n'a jamais été modifiée, tandis que GetTOProperty renvoie la valeur qui vient d'être écrite dans la description.

Erreurs courantes et comment les corriger

La récupération des propriétés échoue pour un petit nombre de raisons prévisibles. Le tableau répertorie les plus fréquentes rencontrées par les testeurs.

Symptôme Causes Fixer
L'appel renvoie une chaîne vide Le nom de la propriété est incorrect ou l'objet ne l'expose pas. Repérez à nouveau l'objet et copiez le nom de la propriété exactement comme indiqué.
Objet introuvable à la ligne GetROProperty Le contrôle n'avait pas encore été rendu. Ajoutez une étape de synchronisation avant la lecture
GetROProperty ignore une modification de SetTOProperty Les deux méthodes ciblent des objets différents par conception Lisez la modification avec GetTOProperty à la place
Une modification SetTOProperty disparaît Les modifications apportées aux objets de test ne sont valables que pour l'exécution en cours. Modifiez l'objet dans le référentiel ou utilisez programmation descriptive
SetROProperty génère une erreur de syntaxe Une telle méthode n'existe pas. Faites défiler l'application en suivant une étape normale telle que Définir ou Cliquer

Deux habitudes permettent d'éviter la plupart de ces erreurs : examiner le contrôle avant d'écrire la ligne plutôt que de deviner le nom de la propriété, et conserver VBScript Les appels de récupération sont effectués au plus près de l'étape qui nécessite la valeur, de sorte que l'objet soit encore à l'écran au moment de la lecture.

FAQ

Object Spy répertorie les propriétés d'identification que l'outil détient pour cette classe, ainsi que les propriétés natives exposées par le navigateur. Les valeurs des attributs et des styles sont accessibles via les préfixes `attribute` et `style` dans la chaîne de propriétés.

Un objet d'exécution appartient à l'application, et non au test ; l'outil ne pourra donc pas y écrire. Pour modifier le contenu de l'application, utilisez une action classique comme Définir, Sélectionner ou Cliquer.

Non. L'objet de test temporaire est supprimé à la fin de l'exécution, et une nouvelle copie est créée à partir du dépôt lors de la prochaine exécution. Les modifications permanentes doivent être enregistrées dans le dépôt d'objets lui-même.

Oui. Un objet décrit construit en ligne accepte les mêmes appels, donc GetROProperty fonctionne avec programmation descriptive GetTOProperty renvoie alors la valeur issue de la description en ligne plutôt que d'une entrée stockée.

Les outils de localisation assistés par IA classent plusieurs propriétés candidates pour un même contrôle et corrigent une description erronée lorsqu'un attribut change. Cela réduit le temps de vérification manuelle, même si la propriété suggérée nécessite toujours une validation humaine.

Copilot complète la hiérarchie et l'appel de méthode dès qu'il détecte quelques lignes similaires dans le fichier. Il ne peut pas connaître les noms réels de vos objets ni les propriétés exposées par le contrôle ; vérifiez donc chaque chaîne générée dans Object Spy.

Object Spy est un outil d'inspection qui affiche des valeurs pendant la création du script. Un point de contrôle est une étape exécutée au sein du test et qui indique si le test a réussi ou échoué par rapport à une valeur attendue enregistrée.

Uniquement si l'objet existe toujours dans l'application. Un contrôle qui n'a pas été rendu ou qui a été supprimé de la page génère une erreur « objet introuvable » au lieu de renvoyer une valeur vide.

Résumez cet article avec :