

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

# Tutorial: crea una pipeline con cui testare la tua app iOS AWS Device Farm
<a name="tutorials-codebuild-devicefarm-S3"></a>

 Puoi usarlo AWS CodePipeline per configurare facilmente un flusso di integrazione continuo in cui la tua app viene testata ogni volta che il bucket di origine cambia. Questo tutorial illustra come creare e configurare una pipeline per testare l'app iOS compilata da un bucket S3. La pipeline rileva l'arrivo di una modifica salvata tramite Amazon CloudWatch Events, quindi utilizza [Device Farm](https://docs.aws.amazon.com/devicefarm/latest/developerguide/welcome.html) per testare l'applicazione creata. 

**Importante**  
Come parte della creazione di una pipeline, per gli artefatti verrà utilizzato un bucket di artefatti S3 fornito dal cliente. CodePipeline (Questo è diverso dal bucket utilizzato per un'azione sorgente S3.) Se il bucket di artefatti S3 si trova in un account diverso da quello della pipeline, assicurati che il bucket di artefatti S3 sia di proprietà di utenti sicuri e affidabili. Account AWS 

**Importante**  
Molte delle azioni che aggiungi alla pipeline in questa procedura coinvolgono AWS risorse che devi creare prima di creare la pipeline. AWS le risorse per le tue azioni di origine devono sempre essere create nella stessa AWS regione in cui crei la pipeline. Ad esempio, se crei la pipeline nella regione Stati Uniti orientali (Ohio), il tuo CodeCommit repository deve trovarsi nella regione Stati Uniti orientali (Ohio).   
Puoi aggiungere azioni interregionali quando crei la pipeline. AWS le risorse per le azioni interregionali devono trovarsi nella stessa AWS regione in cui intendi eseguire l'azione. Per ulteriori informazioni, consulta [Aggiungere un'azione interregionale in CodePipeline](actions-create-cross-region.md).

Puoi sperimentare utilizzando una tua app iOS preesistente oppure puoi utilizzare l'[app iOS di esempio](samples/s3-ios-test-1.zip).

**Prima di iniziare**

1. Accedi alla AWS Device Farm console e scegli **Crea un nuovo progetto**.

1. Scegliere il progetto. Nel browser, copiare l'URL del nuovo progetto. L'URL contiene l'ID del progetto.

1. Copiare e conservare questo ID del progetto. Viene utilizzato quando si crea la pipeline in CodePipeline.

   Ecco un URL di esempio per un progetto. Per estrarre l'ID del progetto, copiare il valore dopo `projects/`. In questo esempio l'ID del prodotto è `eec4905f-98f8-40aa-9afc-4c1cfexample`.

   ```
   https://<region-URL>/devicefarm/home?region=us-west-2#/projects/eec4905f-98f8-40aa-9afc-4c1cfexample/runs
   ```

## Configura CodePipeline per utilizzare i test Device Farm (esempio Amazon S3)
<a name="codepipeline-configure-tests-S3"></a>

1. Creare o utilizzare un bucket S3 con la funzione versioni multiple attivata. Per creare un bucket S3, segui le istruzioni contenute in [Passaggio 1: crea un bucket di origine S3 per la tua applicazione](tutorials-simple-s3.md#s3-create-s3-bucket).

1. Nella console Amazon S3 del tuo bucket, scegli **Carica** e segui le istruzioni per caricare il tuo file.zip.

   L'applicazione di esempio deve essere compressa in un file .zip.

1. Per creare la pipeline e aggiungere una fase di origine, procedi nel seguente modo:

   1. Accedi Console di gestione AWS e apri la console all'indirizzo. CodePipeline [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/)

   1. Nella pagina **Welcome (Benvenuto)**, pagina **Getting started (Nozioni di base)** o pagina **Pipelines (Pipeline)**, scegliere **Create pipeline (Crea pipeline)**.

   1. Nella pagina **Passaggio 1: Scegli l'opzione di creazione**, in **Opzioni di creazione**, scegli l'opzione **Crea pipeline personalizzata**. Scegli **Next (Successivo)**.

   1. Nella pagina **Passaggio 2: Scegli le impostazioni della pipeline**, in Nome **pipeline, inserisci il nome** della pipeline.

   1. CodePipeline fornisce condotte di tipo V1 e V2, che differiscono per caratteristiche e prezzo. Il tipo V2 è l'unico tipo che puoi scegliere nella console. Per ulteriori informazioni, consulta i tipi di [pipeline.](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipeline-types-planning.html?icmpid=docs_acp_help_panel) Per informazioni sui prezzi di CodePipeline, consulta la sezione [Prezzi](https://aws.amazon.com/codepipeline/pricing/).

   1. Alla voce **Service role (Ruolo del servizio)**, lasciare selezionato **New service role (Nuovo ruolo del servizio)** e lasciare immutata la voce **Role name (Nome ruolo)**. È anche possibile scegliere di utilizzare un ruolo di servizio esistente, se disponibile.
**Nota**  
Se si utilizza un ruolo CodePipeline di servizio creato prima di luglio 2018, è necessario aggiungere le autorizzazioni per Device Farm. A tale scopo, apri la console IAM, trova il ruolo e aggiungi le seguenti autorizzazioni alla policy del ruolo. Per ulteriori informazioni, consulta [Aggiungi le autorizzazioni al ruolo di servizio CodePipeline](how-to-custom-role.md#how-to-update-role-new-services).  

      ```
      {
           "Effect": "Allow",
           "Action": [
              "devicefarm:ListProjects",
              "devicefarm:ListDevicePools",
              "devicefarm:GetRun",
              "devicefarm:GetUpload",
              "devicefarm:CreateUpload",
              "devicefarm:ScheduleRun"
           ],
           "Resource": "*"
      }
      ```

   1. Lasciare i valori predefiniti delle impostazioni in **Advanced settings (Impostazioni avanzate)**, quindi scegliere **Next (Successivo)**.

   1. Nella pagina **Fase 3: Aggiungi fase di origine**, in **Provider di origine**, scegli **Amazon S3**.

   1. Nella **posizione Amazon S3**, inserisci il bucket, ad esempio, e la chiave oggetto`my-storage-bucket`, ad esempio `s3-ios-test-1.zip` per il tuo file.zip.

   1. Scegli **Next (Successivo)**.

1. Nel **passaggio 4: aggiungi la fase di costruzione, crea una fase** di compilazione segnaposto per la tua pipeline. In questo modo è possibile creare la pipeline nella procedura guidata. Dopo aver utilizzato la procedura guidata per creare la pipeline a due fasi, questo segnaposto per la fase di compilazione non è più necessario. Una volta completata la creazione della pipeline, questa seconda fase viene eliminata e viene aggiunta la nuova fase di test nel passaggio 5.

   

   1. Alla voce **Build provider (Provider di compilazione)**, scegliere **Add Jenkins (Aggiungi Jenkins)**. Questa selezione per la compilazione è un segnaposto. Non viene utilizzato.

   1. Alla voce **Provider name (Nome provider)**, inserire un nome. Il nome è un segnaposto. Non viene utilizzato.

   1. Alla voce **Server URL (URL server)**, inserire il testo. Il testo è un segnaposto. Non viene utilizzato.

   1. Alla voce **Project name (Nome progetto)**, inserire un nome. Il nome è un segnaposto. Non viene utilizzato.

   1. Scegli **Next (Successivo)**.

   1. **Nel **passaggio 5: aggiungi la fase di test**, scegli **Ignora fase di test**, quindi accetta il messaggio di avviso scegliendo nuovamente Ignora.** 

      Scegli **Next (Successivo)**.

   1. **Nella pagina Passaggio 6: Aggiungi fase di distribuzione, scegli Ignora fase** **di distribuzione****, quindi accetta il messaggio di avviso scegliendo nuovamente Ignora.**

   1. **Nel **Passaggio 7: Revisione**, scegli Crea pipeline.** Dovresti visualizzare uno schema che mostra le fasi di origine e compilazione.  
![\[\]](http://docs.aws.amazon.com/it_it/codepipeline/latest/userguide/images/codepipeline-view-pipeline-S3.png)

1. Aggiungi un'azione di test di Device Farm alla tua pipeline come segue:

   1. In alto a destra, scegli **Edit (Modifica)**. 

   1. Scegli **Edit stage (Modifica fase)**. Scegli **Elimina**. Ciò elimina il segnaposto della fase ora che non è più necessaria per la creazione della pipeline.

   1. In fondo al diagramma, scegliere **\$1 Add stage (\$1 Aggiungi fase)**

   1. In "Nome fase", immetti un nome per la fase, ad esempio Test, quindi scegli **Add stage (Aggiungi fase)**.

   1. Scegliere **\$1 Add action group (\$1 Aggiungi gruppo di operazioni)**.

   1. In **Nome azione**, inserisci un nome, ad esempio DeviceFarmTest.

   1. In **Action provider**, scegli **AWS Device Farm**. Consenti a **Region (Regione)** di preimpostarsi sulla regione della pipeline.

   1. In **Input artifacts (Artefatti di input)**, scegli l'artefatto di input che corrisponde all'artefatto di output della fase precedente alla fase di test, ad esempio `SourceArtifact`. 

      Nella AWS CodePipeline console, puoi trovare il nome dell'elemento di output per ogni fase passando il mouse sull'icona delle informazioni nel diagramma della pipeline. **Se la pipeline verifica l'app direttamente dalla fase Source, scegli. **SourceArtifact**** Se la pipeline include una fase di **creazione**, scegli. **BuildArtifact**

   1. Nel **ProjectId**, scegli l'ID del tuo progetto Device Farm. Utilizzare la procedura all'inizio di questo tutorial per recuperare l'ID del progetto.

   1. In **DevicePoolArn**, inserisci l'ARN per il pool di dispositivi. Per ottenere il pool di dispositivi disponibile ARNs per il progetto, incluso l'ARN per i dispositivi principali, utilizza la AWS CLI per immettere il seguente comando: 

      ```
      aws devicefarm list-device-pools --arn arn:aws:devicefarm:us-west-2:account_ID:project:project_ID
      ```

   1. Nel **AppType**, inserisci **iOS**.

      Di seguito è riportato un elenco di valori validi per **AppType**:
      + **iOS**
      + **Android**
      + **App**

   1. In **App**, inserisci il percorso del pacchetto dell'applicazione compilata. Il percorso è relativo alla cartella principale dell'artefatto di input della fase di sviluppo. Di solito, questo percorso è simile a `ios-test.ipa`.

   1. In **TestType**, inserisci il tipo di test, quindi in **Test**, inserisci il percorso del file di definizione del test. Il percorso è relativo alla cartella principale dell'artefatto di input del test.

      Se utilizzi uno dei test Device Farm integrati, inserisci il tipo di test configurato nel tuo progetto Device Farm, ad esempio BUILTIN\$1FUZZ. In **FuzzEventCount**, inserisci un tempo in millisecondi, ad esempio 6000. In **FuzzEventThrottle**, immettete un tempo in millisecondi, ad esempio 50.

      Se non stai utilizzando uno dei test Device Farm integrati, inserisci il tipo di test, quindi in **Test** inserisci il percorso del file di definizione del test. Il percorso è relativo alla cartella principale dell'artefatto di input del test. 

      Di seguito è riportato un elenco di valori validi per **TestType**:
      + **APPIUM\$1JAVA\$1JUNIT**
      + **APPIUM\$1JAVA\$1TESTNG**
      + **NODO\$1APPIUM**
      + **APPIUM\$1RUBY**
      + **APPIUM\$1PYTHON**
      + **APPIUM\$1WEB\$1JAVA\$1JUNIT**
      + **APPIUM\$1WEB\$1JAVA\$1TESTNG**
      + **NODO APPIUM\$1WEB**
      + **APPIUM\$1WEB\$1RUBY**
      + **APPIUM\$1WEB\$1PYTHON**
      + **BUILTIN\$1FUZZ**
      + **INSTRUMENTATION**
      + **XCTEST**
      + **XCTEST\$1UI**
**Nota**  
I nodi di ambiente personalizzati non sono supportati.

   1. Nei campi rimanenti, inserire la configurazione appropriata per il test e il tipo di applicazione.

   1. (Facoltativo) IN **Advanced (Avanzate)**, fornire informazioni di configurazione per la sessione di test.

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

   1. Nella fase che stai modificando, scegli **Done (Fatto)**. Nel riquadro AWS CodePipeline , scegli **Save (Salva)** e quindi scegli **Save (Salva)** sul messaggio di avviso.

   1. Per inviare le modifiche e avviare l'esecuzione della pipeline, scegli **Release change (Rilascia modifica)** e quindi scegli **Release (Rilascia)**.