Durante l'esecuzione di una sessione Citrix, il test utilizza gli eventi della finestra o il riconoscimento delle immagini per essere sicuri che le azioni input utente corrette siano sincronizzate con gli eventi dell'applicazione provenienti dal server Citrix.
Il meccanismo di sincronizzazione consente la sincronizzazione del test senza basarsi sul tempo, che potrebbe variare con il carico sul server Citrix.
La sincronizzazione è differente dalla funzione dei punti di verifica. I punti di verifica controllano i valori specificati dell'applicazione, come ad esempio le sincronizzazioni di una finestra, e producono uno stato del test: riuscito, non riuscito, errore o non conclusivo. La sincronizzazione è invece utilizzata per l'esecuzione di un test e produce i timeout di sincronizzazione nel log del test quando il test non riesce a riconoscere l'output del server.
La sincronizzazione si verifica sugli eventi della finestra oppure mediante il riconoscimento di un'area della schermata specificata.
- La sincronizzazione degli eventi della finestra viene prodotta automaticamente dal server Citrix. Quando viene eseguito il test, gli utenti virtuali inviano le azioni dell'utente emulate al server, come ad esempio azioni da tastiera o da mouse e il server risponde con eventi di finestra come create, activate o destroy. Il test attende quindi che l'evento della finestra previsto si verifichi prima di inviare l'azione utente successiva al server. Il test utilizza gli stili, e facoltativamente le posizioni, le dimensioni e i titoli della finestra per riconoscere le finestre.
- La sincronizzazione dell'immagine consente di richiedere un altro riconoscimento dei contenuti dell'area dello schermo. Il test può eseguire la sincronizzazione sia su un codice hash bitmap univoco calcolato dall'immagine che su una stringa di testo richiamata dall'immagine mediante il riconoscimento dei caratteri ottici. In alcune applicazioni, come ad esempio browser web o elaboratori di testi, il contenuto reale della finestra si modifica più frequentemente rispetto agli oggetti della finestra. In questi casi, è necessario aggiungere manualmente una sincronizzazione dell'immagine a parti critiche del test durante la registrazione, in modo che il test possa sincronizzarsi con il contenuto della finestra.
Durante l'esecuzione del test, il test attende che l'evento della finestra o il riconoscimento immagini sincronizzi le azioni utente indipendentemente dal carico sul server. Se un evento della finestra non viene eseguito oppure se un'immagine prevista non viene riconosciuta, il test produce un timeout di sincronizzazione che viene quindi riportato nel log del test. Il test tenta di riprendere l'esecuzione al successivo punto di sincronizzazione.
Il ritardo del timeout di base è specificato nelle preferenze di creazione del test Citrix, tuttavia; il ritardo corrente varia con il livello di sincronizzazione.
Esistono tre livelli di sincronizzazione per gli eventi delle finestre e le immagini che è possibile specificare per ciascun elemento dell'editor di test:
- Condizionale: questo è il funzionamento predefinito per le finestre principali e le caselle di dialogo. Se la sincronizzazione non riesce, il test tenta di continuare e il timeout di sincronizzazione viene registrato nel report delle prestazioni Citrix e nel log del test.
- Obbligatorio: se la sincronizzazione ha esito negativo dopo un periodo pari a tre volte il ritardo di timeout di base (per impostazione predefinita), il test termina con uno stato di errore e la connessione al server Citrix viene chiusa. L'esecuzione del test prosegue fino alla finalizzazione dei risultati del test.
- Facoltativo: la sincronizzazione non è richiesta ma viene registrata nel log del test. Un timeout si verifica è 10 volte il ritardo del timeout di base.
I valori di timeout predefiniti possono essere sovrascritti per ogni elemento di sincronizzazione nell'editor di test. Il registratore del test imposta automaticamente il livello di sincronizzazione consigliato per gli eventi delle finestre in base alla propria natura:
- Gli eventi create principali della finestra vengono impostati su obbligatorio.
- Altri eventi create della finestra vengono impostati su condizionale.
- Gli eventi destroy principali della finestra vengono impostati su condizionale.
- Altri eventi destroy della finestra vengono impostati su facoltativo.
- Le sincronizzazioni immagini vengono impostate su condizionale.