

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à.

# Strumenti e plugin per AWS Device Farm
<a name="aws-device-farm-tools-plugins"></a>

Questa sezione contiene collegamenti e informazioni sull'utilizzo degli strumenti e dei plugin di AWS Device Farm. Puoi trovare i plugin Device Farm su [AWS Labs](https://github.com/awslabs/) su. GitHub

Se sei uno sviluppatore Android, abbiamo anche un'[app di esempio AWS Device Farm per Android su GitHub](https://github.com/awslabs/aws-device-farm-sample-app-for-android). Puoi utilizzare l'app e i test di esempio come riferimento per i tuoi script di test di Device Farm.

**Topics**
+ [Integrazione di Device Farm con un server CI Jenkins](continuous-integration-jenkins-plugin.md)
+ [Integrazione di Device Farm con un sistema di build Gradle](aws-device-farm-android-gradle-plugin.md)

# Integrazione di Device Farm con un server CI Jenkins
<a name="continuous-integration-jenkins-plugin"></a>

Il plug-in Jenkins CI fornisce la funzionalità AWS Device Farm dal tuo server di integrazione continua (CI) Jenkins. Per ulteriori informazioni, consulta [Jenkins (software)](https://en.wikipedia.org/wiki/Jenkins_%28software%29).

**Nota**  
Per scaricare il plugin Jenkins, vai a [GitHub](https://github.com/awslabs/aws-device-farm-jenkins-plugin)e segui le istruzioni in. [Fase 1: Installazione del plugin Jenkins CI per AWS Device FarmInstallazione del plugin Jenkins CI](#jenkins-ci-installing-the-plugin)

Questa sezione contiene una serie di procedure per configurare e utilizzare il plugin Jenkins CI con AWS Device Farm.

Le seguenti immagini mostrano le caratteristiche del plugin Jenkins CI.

![\[Integrazione con l'applicazione Hello World di Jenkins CI\]](http://docs.aws.amazon.com/it_it/devicefarm/latest/developerguide/images/aws-device-farm-jenkins-plugin-continuous-integration-project-hello-world-app.png)


![\[Integrazione con le operazioni post-compilazione Jenkins CI\]](http://docs.aws.amazon.com/it_it/devicefarm/latest/developerguide/images/aws-device-farm-jenkins-plugin-continuous-integration-post-build-actions.png)


Il plugin può anche aprire tutti gli artefatti del test (log, screenshot, ecc.) in locale:

![\[Integrazione con gli artefatti del test Jenkins CI\]](http://docs.aws.amazon.com/it_it/devicefarm/latest/developerguide/images/aws-device-farm-jenkins-plugin-continuous-integration-test-artifacts.png)


**Topics**
+ [Dipendenze](#jenkins-plugin-dependencies)
+ [Fase 1: Installazione del plugin Jenkins CI per AWS Device Farm](#jenkins-ci-installing-the-plugin)
+ [Fase 2: creazione di un AWS Identity and Access Management utente per il plugin Jenkins CI per AWS Device Farm](#jenkins-ci-set-up-iam-user)
+ [Fase 3: Configurazione del plugin Jenkins CI per la prima volta in AWS Device Farm](#jenkins-ci-first-time-configuration-instructions)
+ [Fase 4: Usare il plugin in un job Jenkins](#jenkins-ci-using-plugin-jenkins-job)

## Dipendenze
<a name="jenkins-plugin-dependencies"></a>

Il plugin Jenkins CI richiede AWS Mobile SDK 1.10.5 o versione successiva. Per ulteriori informazioni e per installare l'SDK, consulta [SDK AWS Mobile](https://aws.amazon.com/mobile/sdk/).

## Fase 1: Installazione del plugin Jenkins CI per AWS Device Farm
<a name="jenkins-ci-installing-the-plugin"></a>

Esistono due opzioni per installare il plug-in Jenkins continuous integration (CI) per AWS Device Farm. Puoi cercare il plugin nella finestra di dialogo **Available Plugins (Plugin disponibili)** nell'interfaccia utente Web di Jenkins, oppure puoi scaricare il file `hpi` e installarlo in Jenkins.

### Installazione dall'interfaccia utente di Jenkins
<a name="installing-jenkins-from-within-ui"></a>

1. Trova il plugin nell'interfaccia utente di Jenkins selezionando **Manage Jenkins (Gestisci Jenkins)**, **Manage Plugins (Gestisci Plugin)** e **Available (Disponibili)**.

1. Cercare **aws-device-farm**.

1. Installa il plug-in AWS Device Farm.

1. Assicurati che il plugin sia di proprietà dell'utente `Jenkins`.

1. Riavvia Jenkins.

### Scarica il plugin
<a name="installing-jenkins-manual-install"></a>

1. Scaricate il `hpi` file direttamente da [http://updates.jenkins-ci. org/latest/aws-device-farm.hpi](http://updates.jenkins-ci.org/latest/aws-device-farm.hpi).

1. Assicurati che il plugin sia di proprietà dell'utente `Jenkins`.

1. Installa il plugin utilizzando una delle seguenti opzioni.
   + Carica il plugin selezionando **Manage Jenkins (Gestisci Jenkins)**, **Manage Plugins (Gestisci plugin)**, **Advanced (Avanzate)** e **Upload plugin (Carica plugin)**.
   + Inserisci il file `hpi` nella directory del plugin Jenkins (di solito `/var/lib/jenkins/plugins`).

1. Riavvia Jenkins.

## Fase 2: creazione di un AWS Identity and Access Management utente per il plugin Jenkins CI per AWS Device Farm
<a name="jenkins-ci-set-up-iam-user"></a>

Si consiglia di non utilizzare l'account AWS root per accedere a Device Farm. Invece, crea un nuovo utente AWS Identity and Access Management (IAM) (o utilizza un utente IAM esistente) nel tuo AWS account, quindi accedi a Device Farm con quell'utente IAM.

Per creare un nuovo utente IAM, consulta [Creazione di un utente IAM (Console di gestione AWS)](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_SettingUpUser.html#Using_CreateUser_console). Assicurati di generare una chiave di accesso per ogni utente e di scaricare o salvare le credenziali di sicurezza degli utenti. Avrai bisogno delle credenziali in un secondo momento.

### Autorizza l'utente IAM ad accedere a Device Farm
<a name="jenkins-ci-setting-up-permissions"></a>

Per concedere all'utente IAM l'autorizzazione ad accedere a Device Farm, crea una nuova policy di accesso in IAM, quindi assegna la policy di accesso all'utente IAM come segue.

**Nota**  
L'account AWS root o l'utente IAM che utilizzi per completare i seguenti passaggi deve disporre dell'autorizzazione per creare la seguente policy IAM e collegarla all'utente IAM. Per ulteriori informazioni, consulta l'articolo relativo all'[utilizzo delle policy](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies_manage.html).

**Per creare la politica di accesso in IAM**

1. Aprire la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Seleziona **Policy**.

1. Scegli **Crea policy**. (Se viene visualizzato il pulsante **Get Started (Inizia)**, sceglierlo, quindi scegliere **Create Policy (Crea policy)**).

1. Accanto a **Create Your Own Policy** (Crea la tua policy) scegli **Select** (Seleziona).

1. In **Policy Name (Nome policy)** digitare un nome per la policy, ad esempio **AWSDeviceFarmAccessPolicy**.

1. Per **Descrizione**, digita una descrizione che ti aiuti ad associare questo utente IAM al tuo progetto Jenkins.

1. Per **Policy Document (Documento della policy)**, digita la seguente istruzione:

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "DeviceFarmAll",
               "Effect": "Allow",
               "Action": [ "devicefarm:*" ],
               "Resource": [ "*" ]
           }
       ]
   }
   ```

------

1. Scegli **Crea policy**.

**Per assegnare la politica di accesso all'utente IAM**

1. Aprire la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Scegliere **Users (Utenti)**.

1. Scegli l'utente IAM a cui assegnare la politica di accesso.

1. Nell'area **Permissions (Autorizzazioni)**, in **Managed Policies (Policy gestite)**, seleziona **Attach Policy (Collega policy)**.

1. Seleziona la policy che hai appena creato (ad esempio, **AWSDeviceFarmAccessPolicy**). 

1. Scegli **Attach Policy (Collega policy)**.

## Fase 3: Configurazione del plugin Jenkins CI per la prima volta in AWS Device Farm
<a name="jenkins-ci-first-time-configuration-instructions"></a>

La prima volta che esegui il server Jenkins, dovrai configurare il sistema nel seguente modo.

**Nota**  
 Se stai utilizzando [slot per i dispositivi](how-to-purchase-device-slots.md), la loro funzionalità sarà disabilitata per impostazione predefinita. 

1. Accedi all'interfaccia utente Web di Jenkins.

1. Sul lato sinistro dello schermo, scegli **Manage Jenkins (Gestisci Jenkins)**.

1. Scegli **Configure System (Configura sistema)**.

1. Scorri verso il basso fino all'intestazione di **AWS Device Farm**.

1. Copia le tue credenziali di sicurezza da [Creazione di un utente IAM per il tuo plugin Jenkins CI](#jenkins-ci-set-up-iam-user) e incolla il tuo ID chiave di accesso e la tua chiave di accesso segreta nelle rispettive caselle.

1. Scegli **Save** (Salva).

## Fase 4: Usare il plugin in un job Jenkins
<a name="jenkins-ci-using-plugin-jenkins-job"></a>

Dopo aver installato il plugin Jenkins, segui queste istruzioni per utilizzare il plugin in un'attività di Jenkins.

1. Accedi all'interfaccia utente Web di Jenkins.

1. Clicca sull'attività che desideri modificare.

1. Sul lato sinistro dello schermo, scegli **Configure (Configura)**.

1. Scorri verso il basso fino all'intestazione **Post-build Actions (Operazioni post-compilazione)**.

1. Fai clic su **Aggiungi azione post-compilazione** e seleziona **Run Tests on AWS Device Farm**.

1. Seleziona il progetto che desideri utilizzare.

1. Seleziona il pool di dispositivi che desideri utilizzare.

1. Seleziona se archiviare in locale gli artefatti dei test (ad esempio, i log e gli screenshot).

1. In **Application (Applicazione)**, inserisci il percorso dell'applicazione compilata.

1. Seleziona il test che desideri eseguire e compila tutti i campi obbligatori.

1. Scegli **Save** (Salva).

# Integrazione di Device Farm con un sistema di build Gradle
<a name="aws-device-farm-android-gradle-plugin"></a>

Il plugin Device Farm Gradle fornisce l'integrazione di AWS Device Farm con il sistema di build Gradle in Android Studio. Per ulteriori informazioni, consulta [Gradle](https://gradle.org).

**Nota**  
Per scaricare il plugin Gradle, vai a [GitHub](https://github.com/awslabs/aws-device-farm-gradle-plugin)e segui le istruzioni in. [Creazione del plugin Device Farm Gradle](#aws-device-farm-gradle-plugin-building)

Il plugin Device Farm Gradle fornisce la funzionalità Device Farm dal tuo ambiente Android Studio. Puoi iniziare i test su telefoni e tablet Android reali ospitati da Device Farm.

Questa sezione contiene una serie di procedure per configurare e utilizzare il Device Farm Gradle Plugin.

**Topics**
+ [Dipendenze](#aws-device-farm-gradle-plugin-dependencies)
+ [Fase 1: creazione del plug-in AWS Device Farm Gradle](#aws-device-farm-gradle-plugin-building)
+ [Fase 2: configurazione del plugin AWS Device Farm Gradle](#aws-device-farm-gradle-plugin-setting-up)
+ [Fase 3: Generazione di un utente IAM nel plugin Device Farm Gradle](#aws-device-farm-gradle-plugin-generating-iam-user)
+ [Fase 4: Configurazione dei tipi di test](#aws-device-farm-gradle-plugin-configuring-test-types)

## Dipendenze
<a name="aws-device-farm-gradle-plugin-dependencies"></a>

**Runtime**
+ Il Device Farm Gradle Plugin richiede AWS Mobile SDK 1.10.15 o successivo. Per ulteriori informazioni e per installare l'SDK, consulta [SDK AWS Mobile](https://aws.amazon.com/mobile/sdk/).
+ Android Tools Builder Test API 0.5.2
+ Apache Commons Lang3 3.3.4

**Per unit test**
+ Testng 6.8.8
+ Jmockit 1.19
+ Android Gradle Tools 1.3.0

## Fase 1: creazione del plug-in AWS Device Farm Gradle
<a name="aws-device-farm-gradle-plugin-building"></a>

Questo plugin fornisce l'integrazione di AWS Device Farm con il sistema di build Gradle in Android Studio. Per ulteriori informazioni, consulta [Gradle](https://gradle.org).

**Nota**  
La creazione del plugin è facoltativa. Il plugin viene pubblicato tramite Maven Central. Se desideri consentire a Gradle di scaricare direttamente il plugin, salta questa fase e passa a [Fase 2: configurazione del plugin AWS Device Farm Gradle](#aws-device-farm-gradle-plugin-setting-up).

**Per creare il plugin**

1. Vai al [GitHub](https://github.com/awslabs/aws-device-farm-gradle-plugin)repository e clona.

1. Creare il plugin usando `gradle install`.

   Il plugin viene installato sull'archivio Maven locale.

Fase successiva: [Fase 2: configurazione del plugin AWS Device Farm Gradle](#aws-device-farm-gradle-plugin-setting-up)

## Fase 2: configurazione del plugin AWS Device Farm Gradle
<a name="aws-device-farm-gradle-plugin-setting-up"></a>

Se non lo hai già fatto, clona l'archivio e installa il plugin usando la procedura indicata qui: [Creazione del plugin Device Farm Gradle](#aws-device-farm-gradle-plugin-building).

**Per configurare il plugin AWS Device Farm Gradle**

1. Aggiungere l'artefatto del plugin al proprio elenco di dipendenze in `build.gradle`.

   ```
       buildscript {
   
           repositories {        
               mavenLocal()            
               mavenCentral()            
           }
   
           dependencies {        
               classpath 'com.android.tools.build:gradle:1.3.0'           
               classpath 'com.amazonaws:aws-devicefarm-gradle-plugin:1.0'            
           }        
       }
   ```

1. Configurare il plugin nel proprio file `build.gradle`. La seguente configurazione della specifica di test deve fungere da guida:

   ```
   apply plugin: 'devicefarm'
   
   devicefarm {
   
       // Required. The project must already exist. You can create a project in the AWS Device Farm console.
       projectName "My Project" // required: Must already exist.
   
       // Optional. Defaults to "Top Devices"
       // devicePool "My Device Pool Name"
       
       // Optional. Default is 150 minutes
       // executionTimeoutMinutes 150
       
       // Optional. Set to "off" if you want to disable device video recording during a run. Default is "on"
       // videoRecording "on"
       
       // Optional. Set to "off" if you want to disable device performance monitoring during a run. Default is "on"
       // performanceMonitoring "on"
       
       // Optional. Add this if you have a subscription and want to use your unmetered slots
       // useUnmeteredDevices()
       
       // Required. You must specify either accessKey and secretKey OR roleArn. roleArn takes precedence. 
       authentication {
           accessKey "AKIAIOSFODNN7EXAMPLE"
           secretKey "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
           
           // OR
           
           roleArn "arn:aws:iam::111122223333:role/DeviceFarmRole"
       }
   
       // Optionally, you can 
       // - enable or disable Wi-Fi, Bluetooth, GPS, NFC radios
       // - set the GPS coordinates
       // - specify files and applications that must be on the device when your test runs
       devicestate {
           // Extra files to include on the device.
           // extraDataZipFile file("path/to/zip")
           
           // Other applications that must be installed in addition to yours. 
           // auxiliaryApps files(file("path/to/app"), file("path/to/app2"))
           
           // By default, Wi-Fi, Bluetooth, GPS, and NFC are turned on.
           // wifi "off"
           // bluetooth "off"
           // gps "off"
           // nfc "off"
           
           // You can specify GPS location. By default, this location is 47.6204, -122.3491
           // latitude 44.97005
           // longitude -93.28872
       }
    
       // By default, the Instrumentation test is used.
       // If you want to use a different test type, configure it here.
       // You can set only one test type (for example, Calabash, Fuzz, and so on)
    
       // Fuzz
       // fuzz { }
   
       // Calabash
       // calabash { tests file("path-to-features.zip") }
          
   }
   ```

1. Esegui il test di Device Farm utilizzando la seguente attività:`gradle devicefarmUpload`.

   L'output della build stamperà un collegamento alla console Device Farm dove è possibile monitorare l'esecuzione del test.

Fase successiva: [Generazione di un utente IAM nel plugin Device Farm Gradle](#aws-device-farm-gradle-plugin-generating-iam-user)

## Fase 3: Generazione di un utente IAM nel plugin Device Farm Gradle
<a name="aws-device-farm-gradle-plugin-generating-iam-user"></a>

AWS Identity and Access Management (IAM) ti aiuta a gestire le autorizzazioni e le politiche per lavorare con AWS le risorse. Questo argomento illustra come generare un utente IAM con autorizzazioni per accedere alle risorse di AWS Device Farm.

Se non l'hai già fatto, completa i passaggi 1 e 2 prima di generare un utente IAM.

Si consiglia di non utilizzare l'account AWS root per accedere a Device Farm. Invece, crea un nuovo utente IAM (o utilizza un utente IAM esistente) nel tuo AWS account, quindi accedi a Device Farm con quell'utente IAM.

**Nota**  
L'account AWS root o l'utente IAM che utilizzi per completare i seguenti passaggi deve disporre dell'autorizzazione per creare la seguente policy IAM e collegarla all'utente IAM. Per ulteriori informazioni, consulta l'articolo relativo all'[utilizzo delle policy](https://docs.aws.amazon.com/IAM/latest/UserGuide/policies_manage.html).

**Per creare un nuovo utente con la politica di accesso appropriata in IAM**

1. Aprire la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Scegliere **Users (Utenti)**.

1. Scegliere **Create New Users (Crea nuovi utenti)**.

1. Immettere il nome utente di propria scelta.

   Ad esempio, **GradleUser**.

1. Scegli **Create** (Crea).

1. Scegliere **Download Credentials (Scarica credenziali)** e salvarle in una posizione in cui saranno facilmente recuperabili in seguito.

1. Scegli **Chiudi**.

1. Selezionare il nome utente nell'elenco.

1. In **Permissions (Autorizzazioni)**, espandere l'intestazione **Inline Policies (Policy inline)** facendo clic sulla freccia giù a destra.

1. Scegli **Fai clic qui** dove dice, **Non ci sono politiche in linea da mostrare. Per crearne uno, clicca qui**.

1. Sulla schermata **Set Permissions (Imposta autorizzazioni)**, selezionare **Custom Policy (Personalizza policy)**.

1. Scegli **Seleziona**.

1. Assegnare un nome alla policy, ad esempio **AWSDeviceFarmGradlePolicy**.

1. Incollare la seguente policy in **Policy Document (Documento policy)**.

------
#### [ JSON ]

****  

   ```
       {
           "Version":"2012-10-17",		 	 	 
           "Statement": [
               {
                   "Sid": "DeviceFarmAll",
                   "Effect": "Allow",
                   "Action": [ "devicefarm:*" ],
                   "Resource": [ "*" ]
               }
           ]
       }
   ```

------

1. Scegli **Apply Policy** (Applica policy).

Fase successiva: [Configurazione dei tipi di test](#aws-device-farm-gradle-plugin-configuring-test-types).

Per ulteriori informazioni, consulta [Creazione di un utente IAM (Console di gestione AWS)](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_SettingUpUser.html#Using_CreateUser_console) o[Configurazione](setting-up.md).

## Fase 4: Configurazione dei tipi di test
<a name="aws-device-farm-gradle-plugin-configuring-test-types"></a>

Per impostazione predefinita, il plug-in AWS Device Farm Gradle esegue il [Strumentazione per Android e AWS Device Farm](test-types-android-instrumentation.md) test. Se desideri eseguire i tuoi test o specificare parametri aggiuntivi, puoi scegliere di configurare un tipo di test. Questo argomento fornisce informazioni su ciascun tipo di test disponibile e su ciò che devi fare in Android Studio per configurarlo per l'uso. Per ulteriori informazioni sui tipi di test disponibili in Device Farm, vedere[Framework di test e test integrati in AWS Device Farm](test-types.md).

Se non l'hai già fatto, completa i passaggi da 1 a 3 prima di configurare i tipi di test.

**Nota**  
Se stai utilizzando [slot per i dispositivi](how-to-purchase-device-slots.md), la loro funzionalità sarà disabilitata per impostazione predefinita.

### Appium
<a name="configuring-test-types-appium"></a>

Device Farm fornisce supporto per Appium Java e JUnit TestNG per Android.
+ [Appium (in Java ()) JUnit](https://docs.aws.amazon.com//devicefarm/latest/developerguide/test-types-appium.html)
+ [Appium (in Java (TestNg))](https://docs.aws.amazon.com//devicefarm/latest/developerguide/test-types-appium.html)

Puoi scegliere `useTestNG()` o `useJUnit()`. `JUnit` è l'impostazione predefinita e non deve essere specificata in modo esplicito.

```
    appium {
        tests file("path to zip file") // required
        useTestNG() // or useJUnit()
    }
```

### Incorporato: fuzz
<a name="configuring-test-types-built-in-fuzz"></a>

Device Farm offre un tipo di fuzz test integrato, che invia in modo casuale gli eventi dell'interfaccia utente ai dispositivi e quindi riporta i risultati.

```
    fuzz {

       eventThrottle 50 // optional default
       eventCount 6000  // optional default
       randomizerSeed 1234 // optional default blank

     }
```

Per ulteriori informazioni, consulta [Esecuzione del fuzz test integrato di Device Farm (Android e iOS)](test-types-built-in-fuzz.md).

### Instrumentation
<a name="configuring-test-types-instrumentation"></a>

Device Farm fornisce supporto per la strumentazione (EspressoJUnit, Robotium o qualsiasi test basato sulla strumentazione) per Android. Per ulteriori informazioni, consulta [Strumentazione per Android e AWS Device Farm](test-types-android-instrumentation.md).

Quando si esegue un test di strumentazione in Gradle, Device Farm utilizza il `.apk` file generato dalla directory **AndroidTest** come fonte dei test.

```
    instrumentation { 

        filter "test filter per developer docs" // optional

    }
```