Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Inizia con i test Robo

Robo test è uno strumento di test integrato con Firebase Test Lab. Il test Robo analizza la struttura dell'interfaccia utente dell'app e quindi la esplora metodicamente, simulando automaticamente le attività degli utenti. A differenza del test Monkey di IU / Application Exerciser , il test Robo simula sempre le stesse attività dell'utente nello stesso ordine quando lo si utilizza per testare un'app su una configurazione di dispositivo specifica con le stesse impostazioni. Ciò consente di utilizzare il test Robo per convalidare le correzioni di bug e verificare le regressioni in un modo che non è possibile quando si esegue il test con il test Monkey dell'interfaccia utente / dell'applicazione .

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 eseguite. Questi registri, schermate e video possono aiutarti a determinare la causa principale se l'app si arresta in modo anomalo e possono anche aiutarti a trovare problemi con l'interfaccia utente dell'app.

Statistiche di scansione dei test robo

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

  • Azioni: il numero totale di azioni eseguite durante la ricerca per indicizzazione, incluse azioni di script Robo, azioni di scimmie 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 anche le statistiche per creare una rappresentazione visiva della ricerca per indicizzazione Robo sotto forma di un grafico di ricerca per indicizzazione. Il grafico ha schermate come nodi e azioni come bordi. Seguendo i bordi tra le schermate, puoi avere un'idea di come 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 almeno cinque minuti 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 Google Developer Console e 1500 secondi (25 minuti) per i test eseguiti dalla gcloud comando gcloud .

Errori di timeout all'avvio dell'app

Se l'avvio dell'app richiede molto tempo, Robo può generare un errore e non sarà in grado di eseguire la scansione dell'app. Ciò si verifica solo in caso di tempi di avvio estremamente lunghi e può essere risolto solo modificando l'app per renderla più rapida.

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 input UI specifici come nome utente e password. Gli script Robo possono aiutare.

Con gli script Robo, ti registri mentre cammini attraverso un flusso di lavoro nella tua app, quindi carichi quella registrazione sulla console di Firebase per eseguire test Robo. Quando esegui un test Robo con uno script allegato, Robo prima passa attraverso le tue azioni pre-script, quindi procede con l'esplorazione dell'app come al solito.

Inizia con lo scripting Robo tramite lo strumento Firebase in Android Studio:

  1. Apri Android Studio.
  2. Nel menu principale, selezionare Strumenti > Firebase .
  3. Seleziona Test Lab e fai clic su Registra script Robo e usalo per guidare il test Robo .
  4. Segui il resto dei passaggi nello strumento per registrare il tuo script Robo.
  5. Carica lo script Robo su Test Lab e avvia il test.

Errori di script robo

Se uno script Robo fallisce in qualsiasi momento, Test Lab abbandona tutti gli ulteriori passaggi dello script e riprende una normale ricerca per indicizzazione Robo. Molto spesso, gli script Robo falliscono perché Test Lab non è in grado di trovare un elemento necessario sullo schermo. Per evitare errori, assicurati che la navigazione dell'app sia prevedibile e che le schermate non vengano visualizzate in un ordine non deterministico.

Test robo e widget UI non Android

I test robo utilizzano l'API Android per eseguire direttamente azioni 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 poter eseguire test su di essa.

Se una schermata della tua app non utilizza widget dell'interfaccia utente Android, i test Robo ricadono su Monkey Actions per testare quella schermata. A differenza delle azioni Robo più metodiche, le Azioni scimmia simulano 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, è possibile sostituire i tocchi arbitrari di un'azione scimmia con una serie di tocchi e interazioni con script tramite i test del loop di gioco di Firebase Test Lab .

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 alfa o beta. Il test Robo viene eseguito su una serie di dispositivi fisici popolari da diverse posizioni geografiche, fornendo copertura del test attraverso vari fattori di forma e configurazioni hardware. Per saperne di più, vedi Usare i report pre-lancio per identificare i problemi .

Test dell'accesso all'account e immissione di testo predefinita

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, il test Robo può inserire il testo nei campi EditText nella tua app. Per ogni stringa, è necessario identificare il campo EditText utilizzando un nome di risorsa Android. Per saperne di più, vedi Accesso alle risorse .

Registrati

Il test Robo ha due metodi reciprocamente esclusivi per supportare l'accesso:

  • Accesso personalizzato: se si forniscono le credenziali dell'account di prova, è necessario indicare a Robo test dove immetterle e fornire anche tali 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 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 , selezionare Opzioni aggiuntive .
  2. In Credenziali dell'account di prova (Facoltativo) , immettere i nomi delle risorse nome utente e password e nome utente e password per l'account di prova.

Immissione di testo predefinita

Puoi fornire testo di input personalizzato per altri campi di testo utilizzati dalla tua app. Per fornire input di testo per campi aggiuntivi, attenere alla seguente procedura:

  1. Nella pagina Seleziona dimensioni , selezionare 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 inserimento del testo predefiniti

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

Puoi fornire fino a tre deep link supportati dalla tua app per i test. I deep link vengono ACTION_VIEW alla tua app come intenti Android ACTION_VIEW . Pertanto, ogni collegamento deve corrispondere a un filtro intenti 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 ricerca per indicizzazione principale, ogni collegamento diretto viene sottoposto a scansione per altri 30 secondi ciascuno.

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

Supporto per le licenze delle app

Test Lab supporta app che utilizzano il servizio di licenze app offerto da Google Play. Per verificare correttamente le licenze durante il test dell'app con Test Lab, è necessario pubblicare l'app sul canale di produzione nel Play Store. Per testare l'app nel canale alfa o beta utilizzando Test Lab, rimuovere il controllo delle licenze prima di caricare l'app in Test Lab.

Problemi noti

Il test Robo 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 Android (inclusi ViewGroup oggetti View e ViewGroup , ma esclusi gli oggetti WebView ). Se si utilizza il test Robo per esercitare app che utilizzano altri framework dell'interfaccia utente, comprese le app che utilizzano il motore di gioco Unity, il test potrebbe uscire senza esplorare oltre la prima schermata.
  • Captcha di accesso . Il test robo non può bypassare le schermate di accesso che richiedono ulteriori azioni da parte dell'utente oltre all'immissione delle credenziali per l'accesso (come il completamento di un captcha).