Google 致力于为黑人社区推动种族平等。查看具体举措
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Inizia con i test della strumentazione

Un test di strumentazione è un test scritto da te o dal tuo team appositamente per testare la tua app, utilizzando i framework di test Android Espresso e UI Automator 2.0 . Test Lab fornisce risultati per tutti i casi di test che completano l'esecuzione durante quel periodo.

Quando scrivi un test di strumentazione, crei un secondo modulo APK che successivamente carichi in Test Lab insieme al modulo APK per la tua app. Per informazioni sulla creazione di APK di prova, vedi Testare la tua app .

Timeout test strumentazione

I test di strumentazione possono durare fino a 45 minuti su dispositivi fisici e fino a 60 minuti su dispositivi virtuali .

Esegui test in modo indipendente con Orchestrator

Android Test Orchestrator ti consente di eseguire ciascuno dei test di strumentazione della tua app in modo indipendente. Test Lab utilizza sempre l'ultima versione di Orchestrator. L'utilizzo di Orchestrator presenta alcuni vantaggi e uno svantaggio:

Professionisti:

  • Nessuno stato condiviso: ogni test viene eseguito nella propria istanza di strumentazione in modo che uno stato condiviso non si accumuli tra i test.
  • Arresti anomali isolati: se un test si arresta in modo anomalo, solo quella strumentazione viene terminata e gli altri test nella suite possono ancora essere eseguiti.

Contro:

Abilita orchestrator

Per abilitare Orchestrator for Test Lab, nella configurazione del test della strumentazione, fare clic su Opzioni aggiuntive > Esegui con Orchestrator .

Accelerare i test con lo sharding

Il partizionamento del test divide un set di test in sottogruppi (frammenti) che vengono eseguiti separatamente in isolamento. Test Lab esegue automaticamente ogni frammento in parallelo utilizzando più dispositivi e completa l'intera serie di test in meno tempo.

Supponi di creare N frammenti. Per ogni dispositivo selezionato, Test Lab avvia N dispositivi identici ed esegue un sottoinsieme dei test su ciascun dispositivo. Ciò significa che i casi di test frammentati possono comportare più esecuzioni di test per dispositivo, a differenza dei casi di test non frammentati, che si traducono sempre in un'esecuzione di test per dispositivo (per una rapida panoramica dei concetti chiave in Test Lab, vedere Concetti chiave ).

Fatturazione per frammenti di prova

Test Lab implementa i tuoi frammenti sfruttando il meccanismo di partizionamento integrato di AndroidJUnitRunner. Per evitare di essere addebitati per la rotazione di frammenti vuoti (frammenti senza casi di test assegnati), il numero di frammenti che crei deve essere inferiore al numero totale di casi di test. A seconda della durata di esecuzione di ciascun test case, in genere è una buona idea assegnare 2-10 test case per frammento.

Per ulteriori informazioni sulla fatturazione, leggi Utilizzo, quote e fatturazione .

Abilita partizionamento orizzontale di prova

Puoi abilitare lo sharding di prova utilizzando la console Firebase. Per abilitare lo sharding di test:

  1. Nella configurazione del test della strumentazione, fare clic su Opzioni aggiuntive .

  2. Nella sezione Sharding , inserisci il numero di frammenti che desideri eseguire.

Fare screenshot

Le seguenti istruzioni descrivono come aggiungere la libreria di screenshot di Test Lab alla tua app e chiamare quella libreria dal tuo test. Test Lab fornisce una libreria che puoi utilizzare per acquisire schermate durante l'esecuzione di test di strumentazione, come i test scritti utilizzando il framework di test Espresso . Al termine del test, puoi rivedere gli screenshot in Android Studio o nella console Firebase.

Per abilitare il test per lo screenshot, aggiungi la seguente libreria: cloudtestingscreenshotter_lib.aar . Tieni presente che la possibilità di acquisire schermate è già incorporata nell'APK di prova app-debug-test-unaligned.apk e nell'app di esempio NotePad . Gli screenshot vengono inoltre acquisiti automaticamente quando esegui un test Robo .

1. Aggiungi la libreria di screenshot al tuo progetto

  1. In Android Studio, apri la vista Progetto e fai clic con il pulsante destro del mouse sul nome del progetto. Quindi, fai clic su Nuovo > Directory .

  2. Nella finestra di dialogo Nuova directory , digita aars . Questo crea una directory aars nella radice del progetto di test (come directory peer nella cartella dell'app ).

  3. Copia cloudtestingscreenshotter_lib.aar e incollalo nella cartella aars .

  4. Nel file build.gradle a livello di root (a livello di progetto) della tua app, aggiungi un riferimento alla cartella aars in ogni blocco di repositories :

    repositories {
        jcenter()
        flatDir {
            dirs '../aars'
        }
    }
    ...
  5. Nella directory di primo livello del modulo (per l'app di esempio NotePad, questa è la directory dell'app ), apri il file build.gradle e aggiungi una dipendenza a cloudtestingscreenshotter_lib.aar al blocco delle dependencies primo livello:

    dependencies {
        // Cloud testing
        androidTestCompile (name:'cloudtestingscreenshotter_lib', ext:'aar')
        // Other dependencies go here
        }
    
  6. Nel file AndroidManifest.xml , specifica le autorizzazioni di sistema per la tua app aggiungendo le seguenti righe all'interno del tag <manifest> . Se stai testando su Android 10 (livello API 29) o superiore , ometti l'autorizzazione WRITE_EXTERNAL_STORAGE (la tua app non richiede questa autorizzazione per leggere e scrivere screenshot sul dispositivo).

    <manifest ... >
       <!-- WRITE_EXTERNAL_STORAGE is not needed on Android 10 (API level 29) or higher. -->
       <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
       <uses-permission android:name="android.permission.INTERNET"/>
       ...
    </manifest>
    

2. Acquisisci uno screenshot dal tuo test

In qualsiasi momento del test in cui desideri acquisire uno screenshot, chiama il metodo ScreenShotter.takeScreenshot dalla libreria cloudtestingscreenshotter_lib, dove il primo argomento è un'etichetta che usi per identificare lo screenshot ( main_screen_2 è usato nell'esempio seguente):

Giava

ScreenShotter.takeScreenshot("main_screen_2", this /* activity */);

Kotlin + KTX

ScreenShotter.takeScreenshot("main_screen_2", this /* activity */)

3. Visualizza i tuoi screenshot

Dopo che il test è stato completato, puoi confrontare tutti gli screenshot acquisiti durante il test selezionando un elemento nella struttura dei risultati del test e quindi facendo clic su Visualizza schermateVisualizza screenshot opzione.

Screenshot comparison screen

È possibile selezionare e confrontare screenshot da diverse configurazioni come segue:

Compito Azione
Passa da un'esecuzione di test all'altra. Utilizza il menu a discesa nell'angolo in alto a sinistra.

menu del caso di test
Passa da uno screenshot all'altro durante l'esecuzione di un test. Usa le frecce nell'angolo in alto a destra.

commutatore di screenshot
Aggiungi ulteriori pannelli di confronto degli screenshot alla vista corrente. Fare clic su Confronta .

Confrontare
Scegli una dimensione di prova diversa (tipo di dispositivo, orientamento, locale, ecc.). Seleziona un nuovo membro dimensione dall'elenco nella parte inferiore dello screenshot.