Descriptive Programmazione in QTP/UFT: Dinamica e Statica

Cosa è Descriptive Programmazione?

DescriptLa programmazione in tempo reale viene utilizzata per eseguire operazioni su un Object nell'AUT la cui definizione non è memorizzata nell'Object Repository. Utilizzando questo meccanismo, è possibile ignorare l'identificazione dall'Object Repository e fornire l'Object Descriptione nella dichiarazione stessa.

Un nome oggetto viene semplicemente utilizzato per mappare un oggetto nello script con la sua descrizione in un repository di oggetti. Ciò significa che se modifichi il nome dell'oggetto nel tuo script e nel repository degli oggetti, lo script dovrebbe essere eseguito. Guarda il seguente video su questo concetto

Clicchi qui se il video non è accessibile

Video Highlights

  • Elimina l'oggetto Descriptione del nome dell'agente Win Edit Box dal repository di oggetti. Se esegui nuovamente il test, fallirà poiché non sarà in grado di riconoscere l'oggetto. Esaminiamo il motivo per cui lo script non riesce
  • Durante l'esecuzione, Micro Focus UFT identifica l'operazione eseguita sulla casella WinEdit e sull'oggetto Description in Object Repository è memorizzato come Agent Name. Utilizza questo nome per tracciare l'oggetto in un object repository. Per un genitore, non puoi avere due oggetti figlio con lo stesso nome. Quindi, QTP mappa in modo univoco l'oggetto nel repository. Quindi utilizza la descrizione memorizzata in Object Repository e sostituisce il nome con la descrizione. Quindi utilizza questa istruzione per identificare l'oggetto nell'applicazione sottoposta a test
  • Poiché nel nostro caso abbiamo eliminato del tutto la descrizione dell'oggetto, lo script fallisce
  • Ma cosa succede se invece di QTP sostituire la descrizione dell'oggetto, tu come tester specifichi direttamente le descrizioni dell'oggetto nel tuo script. Questo non è altro che”Descriptprogrammazione”

Tipi di Descriptprogrammazione viva

Puoi usare Descriptive programmazione in due modi

  1. statica
  2. Dinamico

statica Descriptprogrammazione viva

Nel metodo statico, per l'identificazione dell'oggetto, si specifica la proprietà di un oggetto nel seguente formato

property:=values,

Questo formato è denominato coppia valori proprietà ed è racchiuso tra virgolette

Se il tuo oggetto utilizza più descrizioni per l'identificazione, è possibile specificarle utilizzando le virgole

Quindi, nel nostro caso, la descrizione per Nome agente diventa

"nativeclass:=Edit", "attached text:=Agent Name:"

Dinamico Descriptprogrammazione viva

Il secondo metodo per eseguire la stessa azione è utilizzare Dynamic Descriptprogrammazione viva

Nel caso in cui il tuo script utilizzi più volte il candidato oggetto di programmazione descrittiva, sarà molto faticoso specificare tutte le coppie di valori di proprietà per ciascuna istruzione

In questi casi, puoi utilizzare DescriptClasse ionica fornito da QTP

La sintassi per creare un oggetto descrizione è

Set MyDescription = Description.Create();
MyDescription("property").Value = "property-value";

Questa è la Metodo Dinamico

Perché usare Descriptive Programmazione?

Trascrizione video

  • La domanda da un milione di dollari è: perché utilizzare DP quando il processo di identificazione degli oggetti è gestito da QTP
  • Supponiamo che ti venga assegnato il compito di testare un portale di lavoro. Inserisci una query di ricerca nel portale e
  • il test prevede che tu selezioni tutti i lavori disponibili e faccia clic sul lavoro Applica
  • Ma il numero di lavori riflessi dipenderà dalla query di ricerca e dai lavori disponibili al momento dell'esecuzione dello script, ma non c'è modo di prevedere in anticipo il numero di lavori che verrebbero riflessi
  • In questi casi, puoi usare la programmazione descrittiva. Anche se non conosci il numero e i nomi delle caselle di controllo, conosci la classe per gli oggetti come "WebCheckBox"
  • È possibile utilizzare il Metodo ChildObject per restituire oggetti appartenenti a un particolare genitore
  • Una riga di codice come –
    Set allObjects = Browser("Jobs").Page("QTP").ChildObjects()
  • Restituirà tutti gli oggetti figlio per questa pagina.
  • Ma vogliamo solo WebCheckBox oggetti. Per farlo possiamo creare un oggetto di creazione filtro e impostare la sua proprietà come casella di controllo web e passare questo filtro come argomento per il metodo ChildObjects
  • In questo caso vengono restituite solo le caselle di controllo.
  • Successivamente, puoi scrivere un codice come questo che accede all'intera raccolta di caselle di controllo partendo da zero e imposta tutte le caselle di controllo su ON.
  • Successivamente, puoi fare clic sul pulsante Applica per completare il test
  • È inoltre possibile utilizzare DescriptProgrammazione attiva per eseguire oggetti difficili da registrare, come pannelli con nascondimento automatico, oggetti con gerarchie variabili, oggetti interni nidificati, sottomenu.
  • Puoi anche eseguire manipolazioni avanzate di stringhe utilizzando la programmazione descrittiva
  • Insieme alla proprietà indice, la programmazione descrittiva potrebbe essere molto utile per identificare oggetti difficili.
  • Se utilizzi la descrizione programmatica per un oggetto nella gerarchia degli oggetti, dovrai utilizzare la programmazione della descrizione per gli oggetti figlio successivi
  • Ad esempio, per l'oggetto pagina è stata utilizzata la programmazione descrittiva, ma per l'oggetto figlio successivo viene utilizzato WinEdit Object Repository, il che non è corretto
  • Qui invece sia per Page che per WinEdit viene utilizzata la programmazione descrittiva che è corretta