Robo test è uno strumento di test integrato in Firebase Test Lab. Il test Robo analizza la struttura dell'interfaccia utente (UI) della tua app, quindi la esplora in modo metodico, simulando automaticamente le attività degli utenti. Il test Robo simula sempre le stesse attività utente nello stesso ordine quando lo utilizzi per testare un'app su una configurazione del dispositivo specifica con le stesse impostazioni. Questo approccio di test ripetibile consente di utilizzare il test Robo per convalidare correzioni di bug e test di regressioni.
Il test Robo acquisisce i file di log, salva una serie di screenshot annotati e poi crea un video a partire da questi screenshot per mostrare le operazioni simulate dell'utente che ha eseguito. I log, gli screenshot e i video possono aiutarti a determinare la causa principale degli arresti anomali dell'app. Queste funzionalità del test Robo possono anche aiutarti a trovare i problemi relativi all'interfaccia utente della tua app.
Oltre a eseguire test Robo regolari, puoi personalizzare i test utilizzando gli script Robo, che sono una funzionalità dei test Robo. Per scoprire di più, consulta Eseguire uno script Robo.
Se vuoi provare la versione beta di Robo per iOS+, consulta Eseguire un test 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 Test di robot nella pagina dei risultati del test:
Azioni: il numero totale di azioni eseguite durante la scansione, tra cui azioni dello script Robo, azioni casuali e 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 inoltre le statistiche per creare una rappresentazione visiva del Robo test sotto forma di grafico di scansione. Il grafico ha le schermate come nodi e le azioni come archi. Seguendo i bordi tra le schermate, puoi farti un'idea di come il test Robo ha attraversato la tua app durante la scansione.
Timeout del test Robo
A seconda della complessità dell'interfaccia utente dell'app, il test Robo potrebbe richiedere cinque minuti o più per completare un insieme completo di interazioni con l'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 Firebase.gcloud
Errori di timeout all'avvio dell'app
Se l'app impiega molto tempo per avviarsi, il test Robo può generare un errore e non sarà in grado di eseguire la scansione dell'app. Questo accade solo in caso di tempi di avvio estremamente lunghi e può essere risolto solo rivedendo l'app per velocizzarne l'avvio.
Maggiore controllo con gli script Robo
A volte hai bisogno di un maggiore controllo sui test. Ad esempio, potresti voler testare un percorso dell'utente comune o fornire input specifici dell'interfaccia utente, come un nome utente e una password. Gli script Robo possono aiutarti. Per scoprire di più sugli script Robo, consulta Eseguire uno script Robo e la Guida di riferimento agli script Robo.
Test Robo e widget UI non Android
I test Robo utilizzano l'API Android per eseguire direttamente azioni sui widget dell'interfaccia utente di Android. Ciò consente ai test di esplorare automaticamente l'interfaccia utente, ma significa anche che devono essere in grado di estrarre una gerarchia dell'interfaccia utente di Android per una schermata al fine di eseguire test al suo interno.
Se una schermata della tua app non utilizza widget dell'interfaccia utente Android, i test Robo ricorrono a Monkey Actions per testare la schermata. A differenza delle azioni di test Robo più metodiche, le azioni Monkey simulano semplicemente gli eventi di tocco in posizioni semicasuali sullo schermo di un dispositivo.
Per testare meglio le schermate che non utilizzano widget UI Android, puoi sostituire i pulsanti arbitrari di un'azione Monkey con un insieme di interazioni e tocchi basati su script tramite i Firebase Test Lab test di ciclo di gioco.
Integrazione con Google Play
Puoi utilizzare il test Robo in Google Play Console quando carichi e pubblichi il file APK della tua app utilizzando il canale alpha o beta. Il Robo test viene eseguito su un insieme di dispositivi fisici di uso comune in diverse località geografiche, fornendo una copertura dei test su vari fattori di forma e configurazioni hardware. Per scoprire di più, consulta la pagina Utilizzare i report pre-lancio per identificare i problemi.
Testare l'accesso all'account e l'inserimento di testo predefinito
Robo test supporta l'accesso all'account di test 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 testo nei campi EditText
della tua app. Per ogni stringa, devi identificare il campo EditText
utilizzando un nome della risorsa Android. Per scoprire di più, consulta
Accedere alle risorse.
Accedi
Il test Robo ha due metodi mutuamente esclusivi per supportare l'accesso:
Accesso personalizzato: se fornisci credenziali dell'account di prova, devi indicare al team Robo dove inserirle e specificare anche le credenziali.
Accesso automatico: se la tua app ha una schermata di accesso che utilizza un Account Google per l'autenticazione, il test Robo utilizza un account Google di prova, a meno che tu non fornisca le credenziali dell'account di test per l'accesso personalizzato.
Per fornire le credenziali dell'account di test per l'accesso personalizzato:
Nella pagina Seleziona dimensioni, scegli Opzioni aggiuntive.
In Credenziali dell'account di test (facoltativo), inserisci i nomi delle risorse nome utente e password e il nome utente e la password per l'account di test.
Inserimento di testo predefinito
Puoi fornire un testo di input personalizzato per altri campi di testo utilizzati dall'app. Per fornire l'input di testo per altri campi, procedi nel seguente modo:
Nella pagina Seleziona dimensioni, scegli Opzioni aggiuntive.
In Campi aggiuntivi (facoltativo), inserisci uno o più nomi di risorse e le stringhe da inserire nei campi di testo corrispondenti.
Errori relativi all'input di testo predefinito {:#predefined-text}
Il test Robo cerca i campi EditText
con un nome della risorsa Android corrispondente a un'espressione regolare fornita. Se Robo non riesce a trovare un campo corrispondente, non inserisce il testo, ma continua la scansione come al solito.
Link diretti
Puoi fornire fino a tre link diretti
supportati dalla tua app per i test.
I link diretti vengono emessi per la tua app come intent Android
ACTION_VIEW
. Di conseguenza, ogni link deve corrispondere a un filtro per intent nella tua app.
Se vengono forniti uno o più link diretti, l'app viene inizialmente avviata normalmente (utilizzando l'intent 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.
Errori relativi ai link diretti
Se il test Robo non riesce a trovare un'attività corrispondente al tuo link diretto, Test Lab ignora il link. I problemi relativi ai link diretti sono in genere il risultato di una discrepanza tra il link diretto fornito e la sua definizione nell'app. Controlla sia l'URL fornito sia l'app per verificare la presenza di errori ortografici o altre incoerenze.
Assistenza per le licenze delle app
Test Lab supporta le app che utilizzano il servizio di licenza delle app offerto da Google Play. Per verificare correttamente le licenze durante i test della tua app con Test Lab, devi pubblicare l'app nel canale di produzione nel Play Store. Per testare la tua app nel canale alpha o beta utilizzando Test Lab, rimuovi il controllo della licenza prima di caricarla su Test Lab.
Passaggi successivi
- Personalizza i test utilizzando gli script Robo.