Exécuter des tests CTS

Trade Federation est un framework de test continu permettant d'exécuter des tests sur des appareils Android. Pour exécuter la suite de tests de compatibilité (CTS), commencez par lire la présentation de la Trade Federation pour en savoir plus sur le framework de test Tradefed.

Pour exécuter un plan de test:

  1. Configurez les appareils testés conformément à la configuration des appareils Android.
  2. Assurez-vous d'avoir installé les versions récentes d'Android Debug Bridge (adb) et d'Android Asset Packaging Tool (AAPT), et d'avoir ajouté l'emplacement de ces outils au chemin d'accès système de votre ordinateur. Pour en savoir plus sur l'installation de ces outils, consultez la section Configurer CTS: ADB et AAPT.
  3. Téléchargez les builds CTS publiés sur votre machine hôte Linux, puis décompressez le build à l'emplacement de l'hôte.
  4. Connectez au moins un appareil. Pour préparer le DUT :
    • Appuyez sur le bouton Accueil pour afficher l'écran d'accueil de l'appareil.
    • N'utilisez pas l'appareil testé pour d'autres tâches.
    • Maintenez l'appareil sous test dans une position fixe pour éviter de déclencher l'activité des capteurs.
    • Pointez la caméra de l'appareil vers un objet sur lequel vous pouvez faire la mise au point.
    • N'appuyez sur aucune touche de l'appareil pendant l'exécution du CTS. Appuyer sur les touches ou toucher l'écran d'un DUT interfère avec les tests en cours et peut entraîner des échecs.
  5. Lancez le script cts-tradefed de la console CTS à partir du dossier dans lequel le package CTS a été décompressé. Dans le shell de ligne de commande de l'hôte, exécutez:

    ./android-cts/tools/cts-tradefed
  6. Exécutez le plan de test par défaut (qui contient tous les packages de test):

    • Pour CTS 11 et versions antérieures
      cts-tradefed > run cts
    • Pour CTS 12 et versions ultérieures

      cts-console > run cts

    • Si vous souhaitez améliorer le temps d'exécution des tests, vous pouvez segmenter les tests sur plusieurs appareils. Le fractionnement nécessite que l'hôte connecte au moins deux appareils, mais il est recommandé d'en utiliser six ou plus pour plus d'efficacité. Lorsque vous partitionnez plusieurs appareils:

      • Pour Android 9 et versions ultérieures, utilisez l'option de commande

        --shard-count number_of_shards
      • Pour Android 8.1 et versions antérieures, utilisez l'option de commande

        --shards number_of_shards
    • Si vous ne souhaitez pas exécuter l'ensemble de la suite de tests, vous pouvez exécuter le plan CTS de votre choix à partir de la ligne de commande:

      run cts --plan test_plan_name

      Pour trouver le nom du plan de test:

      • Pour Android 7.0 ou version ultérieure, pour afficher la liste des modules de test, saisissez

        list modules
      • Pour Android 6.0 ou version antérieure, pour afficher la liste des plans de test dans le dépôt, saisissez

        list plans
      • Pour Android 6.0 ou version antérieure, pour afficher la liste des packages de test dans le dépôt, saisissez

        list packages
    • Pour obtenir d'autres options de commande en fonction des versions du CTS, consultez la documentation de référence sur les commandes de la console ou "help all" (Aide tout) dans la console Tradefed.

  7. Exécutez plusieurs sessions de nouvelle tentative jusqu'à ce que tous les modules de test soient terminés et que les numéros d'échec des tests soient identiques dans les deux dernières sessions de nouvelle tentative.

    • Pour Android 9 ou version ultérieure, utilisez

      run retry --retry session_number --shard-count number_of_shards
    • Pour Android 7.0 à 8.1, utilisez

      run cts --retry session_number --shards number_of_shards
    • Pour connaître les autres options de la commande "Retry" en fonction de la version de CTS, consultez la console de commande CTS v2.

    • Pour en savoir plus sur l'implémentation de la nouvelle tentative de CTS, consultez la section Réitération de la suite Trade Federation.

  8. Exécutez une session de nouvelle tentative uniquement sur les tests paramétrés ayant échoué. Les tests paramétrés réussis ne sont pas réessayés.

    • Pour Android 11 et versions ultérieures, l'option de commande de nouvelle tentative suivante est activée par défaut dans la commande run cts:

      run retry --retry  --new-parameterized-handling
  9. Consultez la progression et les résultats des tests dans la console.

Exécuter CTS à l'aide de la station de test Android

Android Test Station est un outil d'automatisation des tests que les développeurs et les ingénieurs de test Android peuvent utiliser pour exécuter des suites de tests standards à l'aide d'une interface utilisateur. Il est compatible avec la suite de tests de compatibilité Android (CTS).

L'outil est disponible publiquement via le guide de l'utilisateur ATS, et son code est Open Source dans AOSP (multitest_transport, tradefed_cluster).

Exécuter CTS pour les modes alternatifs

La version CTS 10 R4 ajoute un plan de test pour les appareils avec des modes alternatifs ou pour les appareils avec plusieurs écrans. Exécutez le plan de test des modes alternatifs à l'aide de run cts-foldable.

Les scénarios de test réussis ou échoués pour le mode d'écran alternatif sont ajoutés à la valeur de display_mode, par exemple testcase1[display_mode=0].

Dans CTS 13, l'API DeviceStateManager permet d'exécuter des modules de test avec l'option de configuration suivante sur différents états d'un appareil pliable. L'exécution des tests est automatique dans CTS en fonction des états de pliage de l'écran définis sur l'appareil, sans avoir à exécuter le plan de test cts-foldable.

<option name="config-descriptor:metadata" key="parameter" value="all_foldable_states" />

Tests multi-appareils dans CTS

Android 13 et versions ultérieures sont compatibles avec les tests multi-appareils. Les tests qui nécessitent plusieurs appareils s'exécutent automatiquement lors de l'exécution du CTS. CTS 13 inclut certains tests multi-appareils qui se déclenchent automatiquement lorsque le fractionnement est utilisé. Bien que les tests ne nécessitent pas de modifications supplémentaires de la configuration physique, virtualenv doit être installé pour que les tests s'exécutent correctement. Pour en savoir plus, consultez la section Suites multi-appareils.

Exécuter des tests multi-appareils

Pour exécuter des tests multi-appareils de manière indépendante, utilisez le code suivant:

  cts-tradefed > run cts-multidevice
  

Toutes les options standards sont acceptées. Pour cibler des appareils spécifiques, ajoutez --serial <serial1> --serial <serial2>, et ainsi de suite pour le nombre d'appareils ciblés.

Pour déclencher automatiquement des tests multi-appareils, utilisez le fractionnement, comme dans --shard-count 2.