

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Tutorial: Erstellen Sie eine Pipeline, die Ihre iOS-App testet mit AWS Device Farm
<a name="tutorials-codebuild-devicefarm-S3"></a>

 Sie können AWS CodePipeline damit ganz einfach einen kontinuierlichen Integrationsablauf konfigurieren, in dem Ihre App bei jeder Änderung des Quell-Buckets getestet wird. In diesem Tutorial wird gezeigt, wie Sie eine Pipeline erstellen und konfigurieren, um Ihre erstellte iOS-App aus einem S3-Bucket zu testen. Die Pipeline erkennt das Eintreffen einer gespeicherten Änderung über Amazon CloudWatch Events und verwendet dann [Device Farm](https://docs.aws.amazon.com/devicefarm/latest/developerguide/welcome.html), um die erstellte Anwendung zu testen. 

**Wichtig**  
Im Rahmen der Erstellung einer Pipeline wird ein vom Kunden bereitgestellter S3-Artefakt-Bucket von CodePipeline for Artifacts verwendet. (Dies unterscheidet sich von dem Bucket, der für eine S3-Quellaktion verwendet wird.) Wenn sich der S3-Artefakt-Bucket in einem anderen Konto befindet als das Konto für Ihre Pipeline, stellen Sie sicher, dass der S3-Artefakt-Bucket denjenigen gehört AWS-Konten , die sicher und zuverlässig sind.

**Wichtig**  
Viele der Aktionen, die Sie Ihrer Pipeline in diesem Verfahren hinzufügen, beinhalten AWS Ressourcen, die Sie erstellen müssen, bevor Sie die Pipeline erstellen. AWS Ressourcen für Ihre Quellaktionen müssen immer in derselben AWS Region erstellt werden, in der Sie Ihre Pipeline erstellen. Wenn Sie Ihre Pipeline beispielsweise in der Region USA Ost (Ohio) erstellen, muss sich Ihr CodeCommit Repository in der Region USA Ost (Ohio) befinden.   
Sie können beim Erstellen Ihrer Pipeline regionsübergreifende Aktionen hinzufügen. AWS Ressourcen für regionsübergreifende Aktionen müssen sich in derselben AWS Region befinden, in der Sie die Aktion ausführen möchten. Weitere Informationen finden Sie unter [Fügen Sie eine regionsübergreifende Aktion hinzu in CodePipeline](actions-create-cross-region.md).

Sie können dies mit Ihrer vorhandenen iOS-App oder der [iOS-Beispiel-App](samples/s3-ios-test-1.zip) ausprobieren.

**Bevor Sie beginnen**

1. Melden Sie sich bei der AWS Device Farm Konsole an und wählen Sie **Neues Projekt erstellen** aus.

1. Wählen Sie Ihr Projekt. Kopieren Sie im Browser die URL Ihres neuen Projekts. Die URL enthält die Projekt-ID.

1. Kopieren Sie diese Produkt-ID und bewahren Sie sie auf. Sie benötigen sie für die Erstellung Ihrer Pipeline in CodePipeline.

   Hier ist eine Beispiel-URL für ein Projekt. Um die Projekt-ID zu extrahieren, kopieren Sie den Wert nach `projects/`. In diesem Beispiel lautet die Produkt-ID `eec4905f-98f8-40aa-9afc-4c1cfexample`.

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

## Für CodePipeline die Verwendung Ihrer Device Farm Farm-Tests konfigurieren (Beispiel Amazon S3)
<a name="codepipeline-configure-tests-S3"></a>

1. Erstellen oder verwenden Sie einen S3-Bucket mit aktiviertem Versioning. Sie können den Anweisungen unter [Schritt 1: Erstellen Sie einen S3-Quell-Bucket für Ihre Anwendung](tutorials-simple-s3.md#s3-create-s3-bucket) folgen, um einen S3-Bucket zu erstellen.

1. Wählen Sie in der Amazon S3 S3-Konsole für Ihren Bucket **Upload** und folgen Sie den Anweisungen, um Ihre ZIP-Datei hochzuladen.

   Ihre Beispielanwendung muss in komprimierter Form als ZIP-Datei vorliegen.

1. Um Ihre Pipeline zu erstellen und eine Quellphase hinzuzufügen, gehen Sie wie folgt vor:

   1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die CodePipeline Konsole unter [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/).

   1. Wählen sie auf der Seite **Welcome (Willkommen)** die Option **Getting started (Erste Schritte)** aus, oder auf der Seite **Pipelines** die Option **Create pipeline (Pipeline erstellen)**.

   1. Wählen Sie auf der Seite **Schritt 1: Erstellungsoption auswählen** unter **Erstellungsoptionen** die Option **Benutzerdefinierte Pipeline erstellen** aus. Wählen Sie **Weiter** aus.

   1. Geben Sie auf der Seite **Schritt 2: Pipeline-Einstellungen auswählen** im Feld **Pipeline-Name** den Namen für Ihre Pipeline ein.

   1. CodePipeline bietet Pipelines vom Typ V1 und V2, die sich in ihren Eigenschaften und im Preis unterscheiden. Der Typ V2 ist der einzige Typ, den Sie in der Konsole auswählen können. Weitere Informationen finden Sie unter [Pipeline-Typen](https://docs.aws.amazon.com/codepipeline/latest/userguide/pipeline-types-planning.html?icmpid=docs_acp_help_panel). Informationen zur Preisgestaltung für finden Sie CodePipeline unter [Preisgestaltung](https://aws.amazon.com/codepipeline/pricing/).

   1. Wählen Sie unter **Service role** weiterhin **New service role** aus und lassen Sie **Role name** unverändert. Sie können auch eine vorhandene Service-Rolle verwenden, sofern eine vorhanden ist.
**Anmerkung**  
Wenn Sie eine CodePipeline Servicerolle verwenden, die vor Juli 2018 erstellt wurde, müssen Sie Berechtigungen für Device Farm hinzufügen. Öffnen Sie dazu die IAM-Konsole, suchen Sie nach der Rolle und fügen Sie dann der Rollenrichtlinie die folgenden Berechtigungen hinzu. Weitere Informationen finden Sie unter [Fügen Sie der CodePipeline Servicerolle Berechtigungen hinzu](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. Belassen Sie die Einstellungen unter **Erweiterte Einstellungen** bei den Standardeinstellungen, und wählen Sie dann **Next (Weiter)** aus.

   1. Wählen Sie auf der Seite **Schritt 3: Quellstufe hinzufügen** unter **Quellanbieter** die Option **Amazon S3** aus.

   1. Geben Sie im **Amazon S3 S3-Speicherort** den Bucket (z. `my-storage-bucket` B.) und den Objektschlüssel (z. B. `s3-ios-test-1.zip` für Ihre .zip-Datei) ein.

   1. Wählen Sie **Weiter** aus.

1. Erstellen Sie in **Schritt 4: Build-Phase hinzufügen** eine Platzhalter-Build-Phase für Ihre Pipeline. So können Sie die Pipeline im Assistenten erstellen. Wenn Sie den Assistenten zum Erstellen Ihrer zweistufigen Pipeline verwendet haben, brauchen Sie diese Platzhalter-Build-Stufe nicht mehr. Nachdem die Pipeline abgeschlossen ist, wird die zweite Stufe gelöscht und die neue Teststufe in Schritt 5 hinzugefügt.

   

   1. Wählen Sie unter **Build provider (Build-Anbieter)** auf **Add Jenkins (Jenkins hinzufügen)**. Diese Build-Auswahl ist nur ein Platzhalter. Sie wird nicht verwendet.

   1. Geben Sie unter **Provider name (Anbietername)** einen Namen ein. Der Name ist ein Platzhalter. Sie wird nicht verwendet.

   1. Geben Sie unter **Server URL** Text ein. Der Text ist ein Platzhalter. Sie wird nicht verwendet.

   1. Geben Sie unter **Project name (Projektname)** einen Namen ein. Der Name ist ein Platzhalter. Sie wird nicht verwendet.

   1. Wählen Sie **Weiter** aus.

   1. Wählen Sie in **Schritt 5: Testphase hinzufügen** die Option **Testphase überspringen** aus und akzeptieren Sie dann die Warnmeldung, indem Sie erneut **Überspringen** wählen. 

      Wählen Sie **Weiter** aus.

   1. Wählen Sie auf der Seite **Schritt 6: Bereitstellungsphase hinzufügen** die Option **Bereitstellungsphase überspringen** aus und akzeptieren Sie dann die Warnmeldung, indem Sie erneut auf **Überspringen** klicken.

   1. Wählen **Sie auf Schritt 7: Überprüfen** die Option **Pipeline erstellen** aus. Sie sollten ein Diagramm sehen, das Ihre Pipeline-Quell- und -Build-Stufen anzeigt.  
![\[\]](http://docs.aws.amazon.com/de_de/codepipeline/latest/userguide/images/codepipeline-view-pipeline-S3.png)

1. Fügen Sie Ihrer Pipeline wie folgt eine Device Farm Farm-Testaktion hinzu:

   1. Wählen Sie rechts oben **Edit (Bearbeiten)** aus. 

   1. Wählen Sie **Edit stage (Phase bearbeiten)**. Wählen Sie **Löschen** aus. Dadurch wird die Platzhalter-Stufe gelöscht, die Sie nun für die Pipeline-Erstellung nicht mehr benötigen.

   1. Wählen Sie unten im Diagramm **\$1 Add stage (\$1 Stufe hinzufügen)** aus.

   1. Geben Sie unter „Stage Name (Name der Phase)“ einen Namen für die Phase ein, etwa Test, und wählen Sie dann **Add stage (Phase hinzufügen)**.

   1. Wählen Sie **\$1 Add action group (Aktionsgruppe hinzufügen)**.

   1. Geben Sie im Feld **Aktionsname** einen Namen ein, z. DeviceFarmTest B.

   1. Wählen Sie **unter Aktionsanbieter** die Option **AWS Device Farm** aus. Belassen Sie unter **Region** als Standardeinstellung die Pipeline-Region.

   1. Wählen Sie unter **Input artifacts (Eingabeartefakte)** das Eingabeartefakt aus, das mit dem Ausgabeartefakt der Phase übereinstimmt, die sich vor der Testphase befindet, wie etwa `SourceArtifact`. 

      In der AWS CodePipeline Konsole finden Sie den Namen des Ausgabeartefakts für jede Phase, indem Sie den Mauszeiger über das Informationssymbol im Pipeline-Diagramm bewegen. Wenn Ihre Pipeline Ihre App direkt von der **Quellphase** aus testet, wählen Sie. **SourceArtifact** Wenn die Pipeline eine **Build-Phase** enthält, wählen Sie **BuildArtifact**.

   1. Wählen Sie **ProjectId**unter Ihre Device Farm Farm-Projekt-ID aus. Führen Sie die Schritte zu Beginn dieses Tutorials aus, um Ihre Projekt-ID abzurufen.

   1. Geben Sie **DevicePoolArn**unter den ARN für den Gerätepool ein. Geben Sie mit der AWS CLI den folgenden Befehl ein, um den verfügbaren Gerätepool ARNs für das Projekt abzurufen, einschließlich des ARN für Top-Geräte: 

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

   1. Geben **AppType**Sie **iOS** ein.

      Im Folgenden finden Sie eine Liste gültiger Werte für **AppType**:
      + **iOS**
      + **Android**
      + **Web**

   1. Geben Sie unter **App** den Pfad des kompilierten Anwendungspakets ein. Der Pfad ist relativ zum Stamm des Eingabeartefakts für die Testphase. In der Regel sieht dieser Pfad in etwa wie `ios-test.ipa` aus.

   1. Geben Sie unter Ihren Testtyp und anschließend im Feld **Test** den Pfad der Testspezifikationsdatei ein. **TestType** Der Pfad ist relativ zum Stamm des Eingabeartefakts für Ihren Test.

      Wenn Sie einen der integrierten Device Farm Farm-Tests verwenden, geben Sie den in Ihrem Device Farm Farm-Projekt konfigurierten Testtyp ein, z. B. BUILTIN\$1FUZZ. Geben Sie unter eine Zeit in **FuzzEventCount**Millisekunden ein, z. B. 6000. Geben Sie **FuzzEventThrottle**unter eine Zeit in Millisekunden ein, z. B. 50.

      Wenn Sie keinen der integrierten Device Farm Farm-Tests verwenden, geben Sie Ihren Testtyp und dann im Feld **Test** den Pfad der Testdefinitionsdatei ein. Der Pfad ist relativ zum Stamm des Eingabeartefakts für Ihren Test. 

      Im Folgenden finden Sie eine Liste gültiger Werte für **TestType**:
      + **APPIUM\$1JAVA\$1JUNIT**
      + **APPIUM\$1JAVA\$1TESTNG**
      + **APPIUM\$1KNOTEN**
      + **APPIUM\$1RUBY**
      + **APPIUM\$1PYTHON**
      + **APPIUM\$1WEB\$1JAVA\$1JUNIT**
      + **APPIUM\$1WEB\$1JAVA\$1TESTNG**
      + **APPIUM\$1WEB\$1NODE**
      + **APPIUM\$1WEB\$1RUBY**
      + **APPIUM\$1WEB\$1PYTHON**
      + **EINGEBAUTETER\$1FUZZ**
      + **INSTRUMENTATION**
      + **XCTEST**
      + **XCTEST\$1UI**
**Anmerkung**  
Knoten für benutzerdefinierte Umgebungen werden nicht unterstützt.

   1. Geben Sie in den übrigen Feldern die Konfiguration ein, die für Ihren Test- und Anwendungstyp geeignet ist.

   1. (Optional) Geben Sie unter **Advanced (Erweitert)** Konfigurationsinformationen für Ihren Testlauf ein.

   1. Wählen Sie **Speichern**.

   1. Wählen Sie in der Phase, die Sie bearbeiten, **Fertig**. Wählen Sie im AWS CodePipeline -Fenster **Save (Speichern)** und dann in der Warnmeldung **Save (Speichern)**.

   1. Um Ihre Änderungen zu übertragen und eine Pipelineausführung zu starten, wählen Sie **Release change (Änderung freigeben)** und dann **Release (Freigeben)**.