Exécuter les tests CTS Verifier côté hôte

Cette page contient des instructions pour configurer et exécuter les tests Android 16 QPR2 et Android 17 côté hôte de CTS Verifier (CTS-V). Il existe deux types de tests côté hôte : les tests multi-appareils (introduits avant Android 17) et les tests interactifs (nouveaux dans Android 17) :

  • Les tests multi-appareils sont des tests entièrement automatisés.
  • Les tests interactifs sont des tests semi-automatisés qui nécessitent d'effectuer certaines étapes manuelles sur l'appareil testé.

En plus des nouveaux tests interactifs, les tests de précision de la télémétrie manuelle et les tests de télécommunications sont désormais des tests multi-appareils côté hôte, et les tests de connexion Wi-Fi sont obligatoires.

Configurer des tests côté hôte

Suivez ces étapes pour configurer des tests côté hôte (les tests multi-appareils nécessitent une configuration supplémentaire) :

  1. Vérifiez que votre ordinateur de bureau répond aux exigences du système d'exploitation pour CTS.

  2. Suivez les étapes 2 et 5 de la section Installer le logiciel de bureau pour installer et vérifier qu'adb, AAPT2 et Python sont correctement installés sur votre ordinateur.

    • La version de Python pour ordinateur doit être la version 3.11 ou une version ultérieure. Pour déterminer la version de Python, exécutez python3 --version. Si la version est antérieure à la version 3.11, installez la dernière version officielle de Python. Pour en savoir plus, consultez la section Téléchargements de python.org.

    • Certains tests nécessitent que l'hôte dispose du module Python venv. Sur les systèmes Debian et Ubuntu, ce module n'est peut-être pas installé par défaut. Pour déterminer si la version de Python pour ordinateur dispose du module venv, exécutez python3 -m venv venv. Si cette commande échoue, un message d'erreur s'affiche. Suivez les instructions pour installer le package python3.x-venv.

Si vous n'exécutez que les tests interactifs côté hôte, passez à la section Exécuter les tests côté hôte. Toutefois, si vous souhaitez exécuter des tests multi-appareils, passez à la section Configurer des tests multi-appareils côté hôte.

Configurer des tests multi-appareils côté hôte

Pour configurer des tests multi-appareils côté hôte, procédez comme suit :

  1. Vérifiez que votre ordinateur de bureau répond aux exigences du système d'exploitation pour CTS.

  2. Suivez les étapes 2 et 5 de la section Installer le logiciel de bureau pour installer et vérifier qu'adb, AAPT2 et Python sont correctement installés sur votre ordinateur.

    • La version de Python pour ordinateur doit être la version 3.11 ou une version ultérieure. Pour déterminer la version de Python, exécutez python3 --version. Si la version est antérieure à la version 3.11, installez la dernière version officielle de Python. Pour en savoir plus, consultez la section Téléchargements de python.org.

      • Certains tests nécessitent que l'hôte dispose du module Python venv. Sur les systèmes Debian et Ubuntu, ce module n'est peut-être pas installé par défaut. Pour déterminer si la version de Python pour ordinateur dispose du module venv, exécutez python3 -m venv venv. Si cette commande échoue, un message d'erreur s'affiche. Suivez les instructions pour installer le package python3.x-venv.
  3. Préparez deux DUT correspondants, chacun avec CTS-V configuré.

    • Pour en savoir plus sur la configuration d'un DUT, consultez Configurer le DUT.
    • Pour en savoir plus sur la configuration de CTS-V, consultez Configuration.
  4. Accédez à la section de configuration correspondant à votre type de test :

Si votre test ne figure pas dans cette liste, passez à la section Configurer des tests standards sur deux appareils.

Configurer les tests NFC

Les tests NFC utilisent un appareil testé et une puce NFC PN532.

Pour configurer des tests NFC :

  1. Achetez une puce NFC PN532. Nous vous recommandons d'utiliser le PN532 tout-en-un.
  2. Sur l'appareil testé, accédez à l'application Paramètres.
  3. Activez le NFC.
  4. Positionnez la puce NFC :

    • Pour les téléphones, positionnez le lecteur NFC de l'appareil testé comme illustré dans la figure 1 :

      Positionnement de la puce NFC

      Figure 1. Positionnement de la puce NFC.

    • Pour les autres types d'appareils, placez la puce à côté de l'antenne NFC de l'appareil.

  5. Connectez la puce NFC PN532 à votre poste de travail de test à l'aide d'un câble USB.

Configurer des tests de connexion au point d'accès Wi-Fi

Les tests de connexion au point d'accès Wi-Fi (CtsWifiConnectionTests) testent la connectivité entre un DUT et un point d'accès. Vous pouvez configurer ces tests de deux manières :

  • Option 1 : Utilisez un réseau Wi-Fi existant que vous avez configuré pour CTS-V.
  • Option 2 : Configurez un point d'accès programmable.

Pour Android 17, nous vous recommandons vivement l'option 2, mais elle n'est pas obligatoire. Les deux sections suivantes expliquent chaque option.

Option 1 : Utiliser un réseau Wi-Fi existant que vous avez configuré pour CTS-V

L'option 1 nécessite un appareil Android à tester dans la zone de couverture du réseau Wi-Fi. Si l'appareil testé se trouve dans un boîtier de protection et ne peut pas se connecter au réseau Wi-Fi, retirez-le du boîtier de protection.

Option 2 : Configurer un PA programmable

Pour configurer un PA programmable pour les tests de connexion Wi-Fi :

  1. Achetez le PA Banana Pi R3 et configurez-le. Pour en savoir plus sur l'achat et la configuration du PA Banana Pi R3, consultez Configurer le PA Banana Pi BPI-R3.

  2. (Facultatif) Si vous n'avez pas de boîtier de blindage, nous vous recommandons le boîtier de blindage JTP-SR101. Achetez cette boîte en utilisant les informations suivantes :

    Dong Guan Zheng Sheng Electronics Technology Co., LTD

    Bohui Industrial Park, Panlong Road, Liaobu Town, Dongguan City, Guangdong Province, Chine

    Contact : Forest Pan

    Adresse e-mail : forest.pan@jtpmak.cn

    Téléphone (Chine) : +86 18676993556

  3. Connectez le DUT et le PA à l'hôte, puis placez-les dans un boîtier de blindage RF. Le DUT et le PA doivent être espacés d'au moins 10 cm. La figure 2 illustre cette configuration :

    DUT et AP dans un boîtier blindé

    Figure 2. DUT et AP dans un boîtier blindé.

  4. Utilisez SSH pour vérifier que le PA est accessible depuis l'hôte.

Configurer des tests de précision de la télémétrie

Pour configurer des tests de précision de la télémétrie :

  1. Placez deux appareils Android identiques à un mètre de distance, à la même hauteur, en visibilité directe et dos à dos. La figure 3 illustre cette orientation :

    Orientation de l'appareil

    Figure 3. Orientation de l'appareil.

  2. Connectez les deux appareils à l'ordinateur de bureau à l'aide de câbles USB.

Configurer des tests standards sur deux appareils

Pour la configuration par défaut à deux appareils :

  1. Placez deux appareils Android identiques à environ 20 cm l'un de l'autre.

  2. Fortement recommandé : placez les deux appareils dans un boîtier de protection. La boîte de blindage améliore la stabilité des tests et facilite le débogage des échecs de test.

  3. Pour les tests de télécommunications, chaque appareil testé doit disposer d'une carte SIM et d'un signal mobile. Si les appareils testés se trouvent dans un boîtier blindé, le signal cellulaire doit être couplé dans le boîtier. Sinon, sortez les appareils de la boîte de protection.

  4. Facultatif : configurez un analyseur OTA pour le débogage Wi-Fi.

Configurer des tests CDM

Le scénario de test test_permissions_sync se comporte différemment selon le type de compilation des appareils sur lesquels le test est exécuté. Il est essentiel que les OEM testent à la fois les builds débogables (userdebug ou eng) et non débogables (user), et que les tests réussissent pour les deux.

Exonération

La clause CDD pour l'implémentation de l'API de synchronisation des autorisations ne nécessite que le transfert réussi des données entre les appareils via un canal sécurisé. Étant donné que l'implémentation du canal sécurisé n'est pas une exigence de conformité du CDD, ce test peut être ignoré sur les builds non débogables (utilisateur), mais uniquement si vous souhaitez désactiver la fonctionnalité de synchronisation des autorisations CDM.

Les tests doivent réussir sur les builds débogables, sans exception.

Prérequis pour les tests sur des builds non débogables

Si vous n'êtes pas exempté, vérifiez que vous remplissez les conditions préalables suivantes.

Le canal sécurisé utilise AVF (AttestationVerificationFramework) pour vérifier la fiabilité du matériel. Les attestations générées par les deux parties contiennent plusieurs informations les concernant, afin de vérifier qu'aucune modification non autorisée n'a été apportée à leur système. AVF vérifie les états suivants lors du processus de validation :

  • L'appareil a accès à Internet

  • L'appareil utilise le démarrage validé et la compilation est signée avec une clé de version (et non une clé de développement).

  • Le bootloader de l'appareil est verrouillé. Pour en savoir plus, consultez Verrouiller le bootloader.

  • Les niveaux de correctif de l'OS, du démarrage de la clé et du fournisseur de la clé datent de moins de 12 mois. N'utilisez pas de build datant de plus d'un an.

  • L'attestation de l'appareil est basée sur l'un des certificats racine approuvés par le fournisseur. Spécifiez vos certificats racine de confiance dans la superposition de ressources vendor_required_attestation_certificates.xml.

Exécuter des tests côté hôte

Certains tests multi-appareils, tels que les tests NFC, nécessitent une configuration supplémentaire. Pour les tests nécessitant une configuration supplémentaire, chaque test est exécuté séparément. Pour les tests qui ne nécessitent pas de configuration supplémentaire, vous pouvez les exécuter dans un groupe.

  1. Sur votre station de travail de test, lancez la console cts-v-host à partir du répertoire dans lequel le package ZIP CTS-V a été décompressé :

    ./android-cts-verifier/android-cts-v-host/tools/cts-v-host-tradefed
    
  2. Dans l'application CTS-V sur l'appareil testé, cliquez sur Host-side Tests (Tests côté hôte). La figure 4 montre les tests côté hôte dans l'application CTS-V :

    Tests côté hôte dans l'application CTS-V

    Figure 4. Tests côté hôte dans l'application CTS-V.

    Une liste des modules de test multi-appareils côté hôte s'affiche.

  3. Dans la console hôte CTS-V, utilisez la commande suivante pour exécuter des tests multi-appareils qui utilisent une configuration standard à deux appareils :

    run cts-v-host-multidevice-default
    

    Les résultats s'affichent sous chaque module de test dans l'application CTS-V sur l'appareil testé. Les tests marqués en vert ont réussi, tandis que ceux marqués en rouge ont échoué.

    La figure 5 montre des exemples de résultats pour les tests CtsCompanionDeviceManager :

    Résultats des tests multi-appareils côté hôte dans l'application CTS-V

    Figure 5. Résultats des tests multi-appareils côté hôte dans l'application CTS-V.

  4. Dans la console hôte CTS-V, exécutez la commande suivante pour lancer les tests interactifs :

    run cts-v-host-interactive
    

    Les résultats s'affichent sous chaque module de test dans l'application CTS-V sur l'appareil testé. Les tests marqués en vert ont réussi, tandis que ceux marqués en rouge ont échoué.

  5. Pour chaque test nécessitant une configuration supplémentaire, exécutez le test séparément à l'aide de la commande suivante :

    run cts-v-host -m test_module_name
    

    Par exemple, pour exécuter les tests NFC, utilisez la commande suivante :

    run cts-v-host -m CtsNfcHceMultiDeviceTestCases
    

    Les résultats s'affichent sous chaque module de test dans l'application CTS-V sur l'appareil testé. Les tests marqués en vert ont réussi, tandis que ceux marqués en rouge ont échoué.

Exécuter des tests de connexion au point d'accès Wi-Fi

Vous pouvez exécuter les tests de connexion au point d'accès Wi-Fi de deux manières :

  • Option 1 : Utilisez un réseau Wi-Fi existant que vous avez configuré pour CTS-V.
  • Option 2 : Configurez un PA programmable.

Option 1 : Utiliser un réseau Wi-Fi existant que vous avez configuré pour CTS-V

Pour exécuter les tests de connexion au point d'accès Wi-Fi sur un réseau Wi-Fi existant :

  1. Modifiez le fichier de configuration du banc d'essai (WifiConnectionTestbed.yaml). Ce fichier se trouve dans le répertoire où CTS-Verifier est décompressé. Exemple :

    ./android-cts-verifier/android-cts-v-host/testcases/CtsWifiConnectionTests/x86_64/connection/WifiConnectionTestbed.yaml
    
  2. Remplacez la valeur des champs wifi_ssid et wifi_password par le SSID et le mot de passe du réseau Wi-Fi. L'exemple suivant montre l'emplacement de ces paramètres :

    TestBeds:
    -   Name: WifiConnectionTestbed
    Controllers:
      AndroidDevice: '*'
    TestParams:
      use_programmable_ap: False
      wifi_ssid: WIFI-SSID
      wifi_password: WIFI-PASSWORD
    
  3. Dans la console hôte CTS-V, exécutez la commande suivante :

    run cts-v-host -m CtsWifiConnectionTests
    

Option 2 : Exécuter avec un AP programmable

Pour exécuter les tests de connexion au PA Wi-Fi sur un PA programmable :

  1. Modifiez le fichier de configuration du banc d'essai (WifiConnectionTestbed.yaml). Ce fichier se trouve dans le répertoire où CTS-Verifier est décompressé. Exemple :

    ./android-cts-verifier/android-cts-v-host/testcases/CtsWifiConnectionTests/x86_64/connection/WifiConnectionTestbed.yaml
    
  2. Remplacez la valeur de hostname par l'adresse IP du point d'accès, en fonction de vos paramètres SSH locaux. Pour identifier l'adresse IP, consultez Trouver l'adresse IP du PA. L'exemple suivant montre l'emplacement du paramètre hostname :

    TestBeds:
    -   Name: WifiConnectionTestbed
      Controllers:
        AndroidDevice: '*'
        # Specify settings for the AP.
        OpenWrtDevice:
        -   hostname: AP-IP
          skip_init_reboot: True
      TestParams:
        use_programmable_ap: True
    
  3. Dans la console hôte CTS-V, exécutez la commande suivante :

    run cts-v-host -m CtsWifiConnectionTests
    

Exécuter des tests USB côté hôte

Android 17 inclut des tests CTS-V USB côté hôte qui nécessitent adb via le Wi-Fi pour s'exécuter.

Certains tests USB nécessitent l'utilisation de l'hôte CTS-V pour accéder aux SystemAPI qui disposent d'autorisations auxquelles l'application CTS-V normale ne peut pas accéder. Ces tests sont autonomes et nécessitent l'utilisation d'adb via le Wi-Fi.

Les accessoires Type-C suivants sont requis si l'appareil testé permet de signaler le type de port partenaire BC 1.2 ou les profils d'alimentation USB dans UsbPort.java :

  • Un chargeur USB Type-C Power Delivery (PD)
  • Un port USB standard de charge de batterie 1.2 (BC 1.2) en aval (SDP). Ces ports sont limités à 500 mA ou 900 mA pour le DUT et se trouvent généralement sur les ports USB des hubs externes.
  • Un port de recharge en aval (CDP) USB BC 1.2. Ces ports peuvent fournir un courant de 1,5 A au DUT et aux données. Un port de type C sur un ordinateur portable ou de bureau est probablement un CDP.
  • Un port de recharge dédié (DCP) USB BC 1.2. Ces ports peuvent fournir un courant de 1,5 A au DUT sans données. Le chargeur USB Type-C PD de cette liste est probablement un DCP.
  1. Connectez le DUT à l'aide de adb via le Wi-Fi. Pour en savoir plus sur la configuration, consultez Se connecter à un appareil via le Wi-Fi.

  2. Débranchez physiquement l'appareil de toutes les connexions USB. Le test échoue si l'appareil est connecté à un hôte ou à un accessoire USB lors de l'exécution de la commande de test.

  3. Exécutez la commande de test suivante :

    run cts-v-host -m CtsUsbTypecTestCases
    

Après les tests, les résultats s'affichent dans l'application CTS-V sous Host-side tests (Tests côté hôte), comme illustré dans les figures suivantes :

Tests USB côté hôte dans l'application CTS-V

Figure 6. Tests USB côté hôte dans l'application CTS-V.

Suite CtsUsbTypecTestCases dans l'application CTS-V USB côté hôte

Figure 7. Suite CtsUsbTypecTestCases dans l'application CTS-V USB côté hôte.

Résoudre les problèmes liés aux tests multi-appareils

Cette section vous permet de résoudre les problèmes courants.

Échec de l'obtention du numéro de téléphone lors de CtsTelecomTest

Si vous recevez le message d'erreur Failed to get phone number for <serial>, procédez comme suit :

  1. Vérifiez que chaque DUT est équipé d'une carte SIM.

  2. Si l'erreur persiste, il est possible que les cartes SIM ne soient pas compatibles avec la récupération automatique des numéros. Dans ce cas, vous devez fournir explicitement les numéros de téléphone dans la commande.

    Par exemple, pour le DUT 1 (numéro de série 17011FDEE0002N, numéro de téléphone 555-0000) et le DUT 2 (numéro de série R3CN90YNAR, numéro de téléphone 555-1111), ajoutez les arguments suivants à la commande run cts-v-host :

    --module-arg CtsTelecomTest:dut_serial:17011FDEE0002N \
    --module-arg CtsTelecomTest:dut_phone_number:555-0000 \
    --module-arg CtsTelecomTest:ref_phone_number:555-1111
    

Aucune réponse du serveur pendant CtsMultiDeviceGenericRangingAccuracyTests

Si vous recevez le message d'erreur suivant, l'application de test peut être figée ou arrêtée par la gestion des processus en arrière-plan spécifique à l'OEM sur certains appareils :

mobly.snippet.errors.ProtocolError: <AndroidDevice|Initiator> No response from server. Check the device logcat for crashes.

Pour résoudre ce problème, désactivez les restrictions en arrière-plan ou ajoutez les packages suivants à la liste d'autorisation :

Package Nom à afficher
com.google.snippet.uwb CtsUwbSnippetApp
com.google.snippet.ranging CtsRangingSnippetApp
com.google.snippet.bluetooth CtsBluetoothMultiDeviceSnippetApp
com.google.android.mobly.snippet.bundled androidx.multidex.MultDexApplication

Correction de l'absence de réponse pour GetFirmwareVersion lors des tests NFC

Si vous recevez le message verify_firmware_version RuntimeError: No response for GetFirmwareVersion lors de l'exécution des tests multi-appareils, cela signifie que les tests ne peuvent pas accéder à la carte NFC PN532.

Pour résoudre ce problème, identifiez le chemin d'accès série utilisé par la carte NFC PN532 sur votre hôte, par exemple dev/ttyUSB1, puis spécifiez-le manuellement à l'aide de l'argument --module-arg dans la console :

run cts-v-host -m CtsNfcHceMultiDeviceTestCases --module-arg CtsNfcHceMultiDeviceTestCases:pn532_serial_path:/dev/ttyUSB1

Corriger le message d'erreur "Échec de la transaction" lors des tests NFC

Si vous recevez le message Transaction failed, check device logs for more information. pour tous les scénarios de test NFC, cela est probablement dû au fait que la puce NFC de l'appareil testé ne peut pas détecter le PN532.

Si plusieurs appareils sont connectés à l'hôte et que certains d'entre eux ne sont pas équipés d'un PN532, il est possible que le mauvais appareil ait été sélectionné. Pour en savoir plus, consultez Configurer des tests NFC.

Pour résoudre ce problème, effectuez l'une des opérations suivantes :

  • Définissez le numéro de série de l'appareil testé approprié dans votre commande de test côté hôte à l'aide de l'option -s.

  • Déconnectez tous les appareils autres que le DUT de l'hôte.

Le scénario de test CDM test_permissions_sync est ignoré

Si le test est exécuté sur des appareils non débogables, vérifiez si vous êtes exempté. Sinon, vérifiez que les deux appareils remplissent les conditions préalables.