Cos'è la programmazione descrittiva?
La programmazione descrittiva viene utilizzata per eseguire operazioni su un oggetto nell'AUT la cui definizione non è memorizzata nell'archivio oggetti. Utilizzando questo meccanismo, è possibile ignorare l'identificazione dall'archivio oggetti e fornire la descrizione dell'oggetto nell'istruzione stessa.
Il nome di un oggetto viene semplicemente utilizzato per mappare un oggetto nello script con la sua descrizione in un repository di oggetti. Significa che se si modifica il nome dell'oggetto nello script e nel repository degli oggetti, lo script dovrebbe essere eseguito. Guarda il seguente video su questo concetto
Fare clic qui se il video non è accessibile
Video in evidenza
- Eliminare la descrizione oggetto della casella di modifica Win Nome agente dall'archivio oggetti. Se esegui di nuovo il test, fallirà poiché non è in grado di riconoscere l'oggetto. Esaminiamo il motivo per cui lo script non funziona
- Durante il tempo di esecuzione, Micro Focus UFT identifica l'operazione eseguita sulla casella WinEdit e la descrizione dell'oggetto nell'archivio oggetti viene archiviata come nome agente. Utilizza questo nome per tenere traccia dell'oggetto in un repository di oggetti. 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 nell'archivio oggetti e sostituisce il nome con la descrizione. Quindi utilizza questa istruzione per identificare l'oggetto nell'applicazione sotto test / li>
- Poiché nel nostro caso abbiamo cancellato completamente questa descrizione dell'oggetto, lo script fallisce / li>
- Ma cosa succede se invece di sostituire QTP la descrizione dell'oggetto, tu come tester specifichi direttamente le descrizioni dell'oggetto nel tuo script. Questa non è altro che "Programmazione descrittiva"
Tipi di programmazione descrittiva
È possibile utilizzare la programmazione descrittiva in due modi
- Statico
- Dinamico
Programmazione descrittiva statica
In Static Method, per l'identificazione degli oggetti, specificare la proprietà di un oggetto nel seguente formato
proprietà: = valori,
Questo formato è chiamato coppia valore proprietà ed è racchiuso tra virgolette>
Se il tuo oggetto utilizza più descrizioni per l'identificazione, puoi specificarle utilizzando le virgole >
Quindi nel nostro caso, la descrizione per il nome dell'agente diventa
"nativeclass: = Modifica", "testo allegato: = Nome agente:"
Programmazione descrittiva dinamica
Il secondo metodo per eseguire la stessa azione è utilizzare la programmazione descrittiva dinamica
Nel caso in cui il tuo script utilizzi più volte l'oggetto di programmazione descrittivo candidato, sarà molto faticoso specificare tutte le coppie di valori di proprietà per ogni istruzione
In questi casi, è possibile utilizzare la classe di descrizione fornita da QTP
La sintassi per la creazione di un oggetto descrizione è
Set MyDescription = Description.Create ();MyDescription ("proprietà"). Value = "proprietà-valore";
Questo è il metodo dinamico
Perché utilizzare la programmazione descrittiva?
Trascrizione del video
- La domanda da un milione di dollari è perché utilizzare DP quando il processo di identificazione degli oggetti è gestito da QTP
- Supponi di essere incaricato di testare un portale di lavoro. Immettere una query di ricerca nel portale e
- il test prevede che tu selezioni tutti i lavori disponibili e fai clic sul lavoro di candidatura
- Ma il numero di lavori riflesso 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 si rifletterà
- In questi casi, è possibile utilizzare la programmazione descrittiva. Anche se non conosci il numero e i nomi delle caselle di controllo conosci la classe degli 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 oggetti WebCheckBox. Per fare ciò possiamo creare un oggetto di creazione del 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 a partire 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 la programmazione descrittiva per eseguire oggetti difficili da registrare come pannelli a scomparsa automatica, oggetti con gerarchie mutevoli, oggetti interni annidati, sottomenu.
- È inoltre possibile eseguire manipolazioni avanzate delle stringhe utilizzando la programmazione descrittiva
- Insieme alla proprietà index, la programmazione descrittiva potrebbe essere molto utile per identificare oggetti difficili.
- Se si utilizza la descrizione programmatica per un oggetto nella gerarchia di oggetti, sarà necessario 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 che non è corretto
- Al contrario qui sia per Page che per WinEdit viene utilizzata la programmazione descrittiva che è corretta