Considerazioni sul test dell'interfaccia utente
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Quando si eseguono test automatizzati nella pipeline CI/CD, potrebbe essere necessaria una configurazione speciale per eseguire test dell'interfaccia utente come Selenium, Appium o test codificati dell'interfaccia utente. Questo articolo descrive le considerazioni tipiche per l'esecuzione di test dell'interfaccia utente.
Prerequisiti
Acquisire familiarità con gli agenti e distribuire un agente in Windows.
Modalità headless o modalità interfaccia utente visibile?
Quando si eseguono test Selenium per un'app Web, è possibile avviare il browser in due modi:
Modalità headless. In questa modalità, il browser viene eseguito come di consueto, ma senza che i componenti dell'interfaccia utente siano visibili. Anche se questa modalità non è utile per esplorare il Web, è utile per eseguire test automatizzati in modo automatico in una pipeline CI/CD. I browser Chrome e Firefox possono essere eseguiti in modalità headless.
Questa modalità in genere usa meno risorse nel computer perché il rendering dell'interfaccia utente non viene eseguito e i test vengono eseguiti più velocemente. Di conseguenza, potenzialmente più test possono essere eseguiti in parallelo nello stesso computer per ridurre il tempo totale di esecuzione dei test.
Gli screenshot possono essere acquisiti in questa modalità e usati per la risoluzione degli errori.
Nota
Il browser Microsoft Edge attualmente non può essere eseguito in modalità headless.
Modalità interfaccia utente visibile. In questa modalità il browser viene eseguito normalmente e i componenti dell'interfaccia utente sono visibili. Quando si eseguono test in questa modalità in Windows, è necessaria una configurazione speciale degli agenti .
Se si eseguono test dell'interfaccia utente per un'applicazione desktop, ad esempio test appium usando test winAppDriver o codificati dell'interfaccia utente, è necessaria una configurazione speciale degli agenti .
Suggerimento
I test dell'interfaccia utente end-to-end tendono in genere a essere a esecuzione prolungata. Quando si usa la modalità dell'interfaccia utente visibile, a seconda del framework di test, potrebbe non essere possibile eseguire test in parallelo nello stesso computer perché l'app deve concentrarsi per ricevere eventi di tastiera e mouse. In questo scenario è possibile velocizzare i cicli di test eseguendo test in parallelo su computer diversi . Vedere Eseguire test in parallelo per qualsiasi test runner ed eseguire test in parallelo usando l'attività Test di Visual Studio.
Test dell'interfaccia utente in modalità interfaccia utente visibile
È necessaria una configurazione speciale per consentire agli agenti di eseguire test dell'interfaccia utente in modalità interfaccia utente visibile.
Test dell'interfaccia utente visibili con agenti ospitati da Microsoft
Test visibili dell'interfaccia utente in non supportati negli agenti ospitati da Microsoft. Il test ha esito negativo e viene visualizzato il messaggio di errore "elemento non interagiscibile". Gli agenti ospitati da Microsoft supportano i test headless del browser.
Test dell'interfaccia utente in modalità headless con agenti ospitati da Microsoft
Gli agenti ospitati da Microsoft sono preconfigurati per i test dell'interfaccia utente e i test dell'interfaccia utente per le app Web. Gli agenti ospitati da Microsoft sono preconfigurati anche con i browser più diffusi e le versioni corrispondenti dei driver Web che possono essere usati per l'esecuzione di test Selenium. I browser e i driver Web corrispondenti vengono aggiornati periodicamente. Per altre informazioni sull'esecuzione di test Selenium, vedere Test dell'interfaccia utente con Selenium.
Test dell'interfaccia utente visibili con agenti Windows self-hosted
Gli agenti configurati per l'esecuzione come servizio possono eseguire test Selenium solo con browser headless. Se non si usa un browser headless o se si eseguono test dell'interfaccia utente per le app desktop, gli agenti di Windows devono essere configurati per l'esecuzione come processo interattivo con l'accesso automatico abilitato.
Quando si configurano gli agenti, selezionare "No" quando viene richiesto di eseguire come servizio. I passaggi successivi consentono quindi di configurare l'agente con l'accesso automatico. Quando i test dell'interfaccia utente vengono eseguiti, le applicazioni e i browser vengono avviati nel contesto dell'utente specificato nelle impostazioni di accesso automatico.
Se si usa Desktop remoto per accedere al computer in cui è in esecuzione un agente con l'accesso automatico, la semplice disconnessione di Desktop remoto causa il blocco del computer e i test dell'interfaccia utente eseguiti su questo agente potrebbero non riuscire. Per evitare errori, usare il comando tscon nel computer remoto per disconnettersi da Desktop remoto. Ad esempio:
%windir%\System32\tscon.exe 1 /dest:console
In questo esempio, il numero '1' è l'ID della sessione desktop remoto. Questo numero può cambiare tra sessioni remote, ma può essere visualizzato in Gestione attività. In alternativa, per automatizzare la ricerca dell'ID sessione corrente, creare un file batch contenente il codice seguente:
for /f "skip=1 tokens=3" %%s in ('query user %USERNAME%') do (
%windir%\System32\tscon.exe %%s /dest:console
)
Salvare il file batch e crearvi un collegamento sul desktop, quindi modificare le proprietà del collegamento in "Esegui come amministratore". L'esecuzione del file batch da questo collegamento si disconnette dal desktop remoto, ma mantiene la sessione dell'interfaccia utente e consente l'esecuzione dei test dell'interfaccia utente.
Provisioning degli agenti nelle macchine virtuali di Azure per il test dell'interfaccia utente
Se si esegue il provisioning di macchine virtuali (VM) in Azure, la configurazione dell'agente per i test dell'interfaccia utente è disponibile tramite l'artefatto dell'agente per DevTest Labs.
Impostazione della risoluzione dello schermo
Prima di eseguire test dell'interfaccia utente, potrebbe essere necessario regolare la risoluzione dello schermo in modo che le app vengano eseguite correttamente. Per questo motivo, un'attività dell'utilità di risoluzione dello schermo è disponibile in Marketplace. Usare questa attività nella pipeline per impostare la risoluzione dello schermo su un valore supportato dal computer agente. Per impostazione predefinita, questa utilità imposta la risoluzione sul valore ottimale supportato dal computer agente.
Se si verificano errori usando l'attività di risoluzione dello schermo, assicurarsi che l'agente sia configurato per l'esecuzione con l'accesso automatico abilitato e che tutte le sessioni desktop remoto siano disconnesse in modo sicuro usando il comando tscon come descritto in precedenza.
Nota
L'attività dell'utilità di risoluzione dello schermo viene eseguita nell'agente di compilazione/versione/test unificato e non può essere usata con l'attività Esegui test funzionali deprecata. L'attività di utilità di risoluzione non funziona anche per le macchine virtuali di Azure.
Risoluzione degli errori nei test dell'interfaccia utente
Quando si eseguono test dell'interfaccia utente in modo automatico, l'acquisizione di dati di diagnostica, ad esempio screenshot o video , è utile per individuare lo stato dell'applicazione quando si è verificato l'errore.
Acquisisci schermate
La maggior parte dei framework di test dell'interfaccia utente offre la possibilità di acquisire screenshot. Gli screenshot raccolti sono disponibili come allegato ai risultati del test quando questi risultati vengono pubblicati nel server.
Se si usa l'attività di test di Visual Studio per eseguire i test, gli screenshot acquisiti devono essere aggiunti come file di risultato per essere disponibili nel report di test. A tale scopo, usare il codice seguente:
Verificare prima di tutto che TestContext sia definito nella classe di test. Ad esempio: public TestContext TestContext { get; set; }
Aggiungere il file di screenshot usando TestContext.AddResultFile(fileName); //Where fileName is the name of the file.
Se si usa l'attività Pubblica risultati test per pubblicare i risultati, gli allegati dei risultati del test possono essere pubblicati solo se si usa il formato dei risultati VSTest (TRX) o il formato dei risultati NUnit 3.0.
Gli allegati dei risultati non possono essere pubblicati se si usano i risultati del test JUnit o xUnit. Questo perché questi formati di risultati di test non hanno una definizione formale per gli allegati nello schema dei risultati. È invece possibile usare uno degli approcci seguenti per pubblicare allegati di test.
Se si eseguono test nella pipeline di compilazione (CI), è possibile usare l'attività Copia e pubblica artefatti di compilazione per pubblicare altri file creati nei test. Questi elementi vengono visualizzati nella pagina Artefatti del riepilogo della compilazione.
Usare le API REST per pubblicare gli allegati necessari. Gli esempi di codice sono disponibili in questo repository GitHub.
Acquisire video
Se si usa l'attività di test di Visual Studio per eseguire i test, il video del test può essere acquisito ed è automaticamente disponibile come allegato al risultato del test. A tale scopo, è necessario configurare l'agente di raccolta dati video in un file con estensione runsettings e questo file deve essere specificato nelle impostazioni dell'attività.
Assistenza e supporto
- Vedere la pagina relativa alla risoluzione dei problemi
- Ottenere consigli su Stack Overflow e ottenere supporto tramite la community degli sviluppatori