Test de l'approvisionnement de l'appareil,Test de l'approvisionnement de l'appareil

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Pour les appareils exécutant Android 6 ou Android 7, vous pouvez tester le provisionnement des appareils à l'aide d'Android Enterprise (AE) Test Harness, qui est une suite de tests permettant de valider la compatibilité d'entreprise des appareils Android. Le harnais comprend des applications de support, des cas de test, des fichiers de configuration et un exécuteur de test ( afw-test-tradefed ) basé sur cts-tradefed . Avant de configurer le faisceau de test AE, assurez-vous d'avoir terminé l'approvisionnement pour l'administration de l'appareil .

Pour les appareils exécutant Android 8 ou une version ultérieure, l'utilisation du harnais de test AE est obsolète .

Mise en place d'un environnement de développement

L'environnement de développement du harnais de test AE est similaire au système d'exploitation Android. Suivez les étapes de la section Configuration requise pour configurer une machine de développement.

Téléchargement du code source

Téléchargez le code source du faisceau de test AE en suivant les étapes de Téléchargement de la source . Le code source AE Test Harness se trouve dans le projet ./test/AfwTestHarness . Le nom de la branche détermine la version d'AE Test Harness à télécharger (chaque plate-forme Android a une version distincte d'AE Test Harness). Par exemple, le nom de branche pour Android 7.0 Nougat est afw-test-harness-nougat-dev . Pour initialiser le référentiel et télécharger le code source de cette branche, utilisez les commandes suivantes :

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

Pour extraire le code source d'une version différente, spécifiez la branche avec la balise correspondante. Les succursales disponibles comprennent :

Nom de la filiale Plate-forme Android prise en charge
afw-test-harnais-nougat-dev Android 7.0
afw-test-harnais-2.1 Android 7.0
afw-test-harness-guimauve-dev Android 6.0
afw-test-harnais-1.5 Android 6.0

D'autres projets de dépendance requis pour construire le harnais sont également téléchargés avec le code source.

Affichage dans Android Studio

Pour afficher et modifier le code source dans Android Studio :

  1. Exécutez les commandes suivantes
    make idegen
    development/tools/idegen/idegen.sh
    
  2. Dans Android Studio, ouvrez android.ipr .

Le code source AE Test Harness se trouve dans test/AfwTestHarness .

Configuration du faisceau de test AE

Vous pouvez personnaliser le harnais en configurant test/AfwTestHarness/afw-test.props . Pour exécuter le harnais avec succès, procédez comme suit :

  1. Configurez le réseau Wi-Fi dans afw-test.props avec les propriétés suivantes :
    wifi_ssid
    wifi_password (optional)
    wifi_security_type (optional, available options are: NONE, WEP or WPA)
    
  2. Obtenez au moins un compte d'un domaine lié à Test DPC en tant que contrôleur de stratégie d'appareil. Spécifiez les détails dans afw-test.props avec les propriétés suivantes :
    work_account_username
    work_account_password
    

    Le harnais de test AE utilise Test DPC pour tester les flux de provisionnement, de sorte que les comptes doivent se lier à Test DPC pour exécuter le harnais de test.

Construire le faisceau de test AE

Initialisez la configuration de build à l'aide de :

source build/envsetup.sh
lunch

Sélectionnez un type d'appareil et appuyez sur Entrée .

Construisez le harnais en utilisant :

make afw-test-harness -j32

Cela crée un répertoire ( out/host/linux-x86/afw-th/android-cts ) avec tous les binaires, fichiers de configuration et outils nécessaires pour exécuter le harnais de test. Ce répertoire est également compressé dans un fichier ( out/host/linux-x86/afw-th/android-afw-test-harness.zip ) pour distribution.

Exécution du faisceau de test AE

Utilisez les étapes suivantes pour exécuter le faisceau de test AE :

  1. Dans votre environnement de construction, lancez le lanceur de test en utilisant :
    afw-test-tradefed
    
    Cela démarre la console cts-tf , charge les plans de test, les cas de test et afw-test.props depuis out/host/linux-x86/afw-th/android-cts .
  2. À partir du dossier décompressé de android-afw-test-harness.zip , lancez le lanceur de test en utilisant :
    cts-tf> ./android‐cts/tools/afw-test‐tradefed
    
    Cela charge les plans de test, les cas de test et afw-test.props à partir du répertoire android-cts . Assurez-vous ./android‐cts/repository/testcases/afw-test.props dispose du compte professionnel et de la configuration Wi-Fi.
  3. Exécutez un plan de test. Chaque plan de test est un fichier XML qui contient un ensemble de packages de test du répertoire de packages de test AfwTestHarness/tests . Les régimes communs comprennent :
    • afw-userdebug-build . Contient tous les packages de test qui nécessitent une version userdebug.
    • afw-user-build . S'exécute sur une version utilisateur mais nécessite que l'appareil de test soit configuré correctement, y compris l'achèvement de la configuration initiale et l'activation du débogage USB.

    Pour exécuter le plan de test afw-userdebug-build , utilisez :
    cts-tf> run cts --plan afw-userdebug-build
    
    Pour voir tous les plans de test, utilisez la commande list plans . Pour afficher les définitions de plan, reportez-vous à out/host/linux-x86/afw-th/android-cts/repository/plans .
  4. Exécutez un package de test. Pour exécuter un seul package de test, utilisez
    cts-tf> run cts --package com.android.afwtest.NfcProvisioning
    
    Pour afficher tous les packages, utilisez la commande list packages . Pour plus d'options, utilisez la commande run cts --help .

Débogage du faisceau de test AE

Exécutez toutes les commandes dans la console afw-test-tradefed ( cts-tf ), que vous pouvez lancer en exécutant afw-test-tradefed .

  • Affichez plus d'informations avec les drapeaux -l INFO ou -l DEBUG . Exemple :
    cts-tf> run cts ‐‐plan afw-userdebug-build -l DEBUG
    
  • Exécutez le harnais de test sur un périphérique spécifique avec l'indicateur -s . Exemple :
    cts-tf> run cts ‐‐plan afw-userdebug-build -l DEBUG -s device_sn
    
  • Exécutez le harnais de test sur tous les appareils connectés avec l'indicateur --all-devices . Exemple :
    cts-tf> run cts ‐‐plan afw-userdebug-build -l DEBUG --all-devices
    
  • Affichez les exécutions en cours à l'aide d' list invocations ou de li .
  • Affichez le résumé des exécutions de tests passées à l'aide list results ou de lr .
  • Afficher d'autres commandes de list à l' help list d'aide .
  • Surveillez logcat en temps réel avec un filtre en utilisant afwtest , puis ouvrez un autre terminal et démarrez logcat en utilisant : adb logcat | grep afwtest . Après la fin d'un test :
    • Afficher les journaux de out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time . Le logcat complet de l'appareil et le journal de l'hôte (journaux afw-test-tradefed ) sont enregistrés dans des fichiers zip séparés.
    • Trouvez des informations pertinentes en recherchant afwtest dans le logcat de l'appareil. Exemple : zless out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time /device_logcat_ random-number .zip | grep afwtest
    • Pour afficher le journal complet d'afw-test-tradefed, utilisez : zless out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time /host_log_ random-number .zip
  • Un package de test automatise un flux de provisionnement d'entreprise en parcourant les pages de l'interface utilisateur et en enregistrant un journal de navigation dans le fichier logcat de l'appareil pour chaque page. Exemple : afwtest.AutomationDriver: Navigating:com.android.afwtest.uiautomator.pages.gms.AddAccountPage
    Les pages d'interface utilisateur pour le package de test com.android.afwtest.NfcProvisioning incluent :
    • com.android.afwtest.uiautomator.pages.managedprovisioning.NfcProvisioningPage
    • com.android.afwtest.uiautomator.pages.PageSkipper
    • com.android.afwtest.uiautomator.pages.LandingPage
  • Si un test a échoué pendant le processus de provisionnement, logcat contient une erreur similaire à :
    TestRunner: java.lang.RuntimeException: Failed to load page: com.android.afwtest.uiautomator.pages.packageinstaller.DeviceAccessPage
    
    Ceci est généralement causé par des erreurs dans une page d'interface utilisateur précédente ou la page qui n'a pas pu être chargée, essayez donc de trouver d'autres messages d'erreur dans logcat avant cette erreur , puis essayez de le reproduire manuellement en suivant le flux de provisionnement.
  • Si un package de test échoue :
    • Une capture d'écran est enregistrée dans out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time en utilisant la syntaxe suivante : screenshot-test_ test_class_full_name _ test_case_name - random_number .png . Ces informations sont également consignées dans le journal de l'hôte.
    • Un rapport de bogue est enregistré dans out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time sous : bug- test_class_full_name _ test_case_name - random_number .zip .
  • Après l'exécution de tous les packages de test, une capture d'écran est prise et enregistrée dans out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time sous : screenshot- random_number .png . Ces informations sont également consignées dans le journal de l'hôte.

FAQ

Puis-je exécuter le plan de test afw-userdebug-build sur un appareil flashé avec la version utilisateur ?

Non. Les packages de test dans l'usine de plan afw-userdebug-build réinitialisent l'appareil de test avant d'exécuter le flux de test réel et nécessitent l'activation automatique du débogage adb . Avec une version utilisateur, le débogage adb ne peut être activé qu'en modifiant manuellement le paramètre dans les options du développeur.

Puis-je exécuter le plan de test afw-user-build sur un appareil flashé avec userdebug build ?

Oui, mais nous vous recommandons d'exécuter ce plan de test sur une version utilisateur.

Parfois, mon test échoue car le chargement de l'interface utilisateur prend trop de temps. Comment puis-je réparer cela?

Configurez le paramètre timeout_size dans ./android-cts/repository/testcases/afw-test.props . Les paramètres valides sont : S, M, L, XL, XXL.

Le package de test com.android.afwtest.NfcProvisioning (ou SuwDoProvisioning ) échoue sur mon appareil car la configuration initiale installée affiche une interface utilisateur personnalisée (telle que les termes et conditions) une fois le provisionnement terminé. Comment puis-je ignorer cette interface utilisateur personnalisée ?

Il devrait y avoir une interface utilisateur minimale après le processus de provisionnement. Le harnais de test ignorera automatiquement cette interface utilisateur si l'interface utilisateur comporte un bouton contenant un texte significatif ou une description de contenu contenant l'un des mots suivants : Ignorer, Terminer, Terminé, Accepter, Accepter, Suivant, Continuer ou Continuer. Vous pouvez également définir un bouton dans afw-test.props pour configurer le harnais de test afin d'ignorer votre interface utilisateur. Exemple:

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

Pour définir plusieurs widgets, séparez-les à l'aide de virgules.

Le package de test com.android.afwtest.NfcProvisioning (ou SuwDoProvisioning ) a échoué et le dernier écran de l'interface utilisateur est "Vérifiez votre compte". Pourquoi cela se produit-il et comment puis-je récupérer l'appareil de test ?

Cet échec se produit car le package de test précédent n'a pas réussi à effacer la protection de réinitialisation d'usine à la fin du test. Vous devez saisir manuellement le compte pour déverrouiller l'appareil.

Mon appareil a besoin de plus de temps pour réinitialiser les paramètres d'usine. Puis-je prolonger le délai de réinitialisation d'usine ?

Oui. Configurez le paramètre factory_reset_timeout_min dans afw-test.props . Les paramètres valides sont en minutes ; vous pouvez définir n'importe quel nombre de minutes qui fonctionne avec votre appareil.

,

Pour les appareils exécutant Android 6 ou Android 7, vous pouvez tester le provisionnement des appareils à l'aide d'Android Enterprise (AE) Test Harness, qui est une suite de tests permettant de valider la compatibilité d'entreprise des appareils Android. Le harnais comprend des applications de support, des cas de test, des fichiers de configuration et un exécuteur de test ( afw-test-tradefed ) basé sur cts-tradefed . Avant de configurer le faisceau de test AE, assurez-vous d'avoir terminé l'approvisionnement pour l'administration de l'appareil .

Pour les appareils exécutant Android 8 ou une version ultérieure, l'utilisation du harnais de test AE est obsolète .

Mise en place d'un environnement de développement

L'environnement de développement du harnais de test AE est similaire au système d'exploitation Android. Suivez les étapes de la section Configuration requise pour configurer une machine de développement.

Téléchargement du code source

Téléchargez le code source du faisceau de test AE en suivant les étapes de Téléchargement de la source . Le code source AE Test Harness se trouve dans le projet ./test/AfwTestHarness . Le nom de la branche détermine la version d'AE Test Harness à télécharger (chaque plate-forme Android a une version distincte d'AE Test Harness). Par exemple, le nom de branche pour Android 7.0 Nougat est afw-test-harness-nougat-dev . Pour initialiser le référentiel et télécharger le code source de cette branche, utilisez les commandes suivantes :

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

Pour extraire le code source d'une version différente, spécifiez la branche avec la balise correspondante. Les succursales disponibles comprennent :

Nom de la filiale Plate-forme Android prise en charge
afw-test-harnais-nougat-dev Android 7.0
afw-test-harnais-2.1 Android 7.0
afw-test-harness-guimauve-dev Android 6.0
afw-test-harnais-1.5 Android 6.0

D'autres projets de dépendance requis pour construire le harnais sont également téléchargés avec le code source.

Affichage dans Android Studio

Pour afficher et modifier le code source dans Android Studio :

  1. Exécutez les commandes suivantes
    make idegen
    development/tools/idegen/idegen.sh
    
  2. Dans Android Studio, ouvrez android.ipr .

Le code source AE Test Harness se trouve dans test/AfwTestHarness .

Configuration du faisceau de test AE

Vous pouvez personnaliser le harnais en configurant test/AfwTestHarness/afw-test.props . Pour exécuter le harnais avec succès, procédez comme suit :

  1. Configurez le réseau Wi-Fi dans afw-test.props avec les propriétés suivantes :
    wifi_ssid
    wifi_password (optional)
    wifi_security_type (optional, available options are: NONE, WEP or WPA)
    
  2. Obtenez au moins un compte d'un domaine lié à Test DPC en tant que contrôleur de stratégie d'appareil. Spécifiez les détails dans afw-test.props avec les propriétés suivantes :
    work_account_username
    work_account_password
    

    Le harnais de test AE utilise Test DPC pour tester les flux de provisionnement, de sorte que les comptes doivent se lier à Test DPC pour exécuter le harnais de test.

Construire le faisceau de test AE

Initialisez la configuration de build à l'aide de :

source build/envsetup.sh
lunch

Sélectionnez un type d'appareil et appuyez sur Entrée .

Construisez le harnais en utilisant :

make afw-test-harness -j32

Cela crée un répertoire ( out/host/linux-x86/afw-th/android-cts ) avec tous les binaires, fichiers de configuration et outils nécessaires pour exécuter le harnais de test. Ce répertoire est également compressé dans un fichier ( out/host/linux-x86/afw-th/android-afw-test-harness.zip ) pour distribution.

Exécution du faisceau de test AE

Utilisez les étapes suivantes pour exécuter le faisceau de test AE :

  1. Dans votre environnement de construction, lancez le lanceur de test en utilisant :
    afw-test-tradefed
    
    Cela démarre la console cts-tf , charge les plans de test, les cas de test et afw-test.props depuis out/host/linux-x86/afw-th/android-cts .
  2. À partir du dossier décompressé de android-afw-test-harness.zip , lancez le lanceur de test en utilisant :
    cts-tf> ./android‐cts/tools/afw-test‐tradefed
    
    Cela charge les plans de test, les cas de test et afw-test.props à partir du répertoire android-cts . Assurez-vous ./android‐cts/repository/testcases/afw-test.props dispose du compte professionnel et de la configuration Wi-Fi.
  3. Exécutez un plan de test. Chaque plan de test est un fichier XML qui contient un ensemble de packages de test du répertoire de packages de test AfwTestHarness/tests . Les régimes communs comprennent :
    • afw-userdebug-build . Contient tous les packages de test qui nécessitent une version userdebug.
    • afw-user-build . S'exécute sur une version utilisateur mais nécessite que l'appareil de test soit configuré correctement, y compris l'achèvement de la configuration initiale et l'activation du débogage USB.

    Pour exécuter le plan de test afw-userdebug-build , utilisez :
    cts-tf> run cts --plan afw-userdebug-build
    
    Pour voir tous les plans de test, utilisez la commande list plans . Pour afficher les définitions de plan, reportez-vous à out/host/linux-x86/afw-th/android-cts/repository/plans .
  4. Exécutez un package de test. Pour exécuter un seul package de test, utilisez
    cts-tf> run cts --package com.android.afwtest.NfcProvisioning
    
    Pour afficher tous les packages, utilisez la commande list packages . Pour plus d'options, utilisez la commande run cts --help .

Débogage du faisceau de test AE

Exécutez toutes les commandes dans la console afw-test-tradefed ( cts-tf ), que vous pouvez lancer en exécutant afw-test-tradefed .

  • Affichez plus d'informations avec les drapeaux -l INFO ou -l DEBUG . Exemple :
    cts-tf> run cts ‐‐plan afw-userdebug-build -l DEBUG
    
  • Exécutez le harnais de test sur un périphérique spécifique avec l'indicateur -s . Exemple :
    cts-tf> run cts ‐‐plan afw-userdebug-build -l DEBUG -s device_sn
    
  • Exécutez le harnais de test sur tous les appareils connectés avec l'indicateur --all-devices . Exemple :
    cts-tf> run cts ‐‐plan afw-userdebug-build -l DEBUG --all-devices
    
  • Affichez les exécutions en cours à l'aide d' list invocations ou de li .
  • Affichez le résumé des exécutions de tests passées à l'aide list results ou de lr .
  • Afficher d'autres commandes de list à l' help list d'aide .
  • Surveillez logcat en temps réel avec un filtre en utilisant afwtest , puis ouvrez un autre terminal et démarrez logcat en utilisant : adb logcat | grep afwtest . Après la fin d'un test :
    • Afficher les journaux de out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time . Le logcat complet de l'appareil et le journal de l'hôte (journaux afw-test-tradefed ) sont enregistrés dans des fichiers zip séparés.
    • Trouvez des informations pertinentes en recherchant afwtest dans le logcat de l'appareil. Exemple : zless out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time /device_logcat_ random-number .zip | grep afwtest
    • Pour afficher le journal complet d'afw-test-tradefed, utilisez : zless out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time /host_log_ random-number .zip
  • Un package de test automatise un flux de provisionnement d'entreprise en parcourant les pages de l'interface utilisateur et en enregistrant un journal de navigation dans le fichier logcat de l'appareil pour chaque page. Exemple : afwtest.AutomationDriver: Navigating:com.android.afwtest.uiautomator.pages.gms.AddAccountPage
    Les pages d'interface utilisateur pour le package de test com.android.afwtest.NfcProvisioning incluent :
    • com.android.afwtest.uiautomator.pages.managedprovisioning.NfcProvisioningPage
    • com.android.afwtest.uiautomator.pages.PageSkipper
    • com.android.afwtest.uiautomator.pages.LandingPage
  • Si un test a échoué pendant le processus de provisionnement, logcat contient une erreur similaire à :
    TestRunner: java.lang.RuntimeException: Failed to load page: com.android.afwtest.uiautomator.pages.packageinstaller.DeviceAccessPage
    
    Ceci est généralement causé par des erreurs dans une page d'interface utilisateur précédente ou la page qui n'a pas pu être chargée, essayez donc de trouver d'autres messages d'erreur dans logcat avant cette erreur , puis essayez de le reproduire manuellement en suivant le flux de provisionnement.
  • Si un package de test échoue :
    • Une capture d'écran est enregistrée dans out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time en utilisant la syntaxe suivante : screenshot-test_ test_class_full_name _ test_case_name - random_number .png . Ces informations sont également consignées dans le journal de l'hôte.
    • Un rapport de bogue est enregistré dans out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time sous : bug- test_class_full_name _ test_case_name - random_number .zip .
  • Après l'exécution de tous les packages de test, une capture d'écran est prise et enregistrée dans out/host/linux-x86/afw-th/android-cts/repository/logs/ start-time sous : screenshot- random_number .png . Ces informations sont également consignées dans le journal de l'hôte.

FAQ

Puis-je exécuter le plan de test afw-userdebug-build sur un appareil flashé avec la version utilisateur ?

Non. Les packages de test dans l'usine de plan afw-userdebug-build réinitialisent l'appareil de test avant d'exécuter le flux de test réel et nécessitent l'activation automatique du débogage adb . Avec une version utilisateur, le débogage adb ne peut être activé qu'en modifiant manuellement le paramètre dans les options du développeur.

Puis-je exécuter le plan de test afw-user-build sur un appareil flashé avec userdebug build ?

Oui, mais nous vous recommandons d'exécuter ce plan de test sur une version utilisateur.

Parfois, mon test échoue car le chargement de l'interface utilisateur prend trop de temps. Comment puis-je réparer cela?

Configurez le paramètre timeout_size dans ./android-cts/repository/testcases/afw-test.props . Les paramètres valides sont : S, M, L, XL, XXL.

Le package de test com.android.afwtest.NfcProvisioning (ou SuwDoProvisioning ) échoue sur mon appareil car la configuration initiale installée affiche une interface utilisateur personnalisée (telle que les termes et conditions) une fois le provisionnement terminé. Comment puis-je ignorer cette interface utilisateur personnalisée ?

Il devrait y avoir une interface utilisateur minimale après le processus de provisionnement. Le harnais de test ignorera automatiquement cette interface utilisateur si l'interface utilisateur comporte un bouton contenant un texte significatif ou une description de contenu contenant l'un des mots suivants : Ignorer, Terminer, Terminé, Accepter, Accepter, Suivant, Continuer ou Continuer. Vous pouvez également définir un bouton dans afw-test.props pour configurer le harnais de test afin d'ignorer votre interface utilisateur. Exemple:

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

Pour définir plusieurs widgets, séparez-les à l'aide de virgules.

Le package de test com.android.afwtest.NfcProvisioning (ou SuwDoProvisioning ) a échoué et le dernier écran de l'interface utilisateur est "Vérifiez votre compte". Pourquoi cela se produit-il et comment puis-je récupérer l'appareil de test ?

Cet échec se produit car le package de test précédent n'a pas réussi à effacer la protection de réinitialisation d'usine à la fin du test. Vous devez saisir manuellement le compte pour déverrouiller l'appareil.

Mon appareil a besoin de plus de temps pour réinitialiser les paramètres d'usine. Puis-je prolonger le délai de réinitialisation d'usine ?

Oui. Configurez le paramètre factory_reset_timeout_min dans afw-test.props . Les paramètres valides sont en minutes ; vous pouvez définir n'importe quel nombre de minutes qui fonctionne avec votre appareil.