

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.

# Instrumentierung für Android und AWS Device Farm
<a name="test-types-android-instrumentation"></a>

Device Farm bietet Unterstützung für Instrumentation (JUnit, Espresso, Robotium oder andere instrumentationsbasierte Tests) für Android.

Device Farm bietet auch eine Android-Beispielanwendung und Links zu Arbeitstests in drei Android-Automatisierungsframeworks, darunter Instrumentation (Espresso). Die [Device Farm Farm-Beispiel-App für Android steht unter](https://github.com/awslabs/aws-device-farm-sample-app-for-android) zum Download bereit GitHub.

Weitere Informationen zum Testen in Device Farm finden Sie unter[Test-Frameworks und integrierte Tests in AWS Device Farm](test-types.md).

**Topics**
+ [Was ist Instrumentierung?](#test-types-android-instrumentation-what-is)
+ [Überlegungen zu Android-Instrumentierungstests](#test-types-android-instrumentation-settings)
+ [Testanalyse im Standardmodus](#test-types-android-standard-mode-test-parse)
+ [Integrieren von Android Instrumentation in Device Farm](test-types-android-instrumentation-integrate.md)

## Was ist Instrumentierung?
<a name="test-types-android-instrumentation-what-is"></a>

Mit der Android-Instrumentierung können Sie Rückrufmethoden in Ihrem Testcode aufrufen. So können Sie den Lebenszyklus einer Komponente schrittweise durchlaufen, so als ob Sie die Komponente debuggen. Weitere Informationen finden Sie unter [Instrumentierte Tests](https://developer.android.com/studio/test/test-in-android-studio#test_types_and_locations) im Abschnitt *Testtypen und -orte* der Dokumentation zu den *Android Developer Tools*.

## Überlegungen zu Android-Instrumentierungstests
<a name="test-types-android-instrumentation-settings"></a>

Beachten Sie bei der Verwendung der Android-Instrumentierung die folgenden Empfehlungen und Hinweise.

**Überprüfen Sie die Kompatibilität mit dem Android-Betriebssystem**  
 Überprüfen Sie in der [Android-Dokumentation](https://developer.android.com/jetpack/androidx/releases/test#orchestrator-1.5.0), ob Instrumentation mit Ihrer Android-Betriebssystemversion kompatibel ist. 

**Wird von der Befehlszeile aus ausgeführt**  
 Um Instrumentierungstests über die Befehlszeile auszuführen, folgen Sie bitte der [Android-Dokumentation.](https://developer.android.com/training/testing/instrumented-tests/androidx-test-libraries/runner#enable-command) 

**System Animations (Systemanimationen)**  
 Gemäß der [Android-Dokumentation für Espresso-Tests](https://developer.android.com/training/testing/espresso) wird empfohlen, die Systemanimationen beim Testen auf echten Geräten auszuschalten. Device Farm deaktiviert automatisch die Einstellungen **Window Animation Scale, Transition Animation Scale** **und **Animator Duration** Scale**, wenn es mit dem Test-Runner [android.support.test.runner.Android JUnit](http://developer.android.com/reference/android/support/test/runner/AndroidJUnitRunner.html) Runner Instrumentation Test Runner ausgeführt wird.

**Test Recorders (Test-Aufzeichnungen)**  
Device Farm unterstützt Frameworks wie Robotium, die über record-and-playback Skripttools verfügen.

## Testanalyse im Standardmodus
<a name="test-types-android-standard-mode-test-parse"></a>

Im Standardmodus einer Ausführung analysiert Device Farm Ihre Testsuite und identifiziert die eindeutigen Testklassen und Methoden, die ausgeführt werden sollen. Dies erfolgt über ein Tool namens [Dex Test Parser](https://github.com/linkedin/dex-test-parser). 

Wenn eine APK-Datei mit Android-Instrumentierung als Eingabe angegeben wird, gibt der Parser die vollständig qualifizierten Methodennamen der Tests zurück, die den Konventionen JUnit 3 und JUnit 4 entsprechen. 

Um dies in einer lokalen Umgebung zu testen: 

1. Laden Sie die [https://github.com/linkedin/dex-test-parser](https://github.com/linkedin/dex-test-parser)Binärdatei herunter.

1. Führen Sie den folgenden Befehl aus, um die Liste der Testmethoden abzurufen, die auf Device Farm ausgeführt werden:

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

# Integrieren von Android Instrumentation in Device Farm
<a name="test-types-android-instrumentation-integrate"></a>

**Anmerkung**  
Verwenden Sie die folgenden Anweisungen, um Android-Instrumentierungstests in AWS Device Farm zu integrieren. Weitere Informationen zur Verwendung von Instrumentierungstests in Device Farm finden Sie unter[Instrumentierung für Android und AWS Device Farm](test-types-android-instrumentation.md). 

## Laden Sie Ihre Android-Instrumentierungstests hoch
<a name="test-types-android-instrumentation-upload"></a>

Verwenden Sie die Device Farm Farm-Konsole, um Ihre Tests hochzuladen.

1. Melden Sie sich bei der Device Farm Farm-Konsole unter [https://console.aws.amazon.com/devicefarm](https://console.aws.amazon.com/devicefarm) an.

1. Wählen Sie im Navigationsbereich Device Farm die Option **Mobile Device Testing** und dann **Projects** aus.

1. Wählen Sie in der Projektliste das Projekt aus, in das Sie Ihre Tests hochladen möchten.
**Tipp**  
Sie können die Suchleiste verwenden, um die Projektliste nach Namen zu filtern.  
Befolgen Sie die Anweisungen unter [Ein Projekt in AWS Device Farm erstellen](how-to-create-project.md), um ein neues Projekt zu erstellen.

1. Wählen Sie **Lauf erstellen aus**.

1. **Wählen Sie unter App auswählen** im Abschnitt **App-Auswahloptionen** die Option **Eigene App hochladen** aus.

1. Navigieren Sie zu der Datei mit Ihrer Android-Anwendung, und wählen Sie diese aus. Es muss sich dabei um eine APK-Datei handeln.

1. **Wählen **Sie unter Test konfigurieren** im Abschnitt Testframework** auswählen die Option **Instrumentation** und dann **Datei auswählen** aus.

1. Navigieren Sie zu der APK-Datei, die Ihre Tests enthält, und wählen Sie diese aus.

1. Folgen Sie den verbleibenden Anweisungen, um Geräte auszuwählen und den Testlauf zu starten.

## (Optional) Machen Sie Screenshots von Android-Instrumentierungstests
<a name="test-types-android-instrumentation-screenshots"></a>

Sie können im Rahmen Ihrer Android-Instrumentierungstests Screenshots erstellen.

Rufen Sie eine der folgenden Methoden auf, um Screenshots zu erstellen:
+ Rufen Sie für Robotium die Methode `takeScreenShot` auf (z. B. `solo.takeScreenShot();`).
+ Rufen Sie für Spoon die Methode `screenshot` auf, z. B.:

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

Während eines Testlaufs ruft Device Farm Screenshots von den folgenden Speicherorten auf den Geräten ab, sofern sie vorhanden sind, und fügt sie dann den Testberichten hinzu:
+ `/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`