GetRoProperty, GetToProperty in QTP/UFT con l'esempio

⚡ Riepilogo intelligente

Object Spy rivela le proprietà e i metodi di qualsiasi controllo nell'applicazione in fase di test, mentre GetROProperty, GetTOProperty e SetTOProperty leggono e scrivono i valori di tali proprietà da un QTP or UFT Un solo script in fase di esecuzione.

  • 🔎 Innanzitutto, Object Spy: Puntandolo su un controllo, è possibile visualizzare le proprietà dell'oggetto di test, le proprietà di runtime, i metodi e l'intera gerarchia.
  • ☑️ Due mondi oggettuali: L'oggetto di test è la descrizione memorizzata; l'oggetto di runtime è il controllo attivo nell'applicazione.
  • ✅ GetROProperty: Legge il valore corrente dal controllo in tempo reale, quindi l'applicazione deve essere aperta e l'oggetto deve esistere.
  • 🧪 GetTOProperty: Legge invece la descrizione memorizzata, motivo per cui i due metodi possono restituire valori diversi.
  • ️ ImpostaProprietà: Modifica la descrizione solo per questa esecuzione; il repository non viene mai modificato e la modifica viene scartata al termine.
  • ???? Nessuna proprietà SetRO: Uno script può leggere l'applicazione, ma non può riscrivervi una proprietà.

Object Spy e i metodi GetROProperty, GetTOProperty e SetTOProperty in QTP and UFT Un

Questo tutorial dimostra Spia di oggetti.

Object Spy può aiutare a determinare le proprietà e i metodi utili associati a un oggetto nel tuo ambiente.

HP/Micro Focus UFT esercitazioni descrive anche GetROProperty, GetTOProperty e SetTOProperty.

⚠️ Nota sulla versione: Lo strumento qui descritto è stato distribuito come HP QuickTest Professional, è diventato Micro Focus Unified Functional Testing ed è venduto oggi come OpenText Test funzionale (UFT Uno)Object Spy e tutti e tre i metodi funzionano ancora esattamente come descritto di seguito.

Clicchi Qui. se il video non è accessibile

Spia di oggetti

  • Object Spy è una funzionalità in QTP tramite il quale è possibile visualizzare le proprietà e i metodi degli oggetti sia in fase di test che in fase di esecuzione.
  • Fornisce inoltre la sintassi per un metodo selezionato.
  • Object Spy mostra la gerarchia completa dell'oggetto selezionato.

Tale gerarchia è importante, perché il nome di una proprietà copiato da Object Spy corrisponde esattamente alla stringa prevista dai tre metodi seguenti. Pertanto, l'analisi di un oggetto tramite Object Spy è il primo passo in quasi tutte le operazioni di recupero delle proprietà.

GetROProperty

  • GetROProperty è un metodo integrato utilizzato per recuperare il valore di runtime di una proprietà di un oggetto.

L'utilizzo di GetROProperty prevede 4 passaggi:

  1. Registra l'oggetto su cui vuoi utilizzare GetROProperty in Repository di oggetti.
  2. Per l'oggetto registrato identifica la proprietà di runtime che potrebbe essere utilizzata. È possibile utilizzare Object Spy.
  3. Utilizzare il metodo GetROProperty per recuperare la proprietà Run-time identificata e memorizzarne il valore in una variabile.
  4. Utilizzare questo valore per ulteriori detrazioni.

Poiché il valore viene letto dal controllo in tempo reale, l'applicazione deve essere aperta e l'oggetto deve effettivamente esistere sullo schermo quando la riga viene eseguita.

ImpostaProprietà e OttieniProprietà

  • Consideriamo un pulsante Web memorizzato nel repository degli oggetti.
  • Quando viene eseguito il test QTP crea una copia di questo oggetto chiamata Oggetto di test e la confronta con l'Oggetto di runtime
  • Utilizzando GetTOProperty è possibile recuperare il valore di una proprietà dell'oggetto Test.
  • Utilizzando SetTOProperty è possibile modificare il valore della proprietà di un oggetto di test.
  • Al termine del test, questo oggetto di test viene scartato, così come tutte le modifiche apportate alle proprietà dell'oggetto tramite SetTOProperty.
  • Quando il test viene rieseguito, viene creata una nuova copia dell'oggetto test con i valori delle proprietà originali archiviati nel repository degli oggetti
  • Puoi considerare di utilizzare GetTOProperty e SetTOProperty quando il tuo script di test ha più righe di codice e il tuo ambiente è sporadico
  • Per inciso, non esiste SetROProperty

Sintassi ed esempi

Tutti e tre i metodi vengono chiamati su un oggetto di test alla fine della sua gerarchia e tutti e tre accettano come stringa il nome di una proprietà di descrizione. La tabella riporta la firma di ciascuno.

Metodo Sintassi Legge o scrive
GetROProperty object.GetROProperty(Property) Legge i controlli in tempo reale nell'applicazione
GetTOProperty oggetto.GetTOProperty(Property) Legge la descrizione dell'oggetto di test memorizzato
Imposta la proprietà oggetto.ImpostaProprietà, Valore Scrive la descrizione dell'oggetto di test solo per questa esecuzione

La lettura di un valore in fase di esecuzione è una singola istruzione. Questo esempio, tratto da Riferimento ufficiale per il recupero e l'impostazione dei valori, recupera l'indirizzo di destinazione di un collegamento durante la sessione di esecuzione.

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

Scrivere e poi leggere la proprietà di un oggetto di test è altrettanto breve. La coppia di istruzioni seguente imposta il nome del pulsante Invia sul mio pulsante e legge immediatamente lo stesso valore.

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")

Una tipica verifica unisce le due idee: leggere il valore in fase di esecuzione con GetROProperty, quindi confrontarlo con quello previsto dal test.

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

Differenza tra GetROProperty e GetTOProperty

I due nomi differiscono per una sola lettera e sono la coppia più fonte di confusione all'interno dello strumento. RO sta per oggetto di runtime, TO per oggetto di test, e ognuno legge da una posizione diversa.

Punto di confronto GetROProperty GetTOProperty
Fonte del valore Il controllo in tempo reale nell'applicazione in esecuzione La descrizione memorizzata per l'oggetto di test
L'applicazione deve essere aperta Si Nodo
Rileva una modifica di SetTOProperty Nodo Sì, per la corsa attuale
Utilizzo tipico Verificare ciò che l'utente effettivamente vede. Verificare o eseguire il debug di come viene identificato l'oggetto.
Settore di abbinamento Nessuno — non esiste SetROProperty Imposta la proprietà

Un esempio pratico rende evidente la distinzione. Assegniamo un ID HTML a un elenco che non ne ha, quindi leggiamolo in entrambi i modi: GetROProperty restituisce una stringa vuota perché l'applicazione non è mai cambiata, mentre GetTOProperty restituisce il valore che è stato appena scritto nella descrizione.

Errori comuni e come risolverli

Il recupero delle proprietà fallisce per un numero limitato di motivi prevedibili. La tabella elenca quelli che i tester riscontrano più frequentemente.

Sintomo Causare Fissare
La chiamata restituisce una stringa vuota Il nome della proprietà è errato oppure l'oggetto non la espone Individua nuovamente l'oggetto e copia il nome della proprietà esattamente come indicato.
Oggetto non trovato alla riga GetROProperty Il controllo non aveva ancora dato esito Aggiungere una fase di sincronizzazione prima della lettura
GetROProperty ignora una modifica di SetTOProperty I due metodi, per loro stessa natura, si rivolgono a oggetti diversi. Leggi la modifica con GetTOProperty invece
Una modifica SetTOProperty scompare Le modifiche agli oggetti di test sono valide solo per l'esecuzione corrente. Modifica l'oggetto nel repository oppure usa programmazione descrittiva
SetROProperty genera un errore di sintassi Non esiste un metodo del genere. Guida l'applicazione attraverso un passaggio normale come Imposta o Fai clic

Due abitudini prevengono la maggior parte di questi errori: spiare il controllo prima di scrivere la riga invece di indovinare il nome della proprietà e mantenere VBScript Le chiamate di recupero vengono effettuate in prossimità del passaggio che richiede il valore, in modo che l'oggetto sia ancora visibile sullo schermo al momento della lettura.

DOMANDE FREQUENTI

Object Spy elenca le proprietà di identificazione che lo strumento possiede per quella classe, oltre alle proprietà native esposte dal browser. I valori degli attributi e degli stili vengono raggiunti tramite i prefissi di attributo e stile all'interno della stringa della proprietà.

Un oggetto runtime appartiene all'applicazione, non al test, quindi lo strumento non vi scriverà. Per modificare il contenuto dell'applicazione, è necessario azionare il controllo con un'azione ordinaria come Imposta, Seleziona o Fai clic.

No. L'oggetto di test temporaneo viene eliminato al termine dell'esecuzione e, la volta successiva, ne viene creata una nuova copia dal repository. Le modifiche permanenti vanno inserite direttamente nel repository degli oggetti.

Sì. Un oggetto descritto costruito in linea accetta le stesse chiamate, quindi GetROProperty funziona con programmazione descrittiva Anche GetTOProperty restituisce quindi il valore dalla descrizione in linea anziché da una voce memorizzata.

Gli strumenti di localizzazione assistiti dall'IA classificano diverse proprietà candidate per lo stesso controllo e correggono una descrizione errata quando un attributo cambia. Ciò riduce il ciclo di ricerca manuale, sebbene la proprietà suggerita necessiti comunque di una verifica umana.

Copilot completa la gerarchia e la chiamata al metodo non appena rileva alcune righe simili nel file. Non può conoscere i nomi reali degli oggetti né le proprietà esposte dal controllo, quindi verifica ogni stringa generata in Object Spy.

Object Spy è uno strumento di ispezione che mostra i valori durante la creazione dello script. Un checkpoint è un passaggio che viene eseguito all'interno del test e segnala se il test è superato o meno rispetto a un valore atteso memorizzato.

Solo se l'oggetto esiste ancora nell'applicazione. Un controllo che non è stato visualizzato o che è stato rimosso dalla pagina genera un errore di oggetto non trovato anziché restituire un valore vuoto.

Riassumi questo post con: