qtp tutorial 7 qtp s object identification paradigm how qtp identify objects uniquely
In che modo QTP identifica un oggetto in modo univoco? - Questo è il settimo tutorial QTP nella nostra serie di formazione QTP.
Ci stiamo attrezzando con tutti i concetti di base che ci consentiranno di scrivere robusti test QTP . Abbiamo coperto il QTP Registra ed esegui impostazioni , Lavorare con la visualizzazione delle parole chiave e gli altri argomenti correlati.
=> Fare clic qui per la serie di tutorial di formazione QTP
Questo è il prossimo articolo della serie che parla di un aspetto cruciale della QTP - Il meccanismo che utilizza per identificare un oggetto in modo univoco . Quando guardi la schermata seguente:
Ci sono 3 pulsanti e 2 caselle di testo insieme a vari altri elementi in questa finestra di dialogo.
Negli esempi precedenti, quando abbiamo inserito il nome utente e la password abbiamo visto come QTP ha registrato le stesse operazioni in termini di codice programmatico e una tabella nella visualizzazione delle parole chiave. Ora, durante la riproduzione come fa QTP a sapere che il valore fornito come nome agente o password deve andare rispettivamente in quelle caselle di modifica? O come fa a sapere su quale pulsante fare clic per inviare i valori inseriti?
Cerchiamo di trovare una risposta a questo.
come apro i file bin
È chiaro che QTP in qualche modo ricorda su quale oggetto agire. Per come lo fa, memorizza l'oggetto nell'AUT come oggetto di prova. Quindi esamina le sue proprietà e classifica l'oggetto. Per esempio, quando incontra il pulsante OK ne esamina le proprietà e in base a queste classifica l'oggetto come 'WinButton'.
QTP ha un insieme predeterminato di proprietà che apprende / memorizza per ogni classe di oggetto che identifica. Ci sono 3 aspetti in questo:
- Proprietà obbligatorie : Questo è l'elenco delle proprietà per una certa classe che QTP memorizza sempre. Potremmo dire che questa è la descrizione dell'oggetto. Controlla anche questo insieme all'oggetto genitore per vedere se la descrizione è sufficiente per identificare l'oggetto in modo univoco.
- Proprietà assistive : Nel caso in cui la descrizione delle proprietà obbligatorie non sia sufficiente per identificare l'Oggetto, una serie di proprietà non obbligatorie verrà aggiunta alla descrizione una dopo l'altra fino a quando non ci saranno dati sufficienti per identificare l'oggetto.
- Identificatore ordinale : Se anche le proprietà assistive non si traducono in un'identificazione univoca di un oggetto, un identificatore ordinale speciale viene aggiunto da QTP, come la posizione dell'oggetto sulla pagina o nel codice sorgente.
Quindi, questo è il modo in cui QTP forma Oggetti di prova. Utilizza questa descrizione dell'oggetto di prova per cercare gli oggetti su cui agire durante una sessione di esecuzione. Sceglie gli oggetti che corrispondono perfettamente alla descrizione che contiene. Questi oggetti vengono chiamati Oggetti in fase di esecuzione.
A meno che la tua applicazione non sia cambiata in modo significativo, la descrizione dell'oggetto di prova che QTP ha è sufficiente per trovare un oggetto.
Per l'oggetto WinButton che abbiamo nella nostra app Flight, vediamo quali proprietà ha memorizzato QTP. Queste informazioni sono disponibili nell'Object Repository. L'opzione di menu 'Risorse-> Repository di oggetti' avvierà l'OR per noi. In alternativa, puoi usare CTRL + R o fare clic sull'icona.
Se noti nella finestra sopra, ha memorizzato il 'testo' nel WinButton come sua descrizione per identificare questo pulsante in fase di esecuzione.
Per applicazioni più complicate, il tester può aggiungere o rimuovere determinate proprietà per rendere la descrizione sufficientemente robusta da identificare l'oggetto in fase di esecuzione in modo più preciso. A tale scopo, è sufficiente fare clic sull'icona '+'.
Verranno visualizzate tutte le altre proprietà dell'oggetto. L'utente può scegliere di aggiungere una o più di queste proprietà.
C'è anche qualcosa chiamato ' Identificatore di relazione visiva 'Nella schermata OR per le proprietà WinButton.
Questa è una funzionalità che supporta ulteriormente il riconoscimento degli oggetti in base agli oggetti vicini nell'AUT. Una volta impostato, questo crea una sorta di collegamento per i componenti meno stabili nel tuo AUT con gli oggetti che sono identificabili in modo più univoco. QTP identificherà questi oggetti fintanto che manterranno la loro posizione relativa rispetto a questi oggetti unici.
Per impostare una sorta di collegamento posizionale dovremo fare clic su questa colonna in OR e verrà visualizzata la seguente schermata:
In questa schermata seleziona il segno '+' per aggiungere un oggetto con il quale desideri che il tuo oggetto di prova abbia un collegamento posizionale.
Sceglierò 'Nome agente' e dirò che questo oggetto dovrebbe essere sopra il pulsante 'OK'.
Ecco come l'ho impostato:
Ora, nel caso in cui alcune proprietà del pulsante OK cambino in futuro, QTP lo identificherà se 'Nome agente' è sopra di esso.
Identificazione intelligente
ciclo di vita dei bug nei test del software
Questo è il meccanismo impiegato da QTP in una di queste due situazioni. La descrizione di un oggetto che ha QTP:
- Non corrisponde ad alcun oggetto runtime
- Corrisponde a più oggetti
Questo è un concetto un po 'avanzato, quindi ci arriveremo in un secondo momento tramite alcuni esempi per una comprensione facile ed elaborata.
Identificatore ordinale
Si tratta di un valore numerico che rappresenta l'ordine relativo dell'oggetto con oggetti che hanno una descrizione simile. Se un oggetto 1 e un oggetto 2 hanno le stesse proprietà obbligatorie e assistive, l'identificatore ordinale verrà utilizzato per riconoscere l'oggetto in modo univoco.
Questo valore è correlato agli altri oggetti dello schermo, quindi nel caso in cui qualcosa cambi nello schermo, questo identificatore potrebbe non essere utile. Va notato che, se le proprietà obbligatorie e assistive sono sufficienti, non viene assegnato un identificatore ordinale alla registrazione. Può essere aggiunto successivamente facendo clic sulla rispettiva colonna dell'oggetto in OR
Esistono 3 tipi di identificatori ordinali:
- Indice: si basa sull'ordine di apparizione di un oggetto nel codice dell'applicazione
- Posizione: in base alla posizione in una schermata, finestra di dialogo o pagina
- Ora di creazione: Viene utilizzato solo per gli oggetti del browser. Nel caso in cui esistano 2 browser con proprietà simili, viene considerato quello creato per primo e quello successivo.
Per esempio, facci capire come funziona l'identificatore 'indice' nella nostra schermata di accesso alle applicazioni di volo:
Questi sono i seguenti componenti:
Come puoi vedere, il testo statico e le caselle di modifica hanno la stessa proprietà 'text'.
Se so che uno di loro è un testo statico e l'altro è un oggetto WinEdit, non ci sono problemi. Diciamo che se tutti questi sono trattati come WinObject, dovrò specificare su quale oggetto agire. Questo accadrà solo quando l'identificazione obbligatoria, assistiva e intelligente avrà fallito. Quindi, per dire a QTP qual è cosa, assegnerò un identificatore ordinale 'Indice'. Lo farò dalla sala operatoria.
Imposterò l'identificatore di testo statico del nome dell'agente come 0 e per la casella di modifica, lo imposterò come 1.
Ecco come appare:
Quindi, se ho bisogno di accedere al testo statico, lo farò come segue:
WinObject ('text: = Agent Name:', index: = 0) - Questo farà riferimento al testo statico
WinObject ('text: = Agent Name:', index: = 1) - Questo farà riferimento alla casella di modifica
La stessa teoria si applica anche all'identificatore di posizione tranne che sceglieremo la posizione nella finestra per determinare il valore numerico applicabile a un determinato oggetto.
Configurazione delle proprietà di identificazione degli oggetti:
Le proprietà obbligatorie e assistive e gli identificatori ordinali da considerare per il riconoscimento di un oggetto di una certa classe possono essere configurati utilizzando 'Strumenti-> Identificatore oggetto'. Possiamo anche impostare le proprietà di identificazione intelligente tramite questa finestra.
La finestra si presenta come segue:
Come si può vedere in questa immagine sopra, l'ambiente può essere scelto dalla casella a discesa. Una volta scelto, le classi di oggetti negli ambienti corrispondenti vengono mostrate nell'elenco. Dopo aver selezionato un oggetto, vengono visualizzate le proprietà obbligatorie e assistive. L'utente può aggiungere / rimuovere proprietà aggiuntive da questo elenco.
Inoltre, l'identificazione intelligente può essere abilitata / disabilitata per una determinata classe di oggetti quando necessario. Per impostare l'identificatore ordinale è disponibile un menu a discesa che può essere scelto per identificare l'oggetto utilizzando Posizione, Indice o Ora di creazione (solo per il tipo di browser).
Riassumeremo i concetti fondamentali prima di passare ai programmi QTP a tutti gli effetti. Il prossimo articolo QTP avrà diverse modalità di registrazione, Object Spy, Object Repository, ecc. Dettagli.
=> Visita qui per la serie di tutorial di formazione QTP
Lettura consigliata
- Repository di oggetti in QTP - Tutorial # 22
- Tutorial QTP n. 18 - Framework basati sui dati e ibridi spiegati con esempi QTP
- Tutorial QTP n. 24 - Utilizzo di oggetti virtuali e scenari di ripristino nei test QTP
- Tutorial QTP n. 6 - Comprensione del record QTP e delle impostazioni di esecuzione per il nostro primo test
- Esercitazione QTP # 23 - Identificazione di oggetti intelligenti QTP, punto di sincronizzazione e analisi dei risultati del test
- Tutorial QTP n. 8 - Informazioni sulle modalità di registrazione QTP, spia di oggetti e archivi di oggetti
- Parametrizzazione in QTP (Parte 2) - Tutorial QTP # 20
- Tutorial QTP - Oltre 25 tutorial di formazione Micro Focus Quick Test Professional (QTP)