

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Strumentazione per Android e AWS Device Farm
<a name="test-types-android-instrumentation"></a>

Device Farm fornisce supporto per Instrumentation (JUnit, Espresso, Robotium o qualsiasi test basato su strumentazione) per Android.

Device Farm fornisce anche un'applicazione Android di esempio e collegamenti a test di lavoro in tre framework di automazione Android, tra cui Instrumentation (Espresso). L'[app di esempio Device Farm per Android](https://github.com/awslabs/aws-device-farm-sample-app-for-android) è disponibile per il download su GitHub.

Per ulteriori informazioni sui test in Device Farm, vedere[Framework di test e test integrati in AWS Device Farm](test-types.md).

**Topics**
+ [Che cos'è la strumentazione?](#test-types-android-instrumentation-what-is)
+ [Considerazioni per i test di strumentazione Android](#test-types-android-instrumentation-settings)
+ [Analisi dei test in modalità standard](#test-types-android-standard-mode-test-parse)
+ [Integrazione della strumentazione Android con Device Farm](test-types-android-instrumentation-integrate.md)

## Che cos'è la strumentazione?
<a name="test-types-android-instrumentation-what-is"></a>

Instrumentation di Android consente di invocare metodi di callback nel codice di test in modo da poter eseguire tutto il ciclo di vita di un componente passo-passo, come se si stesse effettuando il debug del componente. Per ulteriori informazioni, consulta [Test strumentati](https://developer.android.com/studio/test/test-in-android-studio#test_types_and_locations) nella sezione *Tipi e posizioni dei test* della documentazione di *Android Developer Tools*.

## Considerazioni per i test di strumentazione Android
<a name="test-types-android-instrumentation-settings"></a>

Quando utilizzi la strumentazione Android, prendi in considerazione i seguenti consigli e note.

**Verifica la compatibilità del sistema operativo Android**  
 Consulta la [documentazione di Android](https://developer.android.com/jetpack/androidx/releases/test#orchestrator-1.5.0) per assicurarti che Instrumentation sia compatibile con la versione del tuo sistema operativo Android. 

**Esecuzione dalla riga di comando**  
 Per eseguire i test di Instrumentation dalla riga di comando, segui la documentazione di [Android](https://developer.android.com/training/testing/instrumented-tests/androidx-test-libraries/runner#enable-command). 

**System Animations (Animazioni di sistema)**  
 Secondo la [documentazione Android per i test di Espresso](https://developer.android.com/training/testing/espresso), si consiglia di disattivare le animazioni di sistema durante i test su dispositivi reali. Device Farm disattiva automaticamente le impostazioni **Window Animation Scale**, **Transition Animation Scale e Animator** **Duration Scale quando viene eseguito con il test** runner di strumentazione [JUnitandroid.support.test.runner.Android](http://developer.android.com/reference/android/support/test/runner/AndroidJUnitRunner.html) Runner.

**Test Recorders (Registratori di test)**  
Device Farm supporta framework, come Robotium, che dispongono record-and-playback di strumenti di scripting.

## Analisi dei test in modalità standard
<a name="test-types-android-standard-mode-test-parse"></a>

Nella modalità standard di esecuzione, Device Farm analizza la suite di test e identifica le classi e i metodi di test univoci che verrà eseguita. Questo viene fatto tramite uno strumento chiamato [Dex Test Parser](https://github.com/linkedin/dex-test-parser). 

Quando viene fornito un file.apk della strumentazione Android come input, il parser restituisce i nomi completi dei metodi dei test che corrispondono JUnit alle convenzioni 3 e 4. JUnit 

Per testarlo in un ambiente locale: 

1. Scarica il file [https://github.com/linkedin/dex-test-parser](https://github.com/linkedin/dex-test-parser)binario.

1. Esegui il comando seguente per ottenere l'elenco dei metodi di test che verranno eseguiti su Device Farm:

   ```
   java -jar parser.jar path/to/apk path/for/output
   ```

# Integrazione della strumentazione Android con Device Farm
<a name="test-types-android-instrumentation-integrate"></a>

**Nota**  
Utilizza le seguenti istruzioni per integrare i test della strumentazione Android con AWS Device Farm. Per ulteriori informazioni sull'utilizzo dei test di strumentazione in Device Farm, vedere. [Strumentazione per Android e AWS Device Farm](test-types-android-instrumentation.md) 

## Carica i tuoi test di strumentazione Android
<a name="test-types-android-instrumentation-upload"></a>

Usa la console Device Farm per caricare i test.

1. Accedere alla console Device Farm all'indirizzo [https://console.aws.amazon.com/devicefarm.](https://console.aws.amazon.com/devicefarm)

1. Nel pannello di navigazione di Device Farm, scegli **Mobile Device Testing**, quindi scegli **Progetti**.

1. Nell'elenco dei progetti, scegli il progetto su cui caricare i test.
**Suggerimento**  
Puoi utilizzare la barra di ricerca per filtrare l'elenco dei progetti per nome.  
Per creare un progetto, segui le istruzioni indicate nella sezione [Creazione di un progetto in AWS Device Farm](how-to-create-project.md).

1. Seleziona **Crea esegui**.

1. In **Seleziona app**, nella sezione **Opzioni di selezione dell'app**, seleziona **Carica la tua app**.

1. Individua e seleziona il file dell'app Android. Il file deve essere di tipo .apk.

1. In **Configura test**, nella sezione **Select test framework**, scegli **Strumentazione**, quindi seleziona **Scegli** file.

1. Individuare e selezionare il file .apk che contiene i test.

1. Completa le istruzioni rimanenti per selezionare i dispositivi e avviare l'esecuzione.

## (Facoltativo) Acquisisci schermate nei test della strumentazione Android
<a name="test-types-android-instrumentation-screenshots"></a>

Durante i test di Instrumentation per Android, si possono acquisire screenshot.

Per acquisire screenshot, chiamare uno dei seguenti metodi:
+ Per Robotium, chiamare il metodo `takeScreenShot` (ad esempio, `solo.takeScreenShot();`).
+ Per Spoon, chiamare il metodo `screenshot`, ad esempio:

  ```
  Spoon.screenshot(activity, "initial_state");
  /* Normal test code... */
  Spoon.screenshot(activity, "after_login");
  ```

Durante un'esecuzione di test, Device Farm ottiene schermate dalle seguenti posizioni sui dispositivi, se esistono, e quindi le aggiunge ai rapporti di test:
+ `/sdcard/robotium-screenshots`
+ `/sdcard/test-screenshots`
+ `/sdcard/Download/spoon-screenshots/test-class-name/test-method-name`
+ `/data/data/application-package-name/app_spoon-screenshots/test-class-name/test-method-name`