Testen der Gerätebereitstellung

Bei Geräten mit Android 6 oder Android 7 können Sie die Gerätebereitstellung mit dem Android Enterprise (AE) Test Harness testen, einer Testsuite zur Überprüfung der Unternehmenskompatibilität von Android-Geräten. Das Gurtzeug umfasst Support - Anwendungen, Testfälle, Konfigurationsdateien und einen Testläufer ( afw-test-tradefed ) gebaut auf cts-tradefed . Bevor Sie die AE - Test Harness einrichten, sollten Sie abzuschließen Provisioning für Geräteverwaltung .

Für Geräte mit Android 8 oder höher, die Verwendung des AE - Test Harness veraltet laufen.

Einrichten einer Entwicklungsumgebung

Die Entwicklungsumgebung für das AE Test Harness ähnelt dem Android OS. Folgen Sie den Anweisungen Anforderungen einer Entwicklungsmaschine einzurichten.

Quellcode herunterladen

Laden Sie die AE - Test Harness Quellcode mit den Schritten in der Quelle Herunterladen . Die AE - Test Harness Quellcode ist im ./test/AfwTestHarness Projekt. Der Zweigname bestimmt die herunterzuladende Version von AE Test Harness (jede Android-Plattform verfügt über eine separate Version von AE Test Harness). Zum Beispiel ist der Zweig Name für Android 7.0 Nougat afw-test-harness-nougat-dev . Verwenden Sie die folgenden Befehle, um das Repository zu initialisieren und den Quellcode für diesen Branch herunterzuladen:

mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
repo init -u https://android.googlesource.com/platform/manifest -b afw-test-harness-nougat-dev
repo sync -j24

Um den Quellcode für eine andere Version auszuchecken, geben Sie den Zweig mit dem entsprechenden Tag an. Zu den verfügbaren Filialen gehören:

Zweigname Unterstützte Android-Plattform
afw-test-harness-nougat-dev Android 7.0
afw-test-kabelbaum-2.1 Android 7.0
afw-test-harness-marshmallow-dev Android 6.0
afw-test-kabelbaum-1.5 Android 6.0

Andere Abhängigkeitsprojekte, die zum Erstellen des Kabelbaums erforderlich sind, werden ebenfalls mit dem Quellcode heruntergeladen.

Anzeigen in Android Studio

So zeigen Sie den Quellcode in Android Studio an und bearbeiten ihn:

  1. Führen Sie die folgenden Befehle
    make idegen
    development/tools/idegen/idegen.sh
    
  2. In Android Studio, öffnen android.ipr .

Die AE - Test Harness Quellcode ist in test/AfwTestHarness .

Konfigurieren des AE-Testkabelbaums

Sie können durch die Konfiguration des Gurtzeug anpassen test/AfwTestHarness/afw-test.props . Führen Sie die folgenden Schritte aus, um das Gurtzeug erfolgreich auszuführen:

  1. Konfigurieren Sie das Wi-Fi - Netzwerk in afw-test.props mit den folgenden Eigenschaften:
    wifi_ssid
    wifi_password (optional)
    wifi_security_type (optional, available options are: NONE, WEP or WPA)
    
  2. Rufen Sie mindestens ein Konto von einer Domäne ab, die an Test DPC als Geräterichtliniencontroller gebunden ist. Geben Sie die Details in afw-test.props mit den folgenden Eigenschaften:
    work_account_username
    work_account_password
    

    Die AE - Test Harness verwendet Test - DPC zu Testbereitstellungs fließt, so Konten - Test DPC binden müssen die Testumgebung auszuführen.

Aufbau des AE-Testkabelbaums

Initialisieren Sie die Build-Konfiguration mit:

source build/envsetup.sh
lunch

Wählen Sie einen Gerätetyp und die Eingabetaste drücken.

Bauen Sie den Gurt mit:

make afw-test-harness -j32

Dies erzeugt ein Verzeichnis ( out/host/linux-x86/afw-th/android-cts ) mit allen notwendigen Binärdateien, Konfigurationsdateien und Werkzeugen , um die Testumgebung auszuführen. Dieses Verzeichnis wird auch in eine Datei komprimiert ( out/host/linux-x86/afw-th/android-afw-test-harness.zip ) für die Verteilung.

Ausführen des AE-Testkabelbaums

Führen Sie die folgenden Schritte aus, um den AE-Testkabelbaum auszuführen:

  1. In Ihrer Build - Umgebung, starten Sie den Test Runner mit:
    afw-test-tradefed
    
    Dadurch wird die cts-tf - Konsole Lasten Testpläne, Testfälle und afw-test.props von out/host/linux-x86/afw-th/android-cts .
  2. Aus dem entpackten Ordner von android-afw-test-harness.zip , starten Sie den Test Runner mit:
    cts-tf> ./android‐cts/tools/afw-test‐tradefed
    
    Diese Lasten Testpläne, Testfälle und afw-test.props von android-cts - Verzeichnis. Stellen Sie sicher , ./android‐cts/repository/testcases/afw-test.props das Konto bei der Arbeit und Wi-Fi - Konfiguration aufweist.
  3. Führen Sie einen Testplan durch. Jeder Testplan ist eine XML - Datei , die eine Reihe von Test - Paketen von der enthält AfwTestHarness/tests Testpaketverzeichnis. Zu den üblichen Plänen gehören:
    • afw-userdebug-build . Enthält alle Testpakete, die einen Userdebug-Build erfordern.
    • afw-user-build . Läuft auf einem Benutzer-Build, erfordert jedoch eine ordnungsgemäße Einrichtung des Testgeräts, einschließlich des Abschlusses der Ersteinrichtung und der Aktivierung des USB-Debugging.

    Um den Testplan ausführen afw-userdebug-build verwenden:
    cts-tf> run cts --plan afw-userdebug-build
    
    alle Testpläne zu sehen, verwenden Sie die list plans . Um Ansicht Plan Definitionen finden Sie out/host/linux-x86/afw-th/android-cts/repository/plans .
  4. Führen Sie ein Testpaket aus. Um ein einzelnes Testpaket ausführen, verwenden
    cts-tf> run cts --package com.android.afwtest.NfcProvisioning
    
    Um alle Pakete anzuzeigen, verwenden Sie die list packages . Für weitere Optionen verwenden Sie den Befehl run cts --help .

Debuggen des AE-Testkabelbaums

Führen Sie alle Befehle in der AFW-Test-tradefed Konsole ( cts-tf ), die Sie , indem Sie starten können afw-test-tradefed .

  • Mehr Informationen mit dem -l INFO oder -l DEBUG Flags. Beispiel:
    cts-tf> run cts ‐‐plan afw-userdebug-build -l DEBUG
    
  • Führen Sie den Test - Harnisch auf einem bestimmtes Gerät mit der -s Flagge. Beispiel:
    cts-tf> run cts ‐‐plan afw-userdebug-build -l DEBUG -s device_sn
    
  • Führen Sie Test - Harnisch auf alle angeschlossenen Geräte mit dem --all-devices Flagge. Beispiel:
    cts-tf> run cts ‐‐plan afw-userdebug-build -l DEBUG --all-devices
    
  • Zeige laufende Ausführungen mit list invocations oder li .
  • Ansicht Zusammenfassung der letzten Testausführungen mit list results oder lr .
  • Andere list Befehle help list .
  • Überwachung in Echtzeit logcat mit Filter mit afwtest , dann einen anderen Terminal öffnen und startet logcat mit: adb logcat | grep afwtest . Nach Abschluss eines Tests:
    • Logbücher in out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time . Das vollständige Gerät logcat und Host - Protokoll ( afw-test-tradefed Protokolle) in separaten ZIP - Dateien gespeichert.
    • Suche nach relevanten Informationen durch das Gerät logcat für afwtest suchen. Beispiel: zless out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time /device_logcat_ random-number .zip | grep afwtest
    • Um die vollständige AFW-Test-tradefed Protokoll verwenden: zless out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time /host_log_ random-number .zip
  • Ein Testpaket automatisiert einen Enterprise-Bereitstellungsablauf, indem es Benutzeroberflächenseiten durchläuft und für jede Seite ein Navigationsprotokoll in der Geräte-Logcat-Datei aufzeichnet. Beispiel: afwtest.AutomationDriver: Navigating:com.android.afwtest.uiautomator.pages.gms.AddAccountPage
    UI - Seiten für Testpaket com.android.afwtest.NfcProvisioning umfassen:
    • com.android.afwtest.uiautomator.pages.managedprovisioning.NfcProvisioningPage
    • com.android.afwtest.uiautomator.pages.PageSkipper
    • com.android.afwtest.uiautomator.pages.LandingPage
  • Wenn ein Test während der Bereitstellungsprozess fehlgeschlagen ist , logcat ein Fehler ähnlich enthält:
    TestRunner: java.lang.RuntimeException: Failed to load page: com.android.afwtest.uiautomator.pages.packageinstaller.DeviceAccessPage
    
    Diese Regel durch Fehler in einer früheren UI - Seite oder der Seite , die nicht geladen werden verursacht wird, versuchen so zu anderen Fehlermeldungen in logcat vor diesem Fehler zu finden , und versuchen Sie dann, es gemäß dem Bereitstellungsablauf manuell zu reproduzieren.
  • Wenn ein Testpaket fehlschlägt:
    • Ein Screenshot wird gespeichert out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time mit der folgenden Syntax: screenshot-test_ test_class_full_name _ test_case_name - random_number .png . Diese Informationen werden auch im Host-Log protokolliert.
    • Ein Fehlerbericht wird gespeichert out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time als: bug- test_class_full_name _ test_case_name - random_number .zip .
  • Nachdem alle Testpakete ausführen, wird ein Screenshot gemacht und gespeichert out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time als: screenshot- random_number .png . Diese Informationen werden auch im Host-Log protokolliert.

FAQ

Kann ich Testplan ausführen afw-userdebug-build auf einem Gerät mit Benutzern Build geflasht?

Nr Testpakete in dem afw-userdebug-build Plan Werksreset die Testvorrichtung vor dem eigentlichen Testablauf ausgeführt und erfordern adb Debug - Auto-fähig zu sein. Mit einem Benutzer zu bauen, adb kann das Debuggen nur manuell aktiviert werden , indem die Einstellung in Entwickleroptionen zu ändern.

Kann ich Testplan ausführen afw-user-build auf einem Gerät mit Userdebug Build geflasht?

Ja, aber wir empfehlen, diesen Testplan auf einem Benutzer-Build auszuführen.

Manchmal schlägt mein Test fehl, weil das Laden der Benutzeroberfläche zu lange dauert. Wie kann ich das beheben?

Konfigurieren Sie die timeout_size Einstellung in ./android-cts/repository/testcases/afw-test.props . Gültige Einstellungen sind: S, M, L, XL, XXL.

Das Testpaket com.android.afwtest.NfcProvisioning (oder SuwDoProvisioning ) nicht auf meinem Gerät , da die installierten Ersteinrichtung zeigt maßgeschneiderte UI (wie Zeitbedingungen) nach der Bereitstellung abgeschlossen ist. Wie kann ich diese benutzerdefinierte Benutzeroberfläche überspringen?

Nach dem Bereitstellungsprozess sollte nur eine minimale Benutzeroberfläche vorhanden sein. Die Testumgebung überspringt diese Benutzeroberfläche automatisch, wenn die Benutzeroberfläche eine Schaltfläche mit aussagekräftigem Text oder einer Inhaltsbeschreibung enthält, die eines der folgenden Wörter enthält: Überspringen, Fertig stellen, Fertig, Akzeptieren, Zustimmen, Weiter, Weiter oder Fortfahren. Alternativ können Sie auch eine Schaltfläche in definieren afw-test.props die Testumgebung konfigurieren Ihre UI zu überspringen. Beispiel:

oem_widgets=your_btn
your_btn.text=your_customized_text
your_btn.package=your_package
your_btn.action=click

Um mehrere Widgets zu definieren, trennen Sie sie durch Kommas.

Das Testpaket com.android.afwtest.NfcProvisioning (oder SuwDoProvisioning ) schlug fehl und der letzten UI - Bildschirm ist „Ihr Konto prüfen.“ Warum passiert das und wie kann ich das Testgerät wiederherstellen?

Dieser Fehler tritt auf, weil das vorherige Testpaket den Werksreset-Schutz am Ende des Tests nicht aufheben konnte. Sie müssen das Konto manuell eingeben, um das Gerät zu entsperren.

Mein Gerät benötigt mehr Zeit zum Zurücksetzen auf die Werkseinstellungen. Kann ich das Timeout zum Zurücksetzen auf die Werkseinstellungen verlängern?

Jawohl. Konfigurieren Sie die factory_reset_timeout_min Einstellung in afw-test.props . Gültige Einstellungen sind in Minuten angegeben; Sie können eine beliebige Anzahl von Minuten einstellen, die mit Ihrem Gerät funktioniert.