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.

  • ๐Ÿ” Definizione: Il meccanismo si attiva solo quando la descrizione appresa non riesce a trovare una corrispondenza univoca con un oggetto.
  • ๐Ÿงฉ Due tipologie di proprietร : Le proprietร  di filtro di base definiscono l'oggetto; le proprietร  di filtro opzionali restringono ulteriormente la corrispondenza.
  • โš™๏ธ Processo di eliminazione: UFT Ricostruisce un elenco di candidati a partire dalle proprietร  di base, quindi lo filtra utilizzando le proprietร  opzionali una per una.
  • ๏ธ Configurazione: รˆ possibile abilitare e configurare i filtri per classe di oggetto da Strumenti > Identificazione oggetti.
  • โš ๏ธ Visibilitร  dei risultati: Ogni invocazione registra un passaggio di avviso nell'albero dei risultati del test.
  • ???? Compromesso in termini di prestazioni: Il filtraggio aggiuntivo introduce un sovraccarico in fase di esecuzione su suite di test di grandi dimensioni.
  • ๐Ÿ”ง Correzione manuale: Sostituisci una proprietร  volatile come il nome con una stabile come l'ID HTML per evitare il fallback.
  • ๐Ÿ’ป Controllo dello script: L'impostazione ("DisableReplayUsingAlgorithm") attiva/disattiva l'identificazione intelligente per l'intera sessione di esecuzione.

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:

  1. 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.
  2. Applica la prima proprietร  facoltativa. UFT Rimuove tutti i candidati che non corrispondono alla prima proprietร  nell'elenco Proprietร  filtro opzionali.
  3. 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.
  4. 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.

Abilita/Disabilita l'identificazione intelligente

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.

DOMANDE FREQUENTI

No. L'identificazione intelligente si applica alla maggior parte UFT Un ambiente, incluso Windows, Javae oggetti .NET, non solo Web. La disponibilitร  dipende dalla classe dell'oggetto aggiuntivo e di test, piuttosto che dal tipo di ambiente.

La creazione di un elenco di candidati e il suo filtraggio proprietร  per proprietร  richiede piรน tempo rispetto a una singola corrispondenza con una descrizione appresa. Nei repository di oggetti di grandi dimensioni, l'elaborazione aggiuntiva si accumula, quindi molti team disabilitano questa funzione sugli oggetti critici per le prestazioni.

Sรฌ. Apri l'oggetto nel repository degli oggetti, vai su Proprietร  oggetto > Dettagli aggiuntivi e imposta Abilita identificazione intelligente su Falso solo per quell'oggetto, lasciando invariato il resto del repository.

Risolvono un problema simile in modo diverso. I localizzatori autoriparanti nella tecnologia moderna Strumenti di test dell'intelligenza artificiale La funzionalitร  di riapprendimento automatico consente di reimparare a riconoscere un elemento modificato, mentre l'identificazione intelligente filtra un elenco di proprietร  fisse. Molti team le utilizzano entrambe contemporaneamente.

No. I filtri di identificazione intelligente memorizzano le proprietร  del testo, mentre UFT Le piรน recenti tecniche di identificazione basate sull'intelligenza artificiale e sull'intuito riconoscono gli oggetti visivamente. Le due agiscono come livelli di riserva separati e complementari.

Riassumi questo post con: