Esecuzione di uno script Robo (Android)

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

Con gli script Robo, puoi registrare la procedura di un flusso di lavoro nella tua app, poi caricare la registrazione nella console Firebase per eseguirla nei test di Robo. Quando esegui un test Robo con uno script allegato, Robo prima esamina le azioni predefinite e poi esplora l'app come al solito.

Gli script Robo utilizzano Robo test come motore di test. Nella sua forma più semplice, uno script Robo è costituito da una sequenza di azioni dell'interfaccia utente, ad esempio inserisci il testo "nome utente" e poi tocca il pulsante OK. Gli script Robo possono includere anche azioni come attendere la comparsa di un elemento, toccare un punto specifico all'interno di un elemento ed eseguire 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 differenze strutturali e di comportamento significative tra le versioni dell'app e l'instabilità dell'app.
Domanda aperta Al termine di uno script Robo, il test Robo di base può intervenire 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 un determinato stato eseguendo un flusso di accesso personalizzato.
Registrabile Non è necessario codificare manualmente gli script Robo. Possono essere registrati utilizzando lo strumento di registrazione di script Robo in Android Studio. La creazione o la modifica degli script Robo in genere non richiede alcuna conoscenza dello sviluppo mobile.
Flessibile Gli script di Robo possono interagire con elementi dell'interfaccia utente non nativi comuni nei giochi.

Gli script Robo vengono attivati condizionatamente durante un test Robo, il che consente agli utenti di migliorare il comportamento di Robo, in genere per ottenere una maggiore copertura o per avere come target funzionalità specifiche. A differenza dei framework di test tradizionali, gli script Robo supportano quanto segue:

  • Varie condizioni di attivazione, ad esempio l'attivazione (o meno) di un determinato nome del pacchetto dell'app o la visualizzazione (o meno) di un elemento specifico sullo schermo.
  • Controlli di esecuzione, ad esempio un numero massimo di esecuzioni, priorità, fase di scansione pertinente.
  • Tipi di azioni non convenzionali (condizionali, che ignorano gli elementi, che chiudono la schermata).

Ti consigliamo di utilizzare gli script Robo, se possibile, perché possono essere gestiti senza problemi. Ad esempio, puoi utilizzare uno script Robo per:

  • Esplora flussi di lavoro significativi per arrivare al cuore della funzionalità di un'app. Ad esempio, puoi eseguire un accesso, configurare lo stato di un'app dopo il primo avvio e registrare un nuovo utente.
  • Concentra Robo su una parte specifica di un'app per ottenere il massimo dal tempo di test Robo. Lo script Robo guida il test Robo a 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, le norme sulla privacy o un livello specifico di un gioco.
  • Esegui un test di misurazione end-to-end, con o senza il test Robo, riprendendo una scansione completamente automatica al termine dello script Robo.

Utilizza funzionalità più avanzate degli script Robo per:

  • Esegui azioni prima che Robo inizi la scansione dell'app in test o al termine di una scansione, ad esempio ripulisci i dati dell'app in test prima di una scansione o modifica le impostazioni del dispositivo.
  • Modificare aspetti del comportamento di Robo durante una scansione, in particolare:
    • Fai in modo che Robo ignori alcuni widget dell'interfaccia utente o schermate dell'app.
    • Fornisci un'azione personalizzata da eseguire da Robo quando esegui il riavvolgimento da una determinata schermata.
    • Consenti a Robo di eseguire azioni specifiche ogni volta che viene rilevata una determinata 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 in test in background durante la scansione, mentre esegui manipolazioni del dispositivo e chiudi eventuali finestre di dialogo popup che compaiono.

Tieni presente che gli script Robo non sostituiscono tutti i tipi di test. Hai comunque bisogno di test di unità 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 degli script Robo con test di misurazione 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

Lo strumento di registrazione degli script Robo in Android Studio ti consente di registrare script Robo interagendo direttamente con l'app sul tuo dispositivo. Segui queste istruzioni per iniziare a utilizzare gli script 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 utilizzalo per guidare il test Robo.

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

  4. Seleziona il dispositivo su cui vuoi registrare lo script Robo.

  5. Dopo aver registrato lo script Robo nel dispositivo, salvalo come file JSON nella posizione che preferisci.

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

  7. Fai clic sul pulsante Continua. Ti viene chiesto di selezionare il dispositivo e il livello API. Al termine dello script di test, Test Lab genera il report di test.

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

Per impostazione predefinita, i meccanismi di robustezza dello script Robo ne impediscono il fallimento precoce. Se scegli la modalità di esecuzione strict e uno script Robo non va a buon fine in un determinato momento,Test Lab abbandona tutti gli altri passaggi dello script e riprende una normale scansione di Robo. Molto spesso, gli script Robo non riescono perché Robo non riesce a trovare un elemento obbligatorio sullo schermo. Per evitare errori, assicurati che la navigazione nell'app sia prevedibile e che le schermate vengano mostrate in un 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 per l'esecuzione di un test Robo locale

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

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

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

Specificare uno script Robo in un'invocazione del test gcloud CLI

Per specificare uno script Robo in un'esecuzione di test gcloud CLI, utilizza il seguente flag gcloud CLI:

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

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

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

Passaggi successivi