Identificazione intelligente in QTP/UFT con l'esempio
โก Riepilogo intelligente
L'identificazione intelligente รจ un meccanismo di ripiego in UFT Un metodo per individuare un oggetto quando la sua descrizione appresa non corrisponde piรน all'applicazione in fase di test, utilizzando proprietร di filtro di base e opzionali per restringere l'elenco dei candidati a una sola corrispondenza.

Che cos'รจ l'identificazione intelligente in QTP/UFT?
Smart Identification รจ un meccanismo di fallback per il riconoscimento degli oggetti in OpenText UFT Uno, lo strumento precedentemente noto come HP QuickTest Professional (QTP). Se il normale processo di identificazione non riesce a trovare una corrispondenza univoca per la descrizione appresa di un oggetto, UFT Attiva l'identificazione intelligente, a condizione che il meccanismo sia abilitato nelle impostazioni di identificazione degli oggetti per la classe di quell'oggetto.
A differenza della descrizione appresa, l'identificazione intelligente non richiede una corrispondenza esatta per ogni proprietร memorizzata. Valuta due categorie di proprietร per restringere il gruppo di oggetti candidati a uno solo:
- Proprietร del filtro di base. Le proprietร fondamentali di una classe di oggetti di test; quelle i cui valori non possono cambiare senza alterare l'essenza dell'oggetto originale.
- Proprietร del filtro opzionali. Proprietร di supporto che aiutano a identificare un oggetto ma che hanno maggiori probabilitร di cambiare nel tempo.
Quando Smart Identification รจ in esecuzione, UFT "Dimentica" la descrizione appresa e ricostruisce un nuovo elenco di candidati contenente ogni oggetto che corrisponde a tutte le proprietร del filtro di base. Quindi restringe ulteriormente tale elenco, controllando una alla volta le proprietร del filtro opzionale, finchรฉ non rimane un solo oggetto.
Se l'identificazione intelligente viene attivata durante una sessione di esecuzione, l'albero dei risultati del test registra un messaggio di avviso che conferma l'utilizzo del meccanismo e viene inserito un passaggio di identificazione intelligente nei risultati in modo che la deviazione dalla descrizione appresa rimanga visibile.
L'identificazione intelligente si posiziona al terzo posto UFTLa gerarchia di identificazione degli oggetti si trova dopo la descrizione appresa e qualsiasi identificatore di relazione visiva, e prima dell'identificatore ordinale utilizzato come ultima risorsa. Capire dove si colloca spiega perchรฉ disabilitarlo completamente, piuttosto che correggere le proprietร sottostanti, raramente rappresenta la scelta migliore a lungo termine per uno script che viene eseguito frequentemente.
Proprietร del filtro di base rispetto alle proprietร del filtro opzionale
Entrambi i filtri lavorano insieme, ma svolgono ruoli diversi nel processo di eliminazione descritto in precedenza. Il confronto seguente chiarisce quando viene utilizzato ciascuno e quanta capacitร di eliminazione offre.
| Aspetto | Proprietร del filtro di base | Proprietร filtro facoltative |
|---|---|---|
| Ruolo | Creare l'elenco iniziale dei candidati | Restringere l'elenco dei candidati a un solo oggetto |
| Stabilitร | Quasi mai si cambia senza cambiare l'identitร dell'oggetto | Puรฒ cambiare periodicamente senza modificare l'identitร dell'oggetto |
| Regola di corrispondenza | Ogni candidato deve corrispondere a tutte le proprietร di base | Si controlla una proprietร alla volta; una proprietร viene saltata se ciรฒ escluderebbe tutti i candidati |
| Esempio tipico | Tag HTML, classe oggetto, indice | Nome, ID HTML, testo alternativo, fonte dell'immagine |
| Dove configurato | Identificazione oggetto > Configura > Proprietร filtro base | Identificazione oggetto > Configura > Proprietร filtro opzionali |
Poichรฉ la stessa proprietร non puรฒ essere presente in entrambi gli elenchi, รจ necessario pianificare attentamente la suddivisione. Le proprietร che definiscono l'essenza di un oggetto appartengono all'elenco di base; le proprietร che servono semplicemente a distinguerlo da oggetti simili appartengono all'elenco facoltativo.
Come funziona l'identificazione intelligente: il processo passo dopo passo
L'identificazione intelligente si attiva solo dopo che la descrizione appresa e qualsiasi identificatore di relazione visiva non riescono a individuare un singolo oggetto. Una volta attivata, UFT funziona attraverso un processo di eliminazione prevedibile in quattro fasi:
- Ricostruire l'elenco dei candidati. UFT Ignora la descrizione appresa e analizza il genitore dell'oggetto alla ricerca di ogni oggetto che corrisponda a tutte le proprietร del filtro di base.
- Applica la prima proprietร facoltativa. UFT Rimuove tutti i candidati che non corrispondono alla prima proprietร nell'elenco Proprietร filtro opzionali.
- Valutare il risultato. Se rimane piรน di un candidato, UFT ripete il passaggio precedente con la proprietร opzionale successiva. Se un filtro eliminasse ogni candidato rimanente, UFT salta quella proprietร e passa alla successiva.
- Fermati a una partita. UFT Ripete il ciclo di filtraggio e valutazione finchรฉ non rimane esattamente un oggetto, oppure finchรฉ non esaurisce le proprietร opzionali da controllare.
Se il processo di eliminazione non riesce ancora a isolare un singolo oggetto, UFT Il sistema ricorre alla descrizione appresa piรน un identificatore ordinale, come indice, posizione o data di creazione. Se anche questa combinazione non riesce a identificare l'oggetto, la sessione di esecuzione si interrompe e visualizza un errore di runtime.
Come attivare o disattivare l'identificazione intelligente
L'identificazione intelligente รจ configurata per classe di oggetti di test da Strumenti > Identificazione degli oggetti. Seleziona l'ambiente e la classe oggetto, attiva Abilita l'identificazione intelligente, quindi fare clic Configurazione per scegliere le proprietร di filtro di base e opzionali per quella classe. La stessa finestra di dialogo consente di disattivare l'opzione per una classe che dovrebbe sempre utilizzare la sua descrizione appresa.
Come funziona l'identificazione intelligente (video esplicativo)
Il video qui sotto illustra il processo di eliminazione del filtro di base e del filtro opzionale con un esempio pratico.
Clicchi Qui. se il video non รจ accessibile
Vantaggi e svantaggi dell'utilizzo dell'identificazione intelligente
L'identificazione intelligente aumenta la resilienza, ma tale resilienza comporta un costo in termini di tempo di esecuzione. Valutate attentamente entrambi gli aspetti prima di lasciarla abilitata di default in un intero repository di oggetti.
- โ Resiste a piccole modifiche dell'interfaccia utente: Un attributo rinominato o una posizione spostata nella pagina non causano piรน l'interruzione di ogni script che interagisce con l'oggetto.
- โ Riduce la manutenzione del repository degli oggetti: Dopo le piccole release del front-end, i tester dedicano meno tempo alla registrazione degli oggetti.
- โ Rimane visibile nei risultati: Ogni invocazione registra un avviso, in modo che i team possano verificare con quale frequenza il fallback รจ effettivamente necessario.
- โ ๏ธ Esecuzione dei test piรน lenta: La creazione e la selezione di un elenco di candidati richiedono tempi sensibilmente piรน lunghi rispetto alla ricerca diretta di un immobile, e i costi si moltiplicano per un ampio numero di proprietร .
- โ ๏ธ Puรฒ mascherare difetti reali: Se Smart Identification rileva silenziosamente un oggetto simile, una vera e propria regressione dell'interfaccia utente potrebbe passare inosservata.
- โ ๏ธ Necessita di revisione periodica: Le proprietร di filtro di base e opzionali necessitano comunque di revisioni periodiche man mano che l'applicazione si evolve.
La maggior parte dei team lascia attiva l'Identificazione intelligente per gli script esplorativi e a bassa frequenza, per poi disattivarla selettivamente sugli oggetti critici per le prestazioni una volta che le proprietร di identificazione dell'oggetto si sono stabilizzate.
Modifica la proprietร dell'oggetto per evitare l'identificazione intelligente
La flessibilitร di Smart Identification ha un costo in termini di tempo di esecuzione, come descritto in precedenza, quindi molti team preferiscono correggere direttamente le proprietร di identificazione degli oggetti piuttosto che affidarsi ripetutamente al meccanismo di fallback. Due segnali indicano che una correzione delle proprietร รจ preferibile a un fallback in fase di esecuzione: un avviso di Smart Identification che compare quasi a ogni esecuzione e uno script che risulta sensibilmente piรน lento da quando il fallback ha iniziato a essere attivato. Entrambi i casi indicano un oggetto le cui proprietร di identificazione predefinite non sono piรน adatte all'applicazione, piuttosto che un problema temporaneo dell'interfaccia utente. Il video seguente mostra la soluzione su un modulo di accesso reale.
Clicchi Qui. se il video non รจ accessibile
Trascrizione del video: punti chiave
- L'identificazione intelligente rallenta l'esecuzione degli script, il che non รจ auspicabile per suite di grandi dimensioni o eseguite frequentemente.
- Per evitarlo completamente, modifica le proprietร di identificazione dell'oggetto predefinite anzichรฉ affidarti al meccanismo di fallback.
- In Identificazione degli oggetti, rimuovere โnameโ dalle proprietร obbligatorie e sostituirlo con โHTML idโ per rendere il test indipendente dalle modifiche del nome.
- Registra nuovamente gli stessi passaggi una volta aggiornato l'elenco delle proprietร obbligatorie.
- Se in seguito il nome cambia da "Invia" a "Accedi", lo script viene eseguito senza attivare l'identificazione intelligente.
- Analogamente, se una qualsiasi proprietร obbligatoria o di supporto di un oggetto in fase di test cambia frequentemente, sostituiscila con una proprietร piรน stabile per mantenere veloce l'esecuzione dello script.
- La messa a punto delle proprietร รจ un'abilitร che si acquisisce con l'esperienza; migliora man mano che si utilizza lo strumento.
Disabilitare l'identificazione intelligente tramite VBScript
L'identificazione intelligente puรฒ anche essere disattivata per un'intera sessione di esecuzione senza toccare il repository degli oggetti, utilizzando il Disabilitare la riproduzione tramite algoritmo Impostazione di runtime. Questa opzione รจ utile quando uno script deve fallire immediatamente in caso di mancata corrispondenza delle proprietร , anzichรฉ ricorrere silenziosamente al processo di eliminazione.
' Disable Smart Identification for this run session Setting("DisableReplayUsingAlgorithm") = 1 Browser("Mercury Tours").Page("Find Flights").WebEdit("userName").Set "mercury" ' Re-enable Smart Identification once the strict steps are done Setting("DisableReplayUsingAlgorithm") = 0
Il periodo di disabilitazione deve essere il piรน breve possibile. I passaggi eseguiti al suo interno devono corrispondere esattamente alla descrizione appresa, in modo che qualsiasi deviazione legittima nell'applicazione in fase di test provochi un errore immediato anzichรฉ un ripristino graduale.
Risorse
Scarica le pagine web utilizzate nel tutorial precedente per esercitarti.

