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

Esegui uno script Robo

Questo documento descrive come utilizzare gli script Robo , che sono test che automatizzano le attività manuali di QA per le app mobili e abilitano l'integrazione continua (CI) e le strategie di test pre-lancio. Ad esempio, puoi utilizzare gli script Robo per testare un percorso utente comune o fornire un input specifico dell'interfaccia utente (UI), come un nome utente e una password. Gli script Robo sono una caratteristica del test Robo .

Con gli script Robo, ti registri durante un flusso di lavoro nella tua app, quindi carichi quella registrazione nella console Firebase per l'esecuzione nei test Robo. Quando esegui un test Robo con uno script allegato, Robo prima passa attraverso le tue azioni pre-script e poi esplora l'app come al solito.

Gli script Robo utilizzano il test Robo come motore di test. Nella sua forma più semplice, uno script Robo è costituito da una sequenza di azioni dell'interfaccia utente come inserire il testo "nome utente" e quindi toccare il pulsante OK . Gli script Robo possono anche includere azioni come l'attesa della visualizzazione di un elemento, il tocco in un punto specifico all'interno di un elemento e l'esecuzione di comandi shell di Android Debug Bridge ( adb ).

Gli script Robo presentano i seguenti vantaggi rispetto ai framework di test tradizionali:

Capacità Descrizione
Molto robusto Gli script Robo possono tollerare significative differenze strutturali e comportamentali tra le versioni dell'app e la fragilità dell'app.
A tempo indeterminato Dopo il completamento di uno script Robo, il test Robo di base può subentrare e continuare a testare l'app. Questo approccio di test continuo consente diversi casi d'uso chiave. Ad esempio, puoi utilizzare uno script Robo per portare un'app in uno stato particolare eseguendo un flusso di accesso personalizzato.
Registrabile Non è necessario codificare gli script Robo manualmente. Possono essere registrati utilizzando il registratore di script Robo in Android Studio. La creazione o la modifica di script Robo in genere non richiede alcuna conoscenza dello sviluppo mobile.
Flessibile Gli script Robo possono interagire con elementi dell'interfaccia utente non nativi comuni nei giochi.

Gli script Robo vengono attivati ​​in modo condizionale durante un test Robo, che consente agli utenti di aumentare il comportamento di Robo, in genere per ottenere una maggiore copertura o una funzionalità specifica di destinazione. A differenza dei framework di test tradizionali, gli script Robo supportano quanto segue:

  • Varie condizioni di attivazione, ad esempio, un particolare nome del pacchetto dell'app è attivo (o meno) o un elemento specifico viene visualizzato sullo schermo (o meno).
  • L'esecuzione controlla, ad esempio, un numero massimo di esecuzioni, priorità, fase di ricerca per indicizzazione pertinente.
  • Tipi di azione non convenzionali (condizionale, elemento ignorante, chiusura schermo).

Ti consigliamo di utilizzare gli script Robo quando possibile perché sono facili da mantenere. Ad esempio, puoi utilizzare uno script Robo per eseguire le seguenti operazioni:

  • Esplora flussi di lavoro significativi per arrivare al cuore delle funzionalità di un'app. Ad esempio, puoi eseguire un accesso, impostare lo stato di un'app dopo il primo avvio e registrare un nuovo utente.
  • Concentra Robo su una parte particolare di un'app per ottenere il massimo dal tempo di test di Robo. Lo script Robo guida il test Robo per raggiungere la parte pertinente di un'app, dove il test Robo riprende una scansione completamente automatizzata.
  • Porta un'app in uno stato o una schermata specifici per eseguire un'analisi, ad esempio per analizzare un messaggio in-app, un'informativa sulla privacy o un livello specifico di un gioco.
  • Esegui un test di strumentazione end-to-end, con o senza Robo test che riprende una scansione completamente automatizzata dopo il completamento dello script Robo.

Utilizza le funzionalità di script Robo più avanzate per eseguire le seguenti operazioni:

  • Esegui azioni prima che Robo inizi a eseguire la scansione dell'app in fase di test o al termine di una scansione, ad esempio, pulisci i dati dell'app in fase di test prima di una scansione, modifica le impostazioni del dispositivo e così via.
  • Cambia aspetti del comportamento di Robo durante una scansione, in particolare:
    • Fai in modo che Robo ignori alcuni widget dell'interfaccia utente o schermate delle app.
    • Fornisci un'azione personalizzata per Robo da eseguire quando si torna indietro da una schermata particolare.
    • Fai in modo che Robo esegua azioni specifiche ogni volta che viene rilevata una particolare schermata dell'app durante una scansione.
  • Personalizza completamente il modo in cui Robo esegue una scansione. Ad esempio, utilizza una combinazione di azioni condizionali e non condizionali per mantenere l'app sottoposta a test in background durante la scansione, mentre esegui manipolazioni del dispositivo e chiudi eventuali finestre di dialogo popup visualizzate lungo il percorso.

Tieni presente che gli script Robo non sostituiscono tutti i tipi di test. Hai ancora bisogno di unit test per rilevare bug logici di basso livello nella tua app; questi test in genere non richiedono un ambiente Android o iOS. Ti consigliamo di integrare i test di script Robo con test di strumentazione mirati che possono avere asserzioni specifiche e dettagliate sulla logica aziendale, che sono meglio espresse nel codice.

Registra uno script Robo utilizzando Test Lab in Android Studio

Il registratore di script Robo in Android Studio ti consente di registrare script Robo interagendo direttamente con l'app sul tuo dispositivo. Segui queste istruzioni per iniziare con lo scripting Robo tramite lo strumento Firebase in Android Studio:

  1. Apri Android Studio e seleziona Strumenti -> Firebase .

  2. Nel riquadro Firebase, fai clic su Registra script Robo e usalo per guidare il test Robo .

  3. Fai clic su Registra script Robo . Viene visualizzata la finestra di dialogo Seleziona destinazione distribuzione.

  4. Seleziona il dispositivo in cui desideri registrare lo script Robo.

  5. Dopo aver registrato lo script Robo nel dispositivo, salva il file come file JSON nella posizione desiderata.

  6. Apri la pagina Test Lab nella console Firebase e carica il file di script JSON e l'APK dell'applicazione.

  7. Fare clic sul pulsante Continua . Viene richiesto di selezionare il dispositivo e il livello API. Al termine dello script di test, Test Lab genera il rapporto di test.

  8. (Facoltativo) Per copiare o scaricare il logcat del report del test e il video, fare clic su Visualizza file sorgente .

Per impostazione predefinita, i meccanismi di robustezza dello script Robo impediscono che fallisca presto. Se scegli la modalità di esecuzione strict e uno script Robo fallisce in qualsiasi momento, Test Lab abbandona tutti i passaggi successivi dello script e riprende una normale scansione Robo. Molto spesso, gli script Robo falliscono perché Robo non riesce a trovare un elemento richiesto sullo schermo. Per evitare errori, assicurati che la navigazione dell'app sia prevedibile e che le schermate siano visualizzate in ordine deterministico.

Esegui uno script Robo in Test Lab

Per eseguire uno script Robo in Test Lab, segui queste istruzioni:

  1. Apri la pagina Test Lab nella console Firebase.

  2. Carica l'APK o l'AAB dell'app nel campo APK o AAB dell'app .

  3. Carica il file dello script Robo registrato o creato manualmente nel campo Script Robo (facoltativo) .

Fornire uno script Robo a un'esecuzione di test Robo locale

Per fornire uno script Robo a un'esecuzione di test Robo locale, utilizzare la seguente opzione di test Robo:

--robo-script-file <robo-script-path>

Sostituisci <robo-script-path> con un percorso del tuo file di script Robo nel file system locale. Segui le istruzioni per eseguire un test Robo locale .

Specifica uno script Robo in una chiamata di test dell'interfaccia a riga di comando di gcloud

Per specificare uno script Robo in una chiamata di test dell'interfaccia a riga di comando di gcloud, utilizza il seguente flag dell'interfaccia a riga di comando di gcloud:

--robo-script = <robo-script-path>

Sostituisci <robo-script-path> con un percorso del tuo file di script Robo nel file system locale o in Cloud Storage utilizzando la notazione gs:// . Per esempio:

gcloud firebase test android run --app = <path_to_app_apk_file> --robo-script = <robo-script-path>

Prossimi passi