Domande frequenti sul riconoscimento oggetti e le mappe di oggetti in Rational Functional Tester

Questo argomento fornisce risposte ad alcune domande frequenti sul riconoscimento oggetti e le mappe di oggetti di test.

Cos'è una mappa di oggetti e perché è necessaria?

Una mappa di oggetti contiene ogni oggetto su cui si è agito durante la registrazione e le proprietà di riconoscimento dell'oggetto. Per ogni proprietà, la mappa contiene anche un peso che indica in che misura Rational Functional Tester si affida a tale proprietà per il riconoscimento.

La mappa di oggetti può essere compilata automaticamente quando viene registrato uno script oppure manualmente aggiungendo oggetti alla mappa.

La mappa di oggetti assiste in una efficiente manutenzione degli script. Quando gli oggetti nell'AUT (application under test) vengono modificati, la mappa di oggetti è una singola origine che è possibile aggiornare. Aggiornando la mappa, tutti gli script che fanno riferimento all'oggetto modificato utilizzano le informazioni aggiornate sull'oggetto.

Cosa succede se due oggetti differenti hanno lo stesso nome?

Rational Functional Tester distingue gli oggetti in base alle proprietà di riconoscimento e alla gerarchia. Ad esempio, se un pulsante esiste in una diversa finestra di livello superiore, esso si presenta come un pulsante differente nella mappa. Se due o più oggetti differenti hanno lo stesso nome, per rendere univoco il nome Rational Functional Tester aggiunge dei suffissi numerici al nome dell'oggetto che è secondo, terzo e così via.

Se ci sono due istanze identiche di un oggetto, come ad esempio due istanze di un browser, Rational Functional Tester fornisce un metodo per gestire l'identificazione.

Qual è la differenza tra una mappa di oggetti privata e una pubblica?

Una mappa di oggetti privata viene utilizzata da un singolo script. Una mappa di oggetti pubblica (condivisa) è utilizzata da più script. L'impostazione predefinita prevede che ogni script utilizzi una mappa di oggetti privata. Ciò è appropriato per singoli utenti che stanno iniziando ad acquisire dimestichezza con tale strumento. Tuttavia, un team di tester che lavora su una applicazione comune deve utilizzare una mappa di oggetti condivisa in modo da potersi avvalere di oggetti definiti in modo globale in una singola mappa.

Cosa significano i pesi nelle proprietà di riconoscimento e come sono utilizzati?

I pesi indicano quanto sia importante una specifica proprietà per identificare un oggetto durante l'esecuzione dello script. Le impostazioni possibili vanno da 0 (non importante) a 100 (molto importante). È possibile modificare i pesi della maggior parte delle proprietà. La proprietà .class è fissa e non può essere modificata.

Se si imposta il peso su 0, il valore di tale proprietà viene ignorato quando si prova a identificare un oggetto.

È possibile modificare i pesi predefiniti assegnati a ciascuna proprietà?

Utilizzare lo strumento di configurazione delle proprietà dell'oggetto per assegnare nuovi pesi predefiniti alle proprietà e definire anche delle nuove proprietà da utilizzare quando si identificano oggetti nelle future registrazioni.

È possibile modificare il valore o il peso di una proprietà per tutti gli oggetti in un progetto o per tutti gli oggetti di uno specifico tipo?

È possibile utilizzare il programma di utilità Trova e modifica della mappa di oggetti per trovare tutti gli oggetti che corrispondono a un criterio quale il nome proprietà, il valore proprietà o vari filtri personalizzati. Le azioni che è possibile eseguire sugli oggetti corrispondenti includono Aggiungi proprietà, Rimuovi proprietà, Modifica valore e Modifica peso. Le modifiche possono essere applicate agli oggetti uno per volta o globalmente.

È possibile unire a una mappa pubblica gli script creati con delle mappe private?

Sì. Per unire gli script, creare una nuova mappa pubblica facendo clic su File > Nuovo > Mappa di oggetti di test. Se si apre una pagina della procedura guidata, chiuderla. Fare clic con il tasto destro del mouse sulla mappa creata e selezionare Unisci oggetti a. Nella finestra di dialogo visualizzata, selezionare gli script da unire. Accertarsi di selezionare la casella di spunta Collega script Functional Tester selezionati per collegare gli script selezionati alla nuova mappa di oggetti unita.

Per informazioni sull'unione di più mappe, consultare Unione di più associazioni oggetti di test.

È possibile rendere pubblica una mappa privata?

Sì. Il contenuto di una mappa privata può essere copiato in una mappa pubblica attenendosi alla seguente procedura:
  1. Selezionare File > Nuovo > Mappa di oggetti di test.
  2. Selezionare la cartella dove si desidera che venga creata la nuova mappa pubblica e immettere quindi il nuovo nome di mappa. È anche possibile selezionare la casella di spunta per impostare questa mappa di oggetti di test come scelta predefinita per i nuovi script Rational Functional Tester. Fare clic su Avanti.
  3. Selezionare Mappe di oggetti di test e script da cui copiare oggetti di test.
  4. Selezionare lo script che contiene la mappa privata che si desidera rendere pubblica. È anche possibile selezionare la casella di spunta Collega script selezionati alla nuova mappa di oggetti di test.

Le modifiche alla gerarchia di mappe di oggetti richiedono delle nuove sezioni nella mappa di oggetti per tutti gli oggetti secondari?

Se le proprietà del nodo principale subiscono modifiche a causa di inserimenti o eliminazioni, o se alla gerarchia viene aggiunto un nuovo nodo, è possibile aggiornare la mappa. Per aggiornare la mappa, utilizzare l'editor di mappe per inserire riferimenti a oggetti che hanno un elemento principale di nuovo inserimento. Si hanno quindi dei riferimenti duplicati per gli oggetti secondari del nuovo oggetto. Per ciascuno di questi riferimenti, trascinare il vecchio oggetto in quello nuovo in modo che l'editor di mappe unifichi gli oggetti. È possibile utilizzare la stessa procedura per eliminare un oggetto dalla gerarchia di mappe.

È possibile modificare le proprietà utilizzate per il riconoscimento di oggetti?

Sì. Aprire l'oggetto nella mappa di oggetti e selezionare quindi Oggetto di test > Aggiorna proprietà di riconoscimento. Utilizzare la ricerca oggetti per puntare all'oggetto. Quando viene visualizzata la finestra di dialogo Aggiorna proprietà di riconoscimento con i tre riquadri, fare clic con il tasto destro del mouse su una proprietà nel riquadro Tutte le proprietà attive e selezionare Aggiungi a proprietà dell'oggetto di test unificato.

Uno script può fare riferimento a più di una mappa di oggetti?

No.

È possibile copiare singoli oggetti da una mappa a un'altra?

No.

Quali sono le metriche di preferenze di una mappa di oggetti quando cresce di dimensioni?

Man mano che una mappa di oggetti cresce, il tempo richiesto per aprire e caricare la mappa aumenta.

Quando viene eseguito uno script, la mappa di oggetti viene caricata la prima volta che occorre durante l'esecuzione. Se si ha una suite di scenari di test che utilizza gli script di test funzionali, la mappa viene caricata quando viene eseguito ogni script perché ogni script è un processo separato. Una tipica installazione ha circa 2000-3000 oggetti (alcune mappe possono essere più grandi o più piccole).

Le metriche mostrate nella tabella 1 sono state calcolate in fase di runtime dello script ma possono anche applicarsi quando la mappa viene caricata. Mostrano che non si verifica un significativo aumento nel tempo di caricamento della mappa finché non viene rilevata una mappa con una dimensione ben oltre quella normale. Il tempo di riproduzione aumenta solo all'inizio dell'esecuzione dello script quando viene caricata la mappa e non rallenta l'esecuzione dello script dopo che la mappa è stata caricata. Inoltre, gli script nidificati (utilizzando la funzione callScript) che condividono la stessa mappa di oggetti condividono anche la stessa istanza di mappa durante l'esecuzione dello script. Pertanto, gli script nidificati non aumentano il tempo di caricamento.

Tabella 1. Metriche della mappa di oggetti
Oggetti nella mappa Secondi per l'esecuzione totale dello script
10 X secondi
600 - 2000 X + 2 secondi
2000 - 11000 X + 3 secondi
più di 11000 X +10 secondi

Feedback