了解 2023 年 Google I/O 大会上介绍的 Firebase 亮点。了解详情

Esegui un test robotico

Robo test è uno strumento di test integrato con Firebase Test Lab. Il test Robo analizza la struttura dell'interfaccia utente (UI) della tua app e quindi la esplora metodicamente, simulando automaticamente le attività dell'utente. Il Robo test simula sempre le stesse attività utente nello stesso ordine quando lo utilizzi per testare un'app su una specifica configurazione del dispositivo 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.

Il test Robo acquisisce i file di registro, salva una serie di schermate annotate e quindi crea un video da tali schermate 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 Robo test 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 robot test

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, incluse le azioni dello script Robo, le azioni della scimmia e le direttive Robo.

  • Attività: il numero di attività distinte coperte durante la ricerca per indicizzazione.

  • Schermi: il numero di schermi distinti visitati 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 spigoli. 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 robot

A seconda della complessità dell'interfaccia utente dell'app, il Robo test potrebbe richiedere cinque minuti o più per completare un set completo 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 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 all'avvio dell'app

Se l'avvio dell'app richiede molto tempo, Robo test 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.

Maggiore controllo con gli script Robo

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

Robo test e widget dell'interfaccia utente non Android

I test Robo utilizzano l'API Android per eseguire azioni direttamente sui widget dell'interfaccia utente Android. Ciò aiuta i test a esplorare automaticamente la tua 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 Robo ripiegano su Monkey Actions per testare quella schermata. A differenza delle azioni di test Robo più metodiche, 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 di Android, puoi sostituire i tocchi arbitrari di un'azione scimmia con una serie di tocchi e interazioni con script tramite Firebase Test Lab Game Loop Tests .

Integrazione con GooglePlay

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 diffusi in diverse località geografiche, fornendo copertura del test su vari fattori di forma e configurazioni hardware. Per ulteriori informazioni, consulta Utilizzare i report pre-lancio per identificare i problemi .

Verifica l'accesso all'account e l'input di testo predefinito

Il test Robo 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 testo nei campi EditText nella tua app. Per ogni stringa, devi identificare il campo EditText utilizzando un nome di risorsa Android. Per ulteriori informazioni, vedere 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 test Google, a meno che tu non fornisca le credenziali dell'account di test 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) , immetti i nomi delle risorse nome utente e password e il nome utente e la password per l'account di prova.

Inserimento di testo predefinito

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

  1. Nella pagina Seleziona dimensioni , scegli Opzioni aggiuntive .

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

Errori di immissione di testo predefiniti

Il test Robo 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 altrimenti continua la 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 intent Android ACTION_VIEW . Pertanto, ogni link deve corrispondere a un filtro intent nella tua app.

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

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

Supporto per le licenze delle app

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

Problemi conosciuti

Il Robo test presenta attualmente le seguenti limitazioni note:

  • Supporto del framework dell'interfaccia utente: il test Robo è 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 il test Robo per esercitare app che utilizzano altri framework dell'interfaccia utente, incluse le app che utilizzano il motore di gioco Unity, il test potrebbe terminare senza esplorare oltre la prima schermata.
  • Captcha di accesso: il Robo test non può ignorare le schermate di accesso che richiedono un'azione aggiuntiva da parte dell'utente oltre all'inserimento delle credenziali per l'accesso, ad esempio il completamento di un Captcha.

Prossimi passi