Lo strumento Espresso Test Recorder consente di creare test dell'interfaccia utente per la tua app senza scrivere codice di test. Registrando uno scenario di test, puoi registrare le tue interazioni con un dispositivo e aggiungere asserzioni per verificare gli elementi dell'interfaccia utente in snapshot specifici della tua app. Espresso Test Recorder prende quindi la registrazione salvata e genera automaticamente un test dell'interfaccia utente corrispondente che puoi eseguire per testare la tua app.
Espresso Test Recorder scrive i test in base al framework di test Espresso, un'API in AndroidX Test. L'API Espresso ti incoraggia a creare test dell'interfaccia utente concisi e affidabili basati sulle azioni dell'utente. Dichiarando aspettative, interazioni e asserzioni senza accedere direttamente alle attività e alle visualizzazioni dell'app sottostante, questa struttura impedisce la flakiness dei test e ottimizza la velocità di esecuzione dei test.
Disattivare le animazioni sul dispositivo di test
Prima di utilizzare Espresso Test Recorder, assicurati di disattivare le animazioni sul dispositivo di test per evitare risultati imprevisti. Segui le ist0}Espresso setup ruzioni di configurazione, ma tieni presente che non devi impostare manualmente un riferimento di dipendenza alla libreria Espresso perché Test Recorder lo fa automaticamente quando salvi una registrazione. Questi passaggi devono essere eseguiti una sola volta per un determinato progetto.
Registrare un test Espresso
I test Espresso sono costituiti da due componenti principali: interazioni dell'interfaccia utente e asserzioni sugli elementi View. Le interazioni dell'interfaccia utente includono azioni di tocco e digitazione che una persona può utilizzare per interagire con la tua app. Le asserzioni verificano l'esistenza o i contenuti degli elementi visivi sullo schermo. Ad esempio, un test Espresso per l'app di test Note potrebbe includere interazioni dell'interfaccia utente per fare clic su un pulsante e scrivere una nuova nota, ma utilizzerebbe asserzioni per verificare l'esistenza del pulsante e i contenuti della nota.
Questa sezione illustra come creare entrambi questi componenti di test utilizzando Espresso Test Recorder, nonché come salvare la registrazione completata per generare il test.
Registrare le interazioni dell'interfaccia utente
Per iniziare a registrare un test con Espresso Test Recorder, procedi nel seguente modo:
- Fai clic su Esegui > Registra test Espresso.
- Nella finestra Seleziona target di deployment, scegli il dispositivo su cui vuoi registrare il test. Se necessario, crea un nuovo dispositivo virtuale Android. Fai clic su OK.
- Espresso Test Recorder attiva una build del progetto e l'app deve essere installata e avviata prima che Espresso Test Recorder ti consenta di interagire con essa. Dopo l'avvio dell'app, viene visualizzata la finestra Registra il test e poiché non hai ancora interagito con il dispositivo, nel riquadro principale viene visualizzato il messaggio "Nessun evento registrato finora." Interagisci con il dispositivo per iniziare a registrare eventi come "tocco" e "digitazione".
Nota: prima di poter iniziare a registrare le interazioni, potresti visualizzare una finestra di dialogo sul dispositivo con il messaggio "In attesa del debugger" o "Collegamento del debugger". Espresso Test Recorder utilizza il debugger per registrare gli eventi dell'interfaccia utente. Quando il debugger si collega, la finestra di dialogo si chiude automaticamente; non premere Forza chiusura.
Le interazioni registrate vengono visualizzate nel riquadro principale della finestra Registra il test, come mostrato nella Figura 1 di seguito. Quando esegui il test, il test Espresso tenterà di eseguire queste azioni nello stesso ordine.
Figura 1. La finestra Registra il test con le interazioni dell'interfaccia utente registrate.
Aggiungere asserzioni per verificare gli elementi dell'interfaccia utente
Le asserzioni verificano l'esistenza o i contenuti di un View elemento tramite tre tipi principali:
- text is: controlla il contenuto di testo dell'elemento View selezionato
- exists: verifica che l'elemento View sia presente nella gerarchia di oggetti View corrente visibile sullo schermo
- does not exist: verifica che l'elemento View non sia presente nella gerarchia di oggetti View corrente
Per aggiungere un'asserzione al test, procedi nel seguente modo:
- Fai clic su Aggiungi asserzione. Viene visualizzata una finestra di dialogo Acquisizione schermo mentre Espresso recupera la gerarchia dell'interfaccia utente e altre informazioni sullo stato attuale dell'app. La finestra di dialogo si chiude automaticamente una volta che Espresso ha acquisito lo screenshot.
- Un layout della schermata attuale viene visualizzato in un riquadro a destra della finestra Registra il test. Per selezionare un elemento View su cui creare un'asserzione, fai clic sull'elemento nello screenshot o utilizza il primo menu a discesa nella casella Modifica asserzione nella parte inferiore della finestra. L'oggetto View selezionato è evidenziato in una casella rossa.
- Seleziona l'asserzione che vuoi utilizzare dal secondo menu a discesa nella
Modifica asserzione casella. Espresso compila il menu con le asserzioni valide
per l'elemento View selezionato.
- Se scegli l'asserzione "text is", Espresso inserisce automaticamente il testo attualmente all'interno dell'elemento View selezionato. Puoi modificare il testo in modo che corrisponda all'asserzione desiderata utilizzando il campo di testo nella casella Modifica asserzione.
- Fai clic su Salva e aggiungi un'altra per creare un'altra asserzione o fai clic su Salva asserzione per chiudere i riquadri delle asserzioni.
Lo screenshot nella Figura 2 mostra la creazione di un'asserzione "text is" per verificare che il titolo della nota sia "Happy Testing!":
Figura 2. La casella Modifica asserzione dopo aver selezionato un elemento View (in rosso).
Durante la creazione di un'asserzione, puoi continuare a interagire con l'app, anche se i riquadri delle asserzioni sono ancora aperti nella finestra Registra il test. Espresso Test Recorder continuerà a registrare le tue azioni, ma l'asserzione che stai modificando verrà visualizzata prima di queste interazioni una volta salvata. Lo screenshot dell'asserzione conserva anche il layout del dispositivo o dell'emulatore al momento in cui hai premuto il pulsante Aggiungi asserzione.
Salvare una registrazione
Dopo aver finito di interagire con l'app e di aggiungere le asserzioni, segui questi passaggi per salvare la registrazione e generare il test Espresso:
- Fai clic su Completa registrazione. Viene visualizzata la finestra Scegli un nome di classe di test per il test.
- Espresso Test Recorder assegna al test un nome univoco all'interno del pacchetto
in base al nome dell'attività avviata. Utilizza il campo di testo Nome classe
di test se vuoi modificare il nome suggerito. Fai clic
Salva.
- Se non hai aggiunto le dipendenze Espresso alla tua app, quando provi a
salvare il test viene visualizzata una finestra di dialogo
Dipendenze Espresso mancanti. Fai clic su Sì per aggiungere automaticamente le dipendenze
al file
build.gradle.
- Se non hai aggiunto le dipendenze Espresso alla tua app, quando provi a
salvare il test viene visualizzata una finestra di dialogo
Dipendenze Espresso mancanti. Fai clic su Sì per aggiungere automaticamente le dipendenze
al file
- Il file si apre automaticamente dopo che Espresso Test Recorder lo ha generato e
Android Studio mostra la classe di test selezionata nella finestra Progetto
dell'IDE.
- La posizione in cui viene salvato il test dipende dalla posizione della radice del test di strumentazione, nonché dal nome del pacchetto dell'attività avviata. Ad esempio, i test per l'app di test Note vengono salvati nella cartella src > androidTest > java > com.example.username.appname del modulo dell'app su cui hai registrato il test.
Eseguire un test Espresso in locale
Per eseguire un test Espresso, utilizza la finestra Progetto
sul lato sinistro di
Android Studio IDE:
- Apri la cartella del modulo dell'app desiderata e vai al test che vuoi eseguire.
La posizione del test dipende dalla posizione della radice del test di strumentazione
e del nome del pacchetto dell'attività avviata. Gli esempi seguenti mostrano dove verrebbe salvato un test per l'app di test Note:
:
- Se utilizzi la visualizzazione Android all'interno della finestra, vai a java > com.example.username.appname (androidTest).
- Se utilizzi la visualizzazione Progetto all'interno della finestra, vai a src > androidTest > java > com.example.username.appname nella cartella del modulo.
- Fai clic con il tasto destro del mouse sul test e poi su Esegui "nomeTest".
- In alternativa, puoi aprire il file di test e fare clic con il tasto destro del mouse sulla classe o sul metodo di test generato. Scopri di più su come eseguire i test nella pagina Test Your App.
- Nella finestra Seleziona target di deployment, scegli il dispositivo su cui vuoi eseguire il test. Se necessario, crea un nuovo dispositivo virtuale Android. Fai clic su OK.
Monitora l'avanzamento del test nella finestra Esegui nella parte inferiore dell'IDE. Android Studio esegue una build completa del progetto e apre una scheda con il nome del test nella finestra Esegui, come mostrato nella Figura 3. In questa scheda puoi verificare se il test è stato superato o meno, nonché la durata dell'esecuzione del test. Al termine del test, nella scheda verrà visualizzato il messaggio "Test eseguiti fino al completamento".
Figura 3. Esempio di output nella finestra Esegui dopo l'esecuzione di un test Espresso in locale.
Per scoprire di più sulla scrittura delle configurazioni di esecuzione dei test, consulta la sezione "Definire una configurazione di test per una classe o un metodo" in Creare e modificare le configurazioni di esecuzione/debug.
Eseguire un test Espresso con Firebase Test Lab per Android
Puoi utilizzare i test generati da Espresso Test Recorder con Firebase Test Lab per testare la tua app nel cloud su centinaia di configurazioni di dispositivi. Non sono previsti costi per testare l'app con Test Lab all'interno della quota giornaliera senza costi del piano Spark. Per eseguire i test Espresso con Firebase Test Lab, crea un progetto Firebase per la tua app e poi segui le istruzioni riportate in Eseguire i test con Firebase Test Lab da Android Studio.
Figura 4. Esempio di output nella finestra Esegui dopo l'esecuzione di un test con Firebase Test Lab su più dispositivi.