Esegui un test robotico

Robo test è uno strumento di test integrato con Firebase Test Lab. Robo test analizza la struttura dell'interfaccia utente (UI) della tua app e poi la esplora metodicamente, simulando automaticamente le attività dell'utente. Robo test simula sempre le stesse attività dell'utente nello stesso ordine quando lo utilizzi per testare un'app su una configurazione di dispositivo specifica con le stesse impostazioni. Questo approccio di test ripetibile ti consente di utilizzare il test Robo per convalidare le correzioni di bug e testare le regressioni.

Robo test acquisisce i file di registro, salva una serie di screenshot annotati e quindi crea un video da quegli screenshot per mostrarti le operazioni utente simulate che ha eseguito. Questi registri, schermate e video possono aiutarti a determinare la causa principale degli arresti anomali dell'app. Queste funzionalità di test Robo possono anche aiutarti a trovare problemi con l'interfaccia utente della tua app.

Oltre a eseguire i normali test Robo, puoi personalizzare i tuoi test utilizzando gli script Robo, che sono una caratteristica dei test Robo. Per ulteriori informazioni, consulta Eseguire uno script Robo .

Statistiche di scansione del test Robo

Per aiutarti a interpretare i risultati del test Robo, il test Robo registra le statistiche durante ogni scansione del test. Test Lab mostra le statistiche nella parte superiore della scheda del test Robo nella pagina dei risultati del test:

  • Azioni: il numero totale di azioni eseguite durante la scansione, comprese le azioni di script Robo, le azioni scimmia e le direttive Robo.

  • Attività: il numero di attività distinte coperte durante la scansione.

  • Schermate: il numero di schermate distinte visitate durante la scansione.

Test Lab utilizza anche le statistiche per creare una rappresentazione visiva del test Robo sotto forma di un grafico di scansione. Il grafico ha schermate come nodi e azioni come bordi. Seguendo i bordi tra le schermate, puoi avere un'idea di come Robo test ha attraversato la tua app durante la scansione.

Timeout del test robotico

A seconda della complessità dell'interfaccia utente dell'app, il test Robo potrebbe richiedere cinque minuti o più per completare una serie completa di interazioni dell'interfaccia utente. Ti consigliamo di impostare il timeout del test su almeno 120 secondi (2 minuti) per la maggior parte delle app e 300 secondi (5 minuti) per le app moderatamente complesse. Il valore predefinito per il timeout è 300 secondi (5 minuti) per i test eseguiti da Android Studio e dalla console Firebase e 900 secondi (15 minuti) per i test eseguiti dalla riga di comando gcloud .

Errori di timeout di avvio dell'app

Se l'avvio dell'app richiede molto tempo, il test Robo può generare un errore e non sarà in grado di eseguire la scansione dell'app. Ciò accade solo in caso di tempi di avvio estremamente lunghi e può essere risolto solo rivedendo l'app per avviarla più velocemente.

Più controllo con gli script Robo

A volte è necessario un maggiore controllo sui test. Ad esempio, potresti voler testare un percorso utente comune o fornire un input dell'interfaccia utente specifico come un nome utente e una password. Gli script Robo possono aiutare. Per ulteriori informazioni sugli script Robo, consulta Esegui uno script Robo e Guida di riferimento agli script Robo .

Test Robo e widget dell'interfaccia utente non Android

I test robotici utilizzano l'API Android per eseguire azioni direttamente sui widget dell'interfaccia utente Android. Ciò aiuta i test a esplorare automaticamente l'interfaccia utente, ma significa anche che devono essere in grado di estrarre una gerarchia dell'interfaccia utente Android per uno schermo per eseguire i test su di esso.

Se una schermata nella tua app non utilizza i widget dell'interfaccia utente Android, i test di Robo ricorrono a Monkey Actions per testare quella schermata. A differenza delle più metodiche azioni di test Robo, Monkey Actions simula semplicemente eventi di tocco in posizioni semi-casuali sullo schermo di un dispositivo.

Per testare meglio le schermate che non utilizzano i widget dell'interfaccia utente Android, puoi sostituire i tocchi arbitrari di Monkey Action con una serie di tocchi e interazioni con script tramite Firebase Test Lab Game Loop Tests .

Integrazione con Google Play

Puoi utilizzare Robo test in Google Play Console quando carichi e pubblichi il file APK della tua app utilizzando il canale alfa o beta. Il test Robo viene eseguito su una serie di dispositivi fisici popolari da diverse posizioni geografiche, fornendo una copertura di test su vari fattori di forma e configurazioni hardware. Per ulteriori informazioni, consulta Utilizzare i rapporti pre-lancio per identificare i problemi .

Verifica l'accesso all'account e l'immissione di testo predefinita

Robo test supporta l'accesso all'account di prova e ti consente anche di inserire testo predefinito nei campi della tua app. Per l'accesso personalizzato e altri input di testo predefiniti, Robo test può inserire il testo nei campi EditText della tua app. Per ogni stringa, è necessario identificare il campo EditText utilizzando un nome di risorsa Android. Per ulteriori informazioni, consulta Accesso alle risorse .

Registrazione

Robo test ha due metodi che si escludono a vicenda per supportare l'accesso:

  • Accesso personalizzato: se fornisci le credenziali dell'account di prova, devi indicare a Robo test dove inserirle e fornire anche tali credenziali.

  • Accesso automatico: se la tua app ha una schermata di accesso che utilizza un account Google per l'autenticazione, Robo test utilizza un account di prova Google, a meno che tu non fornisca le credenziali dell'account di prova per l'accesso personalizzato.

Per fornire le credenziali dell'account di prova per l'accesso personalizzato, procedi come segue:

  1. Nella pagina Seleziona dimensioni , scegli Opzioni aggiuntive .

  2. In Credenziali dell'account di prova (facoltativo) , inserisci il nome utente e la password dei nomi delle risorse e il nome utente e la password per l'account di prova.

Inserimento di testo predefinito

Puoi fornire testo di input personalizzato per altri campi di testo utilizzati dalla tua app. Per fornire l'input di testo per campi aggiuntivi, procedi come segue:

  1. Nella pagina Seleziona dimensioni , scegli Opzioni aggiuntive .

  2. In Campi aggiuntivi (facoltativo) , inserisci uno o più nomi di risorse e le stringhe da inserire nei campi di testo corrispondenti.

Errori di immissione di testo predefiniti

Robo test cerca i campi EditText con un nome di risorsa Android che corrisponde a un'espressione regolare fornita. Se Robo non riesce a trovare un campo corrispondente, non inserisce il tuo testo, ma in caso contrario continua la sua scansione come al solito.

Puoi fornire fino a tre link diretti supportati dalla tua app per il test. I link diretti vengono inviati alla tua app come ACTION_VIEW di Android. Pertanto, ogni collegamento deve corrispondere a un filtro di intenti nella tua app.

Se vengono forniti uno o più collegamenti diretti, l'app viene prima avviata normalmente (usando l'intento ACTION_MAIN ) e sottoposta a scansione fino al timeout specificato. Dopo la scansione principale, ogni link diretto viene sottoposto a scansione per altri 30 secondi ciascuno.

Se Robo test non riesce a trovare un'attività corrispondente al tuo deep link, Test Lab ignora il link. I problemi di collegamento diretto sono in genere il risultato di una discrepanza tra il collegamento diretto fornito e la sua definizione nell'app. Controlla sia l'URL fornito che la tua app per errori di battitura o altre incongruenze.

Supporto per la licenza dell'app

Test Lab supporta le app che utilizzano il servizio di licenza delle app offerto da Google Play. Per verificare correttamente la licenza durante il test della tua app con Test Lab, devi pubblicare la tua app nel canale di produzione nel Play Store. Per testare la tua app nel canale alfa o beta utilizzando Test Lab, rimuovi il controllo delle licenze prima di caricare la tua app in Test Lab.

Problemi noti

Il test robotico ha attualmente le seguenti limitazioni note:

  • Supporto del framework dell'interfaccia utente: Robo test è compatibile solo con le app che utilizzano elementi dell'interfaccia utente dal framework dell'interfaccia utente di Android (inclusi gli oggetti View e ViewGroup , ma esclusi gli oggetti WebView ). Se utilizzi Robo test per esercitare app che utilizzano altri framework dell'interfaccia utente, comprese le app che utilizzano il motore di gioco Unity, il test potrebbe terminare senza esplorare oltre la prima schermata.
  • Captcha di accesso: il test Robo non può ignorare le schermate di accesso che richiedono un'azione dell'utente aggiuntiva oltre all'immissione delle credenziali per accedere, ad esempio il completamento di un Captcha.

Prossimi passi