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

⚡ Riepilogo intelligente

SystemUtil.Run è il UFT Un comando che avvia un file o un'applicazione all'inizio di una sessione di esecuzione, mentre Set, SetSecure e Type inviano valori e sequenze di tasti alla finestra che aprono.

  • 🔘 Inserimento automatico: Avviare un'applicazione da Windows Avvia il menu durante la registrazione UFT Uno scriverà per te il passaggio SystemUtil.Run.
  • ☑️ Cinque argomenti: L'istruzione Run accetta file, parametri, directory, operazione e modalità, quindi una singola istruzione può aprire, modificare, esplorare, trovare o stampare un file di destinazione.
  • ✅ Insieme contro Tipo: Set scrive un valore direttamente in un campo, mentre Type invia sequenze di tasti grezze come micTab, necessarie a un essere umano.
  • 🧪 Password SetSecure: Le password registrate vengono memorizzate come stringhe codificate che non possono essere riconvertite nel testo originale.
  • ️ Codificatore di password: L'interfaccia grafica di Password Encoder e CryptonCMD.exe producono le stesse stringhe codificate al di fuori di una sessione di registrazione.
  • ???? Denominazione attuale: QTP è ora OpenText Test funzionale (UFT Uno), e SystemUtil.Run sostituisce l'istruzione InvokeApplication precedente.

Istruzioni SystemUtil.Run, SetSecure, Set e Type in un QTP/UFT Una sceneggiatura

SystemUtil.Run in UFT

Ogni test GUI registrato necessita di un primo passaggio che porti l'applicazione da testare sullo schermo. OpenText Test funzionale (UFT Uno, precedentemente Micro Focus UFT e originariamente HP QTP), quel passo è SystemUtil.RunCerchiamo di capire il seguente frammento di codice.

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
  • Il primo passo è il Comando SystemUtil.Run utilizzato di default da UFT/QTP per aprire un'applicazione. Durante la registrazione, utilizzando il Windows Menu Start, siamo passati al "Prenotazione di voloapplicazione. A quel tempo, Micro Focus UFT ha identificato la posizione del file eseguibile e ha inserito il comando SystemUtil.Run per aprirlo.
  • La riga 2 è Impostazione del nome dell'agente come Guru come mostrato nella schermata attiva
  • La riga 3 consiste nel premere il tasto Tab sulla tastiera per portare lo stato attivo dal campo del nome dell'agente al campo della password, che è esattamente questo passaggio. Gli utenti umani devono utilizzare operazioni di tabulazione o clic per concentrarsi su un oggetto particolare sullo schermo. D'altra parte, Test veloce può identificare direttamente un oggetto utilizzando le proprietà dell'oggetto e non richiede queste operazioni di "manovra".Possiamo eliminare questo passaggio, poiché UFT Sarà comunque possibile impostare il campo password anche senza questa operazione.
  • La riga 4 imposta la password come Mercury. UFT Uno crittografa automaticamente le password inserito durante la registrazione per evitare violazioni della sicurezza. Questo valore non può essere decrittografato, ovvero non è possibile recuperare il valore originale utilizzando questi dati criptici. È possibile crittografare esplicitamente una password utilizzando lo strumento di codifica password. Per i nostri scopi di apprendimento, utilizzeremo la password nella sua forma grezza. E anche l'operazione cambierà in Imposta
  • La riga 5 sta facendo clic sul pulsante OK
  • La linea 6 sta chiudendo la finestra

⚠️ Nota sulla versione: il percorso registrato sopra indica il vecchio C:\Program Files\HP\samples\flight posizione utilizzata da HP QTP. L'applicazione di esempio per la prenotazione dei voli viene ancora fornita con UFT Uno, ma nella cartella di installazione corrente, quindi il percorso letterale in uno script registrato oggi sarà diverso.

Clicchi Qui. se il video non è accessibile

Sintassi e argomenti di SystemUtil.Run

La riga registrata qui sopra utilizza solo il primo argomento, ma il metodo ne accetta cinque. Conoscendoli tutti, SystemUtil.Run si trasforma da un artefatto di registrazione in un passaggio di avvio deliberato che è possibile scrivere manualmente.

SystemUtil.Run file, [params], [dir], [op], [mode]
Argomento Necessario? Ciò che fa
filetto Obbligatorio Nome del file o dell'applicazione da eseguire. Un file non eseguibile si apre nell'applicazione associata.
params Opzionale Parametri passati all'applicazione quando filetto è un file eseguibile. Il valore predefinito è una stringa vuota.
dir Opzionale Directory predefinita per l'applicazione o il file. Il valore predefinito è una stringa vuota.
op Opzionale Azione da eseguire: apri, modifica, esplora, trova o stampa. Un valore vuoto esegue l'azione di apertura.
modo Opzionale Numero intero che controlla la modalità di visualizzazione della finestra all'apertura. Il valore predefinito è 1.

Migliori op l'argomento è quello che la maggior parte dei tester non scopre mai. Corrisponde agli stessi verbi Windows Esplora risorse offre questa opzione con un clic destro.

valore operativo Risultato
aprire Apre il file, la cartella o l'eseguibile denominato in filetto.
edit Avvia un editor e apre il documento per la modifica. L'operazione fallisce se il file non è un documento modificabile.
esplora Esplora la cartella denominata in filetto.
Find Avvia una ricerca dal percorso della cartella specificato.
print Stampa il documento denominato in filettoL'operazione fallisce se il file non è stampabile.

Per modoI valori che contano quotidianamente sono 0 (nascondi la finestra e attivane un'altra), 1 (attiva e visualizza alle dimensioni originali), 2 (attiva minimizzata) e 3 (attiva massimizzata). I valori più alti controllano il focus e il comportamento di ripristino e sono raramente necessari in un test.

Esempi di SystemUtil.Run: Applicazioni, browser e file

Gli esempi seguenti costruiscono un argomento alla volta, in modo da poter vedere cosa aggiunge ogni posizione. Incollali in una nuova azione ed eseguili una riga alla volta.

1) solo file — la forma più breve e utile. Un eseguibile nel percorso di sistema non necessita di cartelle e un documento si apre in qualsiasi applicazione. Windows si è registrato.

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

2) file più parametri — qui va inserito tutto ciò che l'applicazione accetterebbe da riga di comando. In questo modo si apre un browser a un indirizzo specifico anziché alla sua pagina iniziale.

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

3) aggiungendo dir — Utile quando un'applicazione si rifiuta di avviarsi a meno che la propria cartella non sia impostata come directory di lavoro.

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

4) aggiungendo op — lo stesso file, quattro risultati diversi.

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) aggiunta della modalità — Apri la finestra a schermo intero in modo che i passaggi successivi non vengano bloccati da un controllo parzialmente nascosto.

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

Poiché la finestra avviata diventa un normale oggetto di test, la riga successiva può controllarla. La documentazione ufficiale associa Run a Type e Close esattamente in questo modo.

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

Nota la descrizione Testo:= modulo in quel frammento: non è necessaria alcuna voce del repository. La stessa idea è trattata in dettaglio in programmazione descrittivae i percorsi hardcoded come quelli sopra sono generalmente meglio conservati in variabili ambientali in modo che uno script venga eseguito su ogni macchina.

Set, SetSecure e Type: quale metodo utilizzare?

Le righe da 2 a 4 dello script registrato utilizzano tre metodi diversi sullo stesso tipo di campo di modifica. Non sono intercambiabili e la scelta di quello sbagliato è una causa frequente del passaggio che viene eseguito silenziosamente senza che venga inserito nulla.

Metodo Ciò che invia Usalo quando
Impostato Scrive un valore di testo semplice direttamente nel campo. Inserimento dati standard, inclusa una password che si desidera mantenere facilmente leggibile.
SetSecure Scrive una stringa codificata che UFT Uno decodifica in fase di esecuzione. Qualsiasi campo password, quindi il valore non compare mai nello script o nei risultati.
Tipo Invia sequenze di tasti non elaborate, inclusi tasti come micTab. Il comportamento della tastiera è parte integrante del test, oppure un controllo reagisce solo ai tasti reali.

Come indicato nella procedura guidata, la pressione del tasto Tab sulla riga 3 esiste solo perché il registratore ha catturato un'abitudine umana. UFT Il campo password viene identificato tramite le sue proprietà, quindi eliminare quella riga non cambia nulla. Sostituendo SetSecure con Set, lo stesso login funziona con una password leggibile.

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

Per andare nella direzione opposta e codificare un valore al di fuori di una sessione di registrazione, utilizzare il Codificatore di password. Lo strumento GUI viene fornito con UFT La stessa codifica è disponibile dalla riga di comando come CryptonCMD.exe -e nella cartella bin del prodotto. Entrambi producono stringhe che puoi inserire in un argomento SetSecure o in un parametro della tabella datiIl fornitore specifica chiaramente che questa codifica non costituisce uno standard di sicurezza: nasconde un valore sullo schermo, non protegge i dati reali dei clienti.

Una volta che questi tre metodi diventano seconda natura, il resto della lingua segue rapidamente — il Nozioni di base di VBScript e il più ampio UFT Una serie di tutorial coprire cicli, condizioni e funzioni riutilizzabili, mentre Object Spy e GetROProperty ti mostrerò quali proprietà UFT Uno è effettivamente corrispondente.

DOMANDE FREQUENTI

Un'istruzione Run viene scritta automaticamente nel test ogni volta che si avvia un'applicazione da Windows Menu Start o finestra di dialogo Esegui durante la registrazione. Grazie.ping l'istruzione scritta a mano dà lo stesso risultato.

No. La stringa codificata non può essere riconvertita nella password originale, motivo per cui un valore perso deve essere ricodificato anziché decrittografato. Sostituire l'intero argomento se la password cambia.

Utilizzare lo strumento Password Encoder fornito con UFT In alternativa, è possibile eseguire CryptonCMD.exe -e seguito dalla stringa presente nella cartella bin del prodotto. Entrambi i comandi restituiscono un valore adatto come argomento di SetSecure o come cella di una tabella dati.

Le impostazioni di registrazione ed esecuzione possono aprire l'applicazione prima del primo passaggio e l'istruzione InvokeApplication legacy funziona ancora. Il fornitore mantiene InvokeApplication solo per compatibilità con le versioni precedenti e consiglia di utilizzare Run al suo posto.

Oltre a Window(…).Close, l'oggetto SystemUtil offre CloseProcessByName, CloseProcessById, CloseProcessByHwnd, CloseProcessByWndTitle e CloseDescendentProcesses, che chiudono tutti i processi avviati dalla sessione di esecuzione.

Gli assistenti basati sull'IA possono generare istruzioni Run, Set e Type a partire da una descrizione in linguaggio naturale e suggerire soluzioni quando un localizzatore non funziona correttamente. Ogni riga generata deve comunque essere verificata rispetto alle proprietà reali dell'oggetto prima di essere eseguita.

Copilot completa automaticamente il codice VBScript in qualsiasi editor supportato, quindi è facile creare una funzione di supporto o un ciclo sui dati di test. UFT Uno dei due non ha il plugin Copilot, quindi il codice viene incollato nell'editor e verificato lì.

Il percorso letterale è la causa più comune: una cartella di installazione diversa, una differenza tra la cartella Programmi a 32 bit e quella a 64 bit, oppure un'unità di rete mappata inesistente. L'inserimento dei percorsi nelle variabili d'ambiente risolve il problema.

Riassumi questo post con: