À partir du 27 mars 2025, nous vous recommandons d'utiliser android-latest-release au lieu de aosp-main pour créer et contribuer à AOSP. Pour en savoir plus, consultez la section Modifications apportées à AOSP.
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Le mode Test Harness est une fonctionnalité ajoutée dans Android 10 pour les développeurs d'applications tierces qui souhaitent automatiser un appareil ou un parc d'appareils. Cette fonctionnalité permet d'effacer toutes les données utilisateur sur un appareil Android, de conserver les clés ADB et de passer tous les écrans de configuration initiale. Cela permet à l'utilisateur d'exécuter un test d'interface utilisateur immédiatement après le démarrage, sans aucune interaction manuelle.
Personnalisation
Vous pouvez déterminer si un appareil est en mode Atelier de test en vérifiant ActivityManager.isRunningInUserTestHarness(). Limitez les personnalisations au minimum. Par exemple, ne sautez pas les écrans de configuration (sur le clavier ou l'assistant de configuration) qui interrompraient les tests d'interface utilisateur ou nécessiteraient une interaction manuelle.
L'implémentation par défaut du mode Test Harness utilise le même mécanisme de stockage que la protection de la réinitialisation d'usine pour stocker temporairement les clés adb dans une partition persistante. Si une partition persistante avec protection après rétablissement de la configuration d'usine est déjà implémentée sur l'appareil de test, peu ou pas de travail n'est nécessaire pour prendre en charge cette fonctionnalité.
Les OEM qui n'ont pas configuré de partition persistante doivent implémenter PersistentDataBlockManagerInternal avant d'exécuter TestHarnessModeService.
Vérifier l'état du mode Atelier de test
Lorsque le mode Atelier de test est activé, ActivityManager.isRunningInUserTestHarness() renvoie true.
Exécuter le mode Atelier de test
L'activation du mode Test Harness efface toutes les données de l'appareil et le configure pour les tests. Cela signifie que toutes les parties de l'appareil susceptibles d'interférer avec les tests (telles que la synchronisation automatique des comptes, la vérification des packages et les mises à jour automatiques) sont toutes désactivées par défaut, mais l'utilisateur peut les réactiver.
Exécutez la commande adb pour activer le mode Atelier de test:
adb shell cmd testharness enable
Le contenu et les exemples de code de cette page sont soumis aux licences décrites dans la Licence de contenu. Java et OpenJDK sont des marques ou des marques déposées d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/07/27 (UTC).
[[["Facile à comprendre","easyToUnderstand","thumb-up"],["J'ai pu résoudre mon problème","solvedMyProblem","thumb-up"],["Autre","otherUp","thumb-up"]],[["Il n'y a pas l'information dont j'ai besoin","missingTheInformationINeed","thumb-down"],["Trop compliqué/Trop d'étapes","tooComplicatedTooManySteps","thumb-down"],["Obsolète","outOfDate","thumb-down"],["Problème de traduction","translationIssue","thumb-down"],["Mauvais exemple/Erreur de code","samplesCodeIssue","thumb-down"],["Autre","otherDown","thumb-down"]],["Dernière mise à jour le 2025/07/27 (UTC)."],[],[],null,["# Implement Test Harness Mode\n\nTest Harness Mode is a feature added in Android 10 for\nthird-party app developers that wish\nto automate a device or a fleet of devices. The feature provides a method to wipe *all*\nuser data on an Android device, retain ADB keys, and skip all first-time setup screens. This enables\nthe user to run a UI test immediately after startup without any manual interaction.\n| **Note:** Test Harness Mode is different from TradeFed Test Harness. Don't use it when running CTS test.\n\nCustomization\n-------------\n\nYou can determine if a device is in Test Harness Mode by checking\n`ActivityManager.isRunningInUserTestHarness()`. Keep customizations to a minimum;\nlimit to things like skipping setup screens (on the keyboard or setup wizard) that would break\nUI tests or require manual interaction.\n\nImplementation\n--------------\n\nThe default implementation of [`PersistentDataBlockManagerInternal`](https://android.googlesource.com/platform/frameworks/base/+/android16-release/services/core/java/com/android/server/pdb/PersistentDataBlockManagerInternal.java)\nis in [`PersistentDataBlockService`](https://android.googlesource.com/platform/frameworks/base/+/android16-release/services/core/java/com/android/server/pdb/PersistentDataBlockService.java).\nTest Harness Mode is implemented in [`TestHarnessModeService`](https://android.googlesource.com/platform/frameworks/base/+/android16-release/services/core/java/com/android/server/testharness/TestHarnessModeService.java).\n\nThe default implementation of Test Harness Mode uses the same storage mechanism as\nfactory reset protection to store the adb keys temporarily in a persistent partition. If a\npersistent partition with factory reset protection is already implemented on the test device,\nlittle to no work is necessary to support the feature.\n\nOEMs that don't have a persistent partition set up need to implement\n`PersistentDataBlockManagerInternal` before running\n`TestHarnessModeService`.\n\nCheck the status of Test Harness Mode\n-------------------------------------\n\nWhen Test Harness Mode is enabled,\n`ActivityManager.isRunningInUserTestHarness()` returns `true`.\n\nRun Test Harness Mode\n---------------------\n\nEnabling Test Harness Mode wipes all data from the device and sets up the device for\ntesting. This means that all parts of the device that could interfere with testing (such as\nauto-syncing accounts, package verification, and automatic updates) are all disabled by default\nbut the user can reenable them.\n\nRun the `adb` command to enable Test Harness Mode: \n\n```\nadb shell cmd testharness enable\n```"]]