Comprendre SystemUtil.Run, SetSecure, Set, Type : QTP/UFT

⚡ Résumé intelligent

SystemUtil.Run est le UFT Une commande qui lance un fichier ou une application au début d'une session d'exécution, tandis que Set, SetSecure et Type alimentent la fenêtre qu'elle ouvre avec des valeurs et des frappes au clavier.

  • (I.e. Insertion automatique : Lancer une application depuis le Windows Le menu Démarrer pendant l'enregistrement rend UFT Quelqu'un écrira l'étape SystemUtil.Run pour vous.
  • ☑️ Cinq arguments : La fonction Run accepte les paramètres file, params, dir, op et mode, permettant ainsi à une seule instruction d'ouvrir, de modifier, d'explorer, de rechercher ou d'imprimer une cible.
  • Ensemble versus type : La fonction Set écrit directement une valeur dans un champ, tandis que la fonction Type envoie des frappes de touches brutes, telles que micTab, dont un humain aurait besoin.
  • 🧪 Mots de passe SetSecure : Les mots de passe enregistrés sont stockés sous forme de chaînes de caractères encodées qui ne peuvent pas être reconverties en texte original.
  • Encodeur de mot de passe : L'interface graphique de Password Encoder et CryptonCMD.exe produisent les mêmes chaînes encodées en dehors d'une session d'enregistrement.
  • 📌 Dénomination actuelle : QTP est maintenant OpenText Tests fonctionnels (UFT Premièrement), et SystemUtil.Run remplace l'ancienne instruction InvokeApplication.

Les instructions SystemUtil.Run, SetSecure, Set et Type dans un QTP/UFT Un script

SystemUtil.Exécuter dans UFT

Chaque test d'interface graphique enregistré nécessite une première étape qui affiche l'application testée à l'écran. OpenText Tests fonctionnels (UFT L'un, anciennement Micro Focus UFT et à l'origine HP QTP), cette étape est SystemUtil.ExécuterAnalysons le fragment de code suivant.

SystemUtil.Run "C:\Program Files\HP\samples\flight\app\flight.exe"
Dialog("Login").WinEdit("Agent Name:").Set "Guru"
Dialog("Login").WinEdit("Agent Name:").Type micTab
Dialog("Login").WinEdit("Password:").SetSecure "4af272a62666d2e"
Dialog("Login").WinButton("OK").Click
Window("Flight Reservation").Close
  • La première étape est la Commande SystemUtil.Run utilisée par défaut par UFT/QTP ouvrir une application. Pendant l'enregistrement, en utilisant le Windows Menu Démarrer, nous avons navigué vers le "Réservation de vol« application ». À cette époque, Micro Focus UFT Il a identifié l'emplacement de son fichier exécutable et a inséré la commande SystemUtil.Run pour l'ouvrir.
  • La ligne 2 définit le nom de l'agent comme Guru comme indiqué sur l'écran actif
  • La ligne 3 consiste à appuyer sur la touche Tab d'un clavier pour amener le focus du champ du nom de l'agent au champ du mot de passe, ce qui correspond exactement à cette étape. Les utilisateurs humains doivent utiliser la touche Tabulation ou cliquer pour se concentrer sur un objet particulier à l'écran. En revanche, Test rapide peut identifier directement un objet à l’aide des propriétés de l’objet et ne nécessite pas ces opérations de « manœuvres »Nous pouvons supprimer cette étape, car UFT Il sera toujours possible de définir le champ du mot de passe sans cette opération.
  • La ligne 4 définit le mot de passe comme Mercury. UFT L'un d'eux chiffre automatiquement les mots de passe saisi pendant l'enregistrement pour éviter les failles de sécurité. Cette valeur ne peut pas être déchiffrée, c'est-à-dire qu'il n'existe aucun moyen de récupérer la valeur originale à l'aide de ces données cryptées. Vous pouvez chiffrer explicitement un mot de passe à l'aide de l'outil Password Encoder. Pour nos besoins d’apprentissage, nous utiliserons le mot de passe sous sa forme brute. Et l'opération changera également pour Set
  • La ligne 5 clique sur le bouton OK
  • La ligne 6 ferme la fenêtre

⚠️ Note de version : Le chemin indiqué ci-dessus pointe vers l'ancien C:\Program Files\HP\samples\flight emplacement utilisé par HP QTPL'application de réservation de vols d'exemple est toujours fournie avec UFT L'un, mais dans le dossier d'installation actuel ; le chemin d'accès littéral dans un script enregistré aujourd'hui sera donc différent.

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

Syntaxe et arguments de SystemUtil.Run

La ligne enregistrée ci-dessus n'utilise que le premier argument, mais la méthode en accepte cinq. Les connaître tous transforme SystemUtil.Run, artefact enregistré, en une étape de lancement précise que vous pouvez écrire manuellement.

SystemUtil.Run file, [params], [dir], [op], [mode]
Argument Champs obligatoires? Ce qu'il fait
filet Requis Nom du fichier ou de l'application à exécuter. Un fichier non exécutable s'ouvre dans son application associée.
params Optionnel Paramètres transmis à l'application lors de filet est un fichier exécutable. La valeur par défaut est une chaîne vide.
dir Optionnel Répertoire par défaut de l'application ou du fichier. Par défaut, une chaîne vide.
op Optionnel Action à effectuer : ouvrir, modifier, explorer, rechercher ou imprimer. Une valeur vide correspond à l’ouverture.
mode Optionnel Entier qui détermine l'affichage de la fenêtre à son ouverture. La valeur par défaut est 1.

Le op L'argument est celui que la plupart des testeurs ne découvrent jamais. Il correspond aux mêmes verbes. Windows Explorer propose des offres accessibles par un clic droit.

valeur opérationnelle Résultat
ouvert Ouvre le fichier, le dossier ou l'exécutable nommé dans filet.
éditer Lance un éditeur et ouvre le document pour modification. Échoue si le fichier n'est pas un document modifiable.
explorez Explore le dossier nommé dans filet.
trouver Lance une recherche à partir du chemin de dossier spécifié.
impression Imprime le document nommé dans filetÉchec si le fichier n'est pas imprimable.

Pour modeLes valeurs pertinentes au quotidien sont : 0 (masquer la fenêtre et en activer une autre), 1 (activer la fenêtre et l’afficher à sa taille d’origine), 2 (activer la fenêtre réduite) et 3 (activer la fenêtre agrandie). Les valeurs supérieures permettent de contrôler le focus et de rétablir le comportement initial, mais sont rarement nécessaires lors d’un test.

Exemples d'utilisation de SystemUtil.Run : Applications, navigateurs et fichiers

Les exemples ci-dessous ajoutent un argument à la fois, ce qui vous permet de voir l'apport de chaque position. Collez-les dans une nouvelle action et exécutez-les ligne par ligne.

1) fichier uniquement — la forme utile la plus courte. Un fichier exécutable situé dans le chemin système n'a pas besoin de dossier, et un document s'ouvre dans n'importe quelle application. Windows s'y est inscrit.

SystemUtil.Run "notepad.exe"
SystemUtil.Run "C:\Data\Orders.txt"

2) fichier plus paramètres — Tout ce que l'application accepte en ligne de commande doit être saisi ici. C'est ainsi qu'un navigateur s'ouvre sur une adresse spécifique plutôt que sur sa page d'accueil.

SystemUtil.Run "notepad.exe", "C:\Data\Orders.txt"

3) ajout de dir — utile lorsqu'une application refuse de démarrer à moins que son propre dossier ne soit le répertoire de travail.

SystemUtil.Run "flight.exe", "", "C:\Program Files\HP\samples\flight\app\"

4) ajout d'op — le même fichier, quatre résultats différents.

SystemUtil.Run "C:\Data\Orders.txt", "", "", "edit"
SystemUtil.Run "C:\Data", "", "", "explore"
SystemUtil.Run "C:\Data", "", "", "find"
SystemUtil.Run "C:\Data\Orders.txt", "", "", "print"

5) ajout du mode — Ouvrez la fenêtre en plein écran afin que les étapes suivantes ne soient pas bloquées par une commande partiellement cachée.

SystemUtil.Run "notepad.exe", "C:\Data\Orders.txt", "", "open", 3

Comme la fenêtre ouverte devient un objet de test ordinaire, la ligne suivante peut la contrôler. La documentation officielle associe les commandes « Exécuter », « Type » et « Fermer » exactement de cette manière.

SystemUtil.Run "C:\type.txt", "", "", ""
Window("Text:=type.txt - Notepad").Type "happy days"
Window("Text:=type.txt - Notepad").Close

Remarquez le descriptif Texte:= Dans cet extrait, aucune entrée de dépôt n'est nécessaire. Cette même idée est traitée en détail dans… programmation descriptiveet les chemins codés en dur comme ceux ci-dessus sont généralement mieux conservés dans Variables d'environnement Un seul script s'exécute donc sur chaque machine.

Set, SetSecure et Type : quelle méthode utiliser ?

Les lignes 2 à 4 du script enregistré utilisent trois méthodes différentes sur le même type de champ de saisie. Elles ne sont pas interchangeables, et choisir la mauvaise méthode est une cause fréquente d'une étape qui passe sans que rien ne soit saisi.

Méthode Ce qu'il envoie Utilisez-le quand
complet » Inscrit directement une valeur en texte brut dans le champ. Saisie de données normale, y compris un mot de passe que vous souhaitez garder lisible.
Définir la sécurité Écrit une chaîne encodée qui UFT L'un des décodages s'effectue lors de l'exécution. Tout champ de mot de passe, de sorte que sa valeur n'apparaisse jamais dans le script ni dans les résultats.
Type Envoie les frappes de touches brutes, y compris les touches telles que micTab. Le comportement du clavier fait partie du test, ou bien une commande ne réagit qu'aux touches physiques.

Comme l'indique la procédure pas à pas, la touche Tabulation à la ligne 3 n'existe que parce que l'enregistreur a capturé une habitude humaine. UFT Le champ du mot de passe est identifié par ses propriétés ; supprimer cette ligne ne change donc rien. Remplacez SetSecure par Set et la même connexion s'effectuera avec un mot de passe lisible.

Dialog("Login").WinEdit("Password:").Set "mercury"

Pour faire l'inverse et encoder une valeur en dehors d'une session d'enregistrement, utilisez le Encodeur de mot de passeL'outil GUI est fourni avec UFT Un, et le même encodage est disponible à partir d'une ligne de commande comme CryptonCMD.exe -e dans le dossier bin du produit. Les deux produisent des chaînes que vous pouvez déposer dans un argument SetSecure ou dans un paramètre de table de donnéesLe fournisseur précise clairement que cet encodage n'est pas une norme de sécurité : il masque une valeur à l'écran, il ne protège pas les données réelles des clients.

Une fois ces trois méthodes devenues une seconde nature, le reste du langage s'apprend rapidement. Principes de base de VBScript et le plus large UFT Une série de tutoriels couvrir les boucles, les conditions et les fonctions réutilisables, tandis que Object Spy et GetROProperty vous montrer quelles propriétés UFT L'un d'eux est en train de correspondre.

FAQ

Une instruction Run est automatiquement insérée dans le test chaque fois que vous lancez une application à partir de Windows Le menu Démarrer ou la boîte de dialogue Exécuter pendant l'enregistrement. Merci.ping L'instruction saisie manuellement donne le même résultat.

Non. La chaîne encodée ne peut pas être reconvertie en mot de passe d'origine ; c'est pourquoi une valeur perdue doit être réencodée plutôt que déchiffrée. Remplacez l'argument entier si le mot de passe change.

Utilisez l'outil Password Encoder fourni avec UFT Soit vous exécutez CryptonCMD.exe -e suivi de la chaîne de caractères provenant du dossier bin du produit. Les deux méthodes génèrent une valeur utilisable comme argument SetSecure ou comme cellule d'un tableau de données.

Les paramètres d'enregistrement et d'exécution permettent d'ouvrir l'application avant la première étape, et l'instruction InvokeApplication, bien qu'ancienne, reste fonctionnelle. Le fournisseur conserve InvokeApplication uniquement pour assurer la compatibilité avec les versions précédentes et recommande d'utiliser Run.

Outre Window(…).Close, l'objet SystemUtil propose CloseProcessByName, CloseProcessById, CloseProcessByHwnd, CloseProcessByWndTitle et CloseDescendentProcesses, qui arrête tous les processus démarrés par la session d'exécution.

Les assistants IA peuvent générer des instructions Run, Set et Type à partir d'une description en langage clair et suggérer des corrections lorsqu'un localisateur est défaillant. Chaque ligne générée doit néanmoins être vérifiée par rapport aux propriétés réelles de l'objet avant son exécution.

Copilot complète le VBScript dans n'importe quel éditeur qu'il prend en charge, ce qui permet de créer rapidement une fonction d'assistance ou une boucle sur des données de test. UFT Comme je n'ai pas le plugin Copilot, le code est collé dans l'éditeur et vérifié à cet endroit.

Le chemin d'accès littéral est généralement la cause du problème : un dossier d'installation différent, une incompatibilité entre les dossiers Program Files 32 bits et 64 bits, ou un lecteur réseau mappé inexistant. Stocker les chemins d'accès dans des variables d'environnement résout le problème.

Résumez cet article avec :