Azioni dentro QTP/UFT con l'esempio

⚡ Riepilogo intelligente

Azioni dentro UFT/QTP Suddividere uno script di test in unità logiche e riutilizzabili consente ai tester di creare, gestire e condividere l'automazione più rapidamente. Questa pagina spiega i tre tipi di azioni, come suddividerle e richiamarle e come passare dati tra le azioni.

  • 🧩 Definizione: Un'azione raggruppa una serie di passaggi di test in un'unità modulare e riutilizzabile all'interno di un UFT/QTP script.
  • 🔁 Azioni riutilizzabili: Richiamare la stessa azione più volte, nello stesso test o da qualsiasi altro test.
  • 🔒 Azioni non riutilizzabili: Eseguire solo una volta e solo all'interno del test in cui sono stati creati.
  • 🌐 Azioni esterne: Un'azione riutilizzabile diventa di sola lettura esterna quando viene richiamata da un test diverso.
  • ✂️ Divisione: Suddividi un'azione complessa in azioni sorelle indipendenti o in una coppia genitore-figlio annidata.
  • 📞 Chiamata delle azioni: Inserisci una nuova azione, una copia di un'azione o una chiamata a un'azione esistente.
  • 📤 parametri: Tramite l'istruzione RunAction è possibile passare valori di input e output tra le azioni.
  • 🗂️ Schede tecniche: Utilizza il foglio Globale per i dati relativi all'intero test e il foglio Locale di ciascuna azione per i dati privati.

Che cos'è un'azione in UFT/QTP?

Azione in UFT/QTP Suddividere un test in "unità logiche" o "processi aziendali". Ogni azione raggruppa i passaggi che eseguono un'attività riconoscibile, come l'accesso, la ricerca di un volo o la prenotazione di un biglietto. Le azioni contribuiscono a creare uno script più modulare ed efficiente.

Quando uno script viene creato per la prima volta, è composto da una sola azione. Puoi aggiungere altre azioni al tuo Micro Focus UFT lo script secondo i requisiti, e ogni azione aggiunta mantiene la propria logica e i propri dati locali separati dal resto del test.

Suddividere uno script lungo in azioni si rivela vantaggioso nel momento in cui un test deve essere modificato. Un tester può aggiornare un'azione, come la sequenza di accesso, senza dover intervenire sulla logica di ricerca o di pagamento presente in altre azioni. Questo isolamento trasforma inoltre le azioni in blocchi riutilizzabili che altri script possono richiamare, evitando così di dover registrare nuovamente gli stessi passaggi.

Uno script tipico per la prenotazione di un volo, ad esempio, si suddivide ordinatamente in un'azione di accesso, un'azione di ricerca del volo e un'azione di prenotazione del biglietto. Ognuna di esse ha i propri passaggi e dati locali, quindi un tester che deve solo verificare l'accesso non deve registrare o gestire l'intero flusso di prenotazione.

Tipi di azioni in UFT/QTP: Riutilizzabile, non riutilizzabile ed esterno

UFT/QTP Sono supportati tre tipi di azioni e il tipo scelto determina se un'azione può essere condivisa tra gli script o rimane privata al test in cui è stata creata.

Tipo di azione Dove può correre Modificabile nel test di chiamata
Riutilizzabile Stesso test, più volte, o qualsiasi altro test Sì, dal test che lo possiede
Non riutilizzabile Solo il test in cui è stato creato, e solo una volta Si
Riutilizzabile esterno Chiamata da un altro test come azione condivisa e memorizzata No, è di sola lettura; è modificabile solo la copia locale della tabella dati.

Un'azione riutilizzabile diventa un azione esterna Nel momento in cui un test diverso lo richiama invece del test che lo gestisce, le azioni esterne rimangono di sola lettura nel test chiamante perché un'azione condivisa può essere utilizzata da decine di script contemporaneamente e consentire a ogni chiamante di modificarne i passaggi comprometterebbe gli altri. È comunque possibile parametrizzare la chiamata e lavorare localmente con una copia della relativa tabella dati.

Come regola generale, è consigliabile che una nuova azione non sia riutilizzabile finché la sua logica è specifica per un singolo test. PromoRendilo riutilizzabile non appena un secondo script necessita degli stessi passaggi e aspettati che si comporti come un'azione esterna di sola lettura nel momento in cui il secondo script la richiama effettivamente.

Come dividere, copiare e richiamare azioni in UFT

Man mano che un'azione cresce, mantieniping Ogni passaggio in un unico punto rende lo script più difficile da sottoporre a debug e riutilizzare. UFT consente di suddividere un'azione esistente in due modi quando diventa ingestibile.

  • Separazione indipendente (tra fratelli): L'azione selezionata si divide in due azioni separate che vengono eseguite una dopo l'altra, ciascuna mantenendoping la propria tabella dati locale.
  • Suddivisione annidata (genitore-figlio): L'azione selezionata si suddivide in un'azione principale il cui ultimo passaggio richiama la seconda azione secondaria, preservando una dipendenza logica tra le due.

Una volta che le azioni esistono, UFT offre tre modi per portare un'azione in un test dal inserire menù:

  • Inserire un invito a una nuova azione: Crea una nuova azione vuota all'interno del test corrente.
  • Inserire la call to action: Copia un'azione esistente nella sua interezza, inclusi i checkpoint, la parametrizzazione e la relativa scheda Tabella dati, nel test chiamante. La copia è completamente indipendente, quindi le modifiche non influiscono sull'originale né vengono influenzate da esso. È possibile copiare sia azioni riutilizzabili che non riutilizzabili.
  • Inserire un invito all'azione esistente: Inserisce una chiamata di sola lettura a un'azione riutilizzabile memorizzata in un altro test. Può essere modificata solo nel test in cui è stata creata, il che mantiene sincronizzati tutti i chiamanti e semplifica la manutenzione di suite di test di grandi dimensioni.

Ogni chiamata si riduce a un RunAction Dichiarazione contenuta nel parere dell'esperto:

' Calls Action2, which is stored in Test2, running it for one iteration
RunAction "Action2[Test2]", oneIteration

L'azione viene eseguita tante volte quanto specificato nelle sue proprietà di chiamata. Ad esempio, se l'azione 2 è impostata per essere eseguita a ogni iterazione della tabella dati di Test2, ma l'azione chiamante 1 in Test1 viene eseguita una sola volta, l'azione 2 verrà comunque eseguita una sola volta, perché la chiamata stessa viene attivata una sola volta.

Suggerimento: Quando un test contiene diverse azioni, apri il Flusso di prova riquadro dal menu Visualizza per trascinarli e riordinarli. Ciò modifica la sequenza in cui UFT esegue le azioni senza modificare i passaggi all'interno di ciascuna singola azione.

Il video qui sotto si basa sullo script di accesso in cinque passaggi creato nei tutorial precedenti per Prenotazione di volo e illustra passo passo la creazione, la suddivisione e la chiamata delle azioni. È il video più lungo di questo UFT/QTP serie di tutorial, quindi è utile prendere appunti mentre si guarda.

Clicchi Qui. se il video non è accessibile

Come passare parametri e memorizzare valori di output tra azioni

Oltre a richiamare un'azione, la maggior parte degli script reali deve trasferire dati al suo interno e leggere il risultato ottenuto. UFT assegna a ogni azione i propri parametri di input e output, oltre a diversi modi per memorizzare i risultati restituiti.

Passaggio di parametri da e verso un'azione

Proprio come funzioni o metodo nei linguaggi di programmazione, un'azione può definire input e output parametriQuesto parametro non ha alcuna relazione con Parametrizzazione dei dati di prova trattato in precedenza; i parametri qui appartengono all'azione stessa, non a una colonna della tabella dati. Configurali da Modifica > Azione > Proprietà dell'azioneoppure facendo clic con il pulsante destro del mouse sull'azione nella Vista parole chiave. Passa i valori nella chiamata utilizzando questa sintassi:

' Passes an input value and captures the action's output into myResult
RunAction "Action1", oneIteration, "testuser", myResult

Memorizzazione del valore di output di un'azione

A seconda delle esigenze del resto dello script, è possibile memorizzare il valore restituito da un'azione in uno dei tre seguenti posti:

  • Una variabile: RunAction "Action1", oneIteration, "testuser", myResult memorizza l'output direttamente in myResult.
  • An variabile d'ambiente: creare una variabile definita dall'utente sotto File > Impostazioni > Ambiente, quindi scrivi RunAction "Action1", oneIteration, "testuser", Environment("env_var").
  • Una colonna della tabella dati: RunAction "Action1", oneIteration, "testuser", DataTable("A", dtGlobalSheet) scrive il risultato direttamente nel foglio globale.

Schede dati globali e locali

Le azioni leggono e scrivono i dati di test attraverso due tipi di fogli. Scheda dati globale è unico per l'intero test; qualsiasi azione può leggerlo o scriverci, ed è sempre denominato "Globale". Scheda dati locale è univoco per ogni azione, prende il nome da quell'azione e solo la propria azione può leggerlo o scriverlo.

Uscita da un'azione e controllo dell'iterazione

Quando un passaggio deve interrompere un'azione in anticipo piuttosto che lasciarla proseguire fino al completamento, UFT fornisce quattro affermazioni:

  • ExitAction — interrompe solo l'azione in corso.
  • ExitActionIteration — interrompe l'iterazione corrente dell'azione e passa alla successiva.
  • ExitRun — interrompe immediatamente l'intera esecuzione del test.
  • ExitGlobalIteration — interrompe l'attuale iterazione del test globale e passa alla successiva.

Durante l'esecuzione di a UFT/QTP copione che utilizza azioni, tieni presente le iterazioni globali e le iterazioni locali, poiché entrambe influenzano quante volte un'azione viene effettivamente eseguita. Puoi modificare la frequenza con cui si ripete un'azione chiamata aprendo Proprietà della chiamata di azione > Esegui scheda e impostando lì la modalità di iterazione.

⚠ Errore comune: Un'azione chiamata, impostata per essere eseguita a ogni iterazione locale ma attivata da un'azione padre che viene eseguita una sola volta, verrà comunque eseguita una sola volta. Prima di presumere che un'azione chiamata si ripeta, verificare sia il conteggio delle iterazioni globali dell'azione padre sia le proprietà di chiamata dell'azione figlia.

DOMANDE FREQUENTI

Un'azione è un'azione integrata UFT una funzionalità con il proprio repository di oggetti e tabella dati, e può essere riutilizzabile o meno. funzione È scritto in VBScript puro, è sempre riutilizzabile e non ha né un repository di oggetti né una tabella dati propria.

Sì. Apri le proprietà dell'azione e attiva/disattiva il flag di riutilizzabilità in qualsiasi momento. Se contrassegni un'azione precedentemente riutilizzabile come non riutilizzabile mentre altri test la chiamano ancora, i test che la chiamano falliscono e UFT mostra un avviso finché le chiamate non vengono rimosse.

Le azioni vengono salvate insieme al test come cartelle di azioni con estensione .mtr/.mts, anziché come file di script autonomi. Le librerie di funzioni, al contrario, vengono salvate come file separati con estensione .vbs o .qfl, che qualsiasi test può associare e riutilizzare.

Sì. Gli strumenti di progettazione dei test assistiti dall'IA possono analizzare un flusso registrato e suggerire punti di interruzione logici, come login, ricerca e checkout, come possibili azioni. Un tester dovrebbe comunque verificare che la suddivisione corrisponda alle reali esigenze di riutilizzo prima di finalizzarla.

È utile. L'identificazione automatica degli oggetti ricollega un controllo spostato o rinominato all'interno di un'azione anziché fallire immediatamente, riducendo così il carico di manutenzione sulle azioni riutilizzabili ed esterne condivise da molti script. RevEsaminate attentamente gli oggetti riparati prima di fidarvi completamente.

Riassumi questo post con: