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

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

  • Les tests multidétecteurs sont des tests entièrement automatisés.
  • Les tests interactifs sont des tests semi-automatisés qui vous obligent à effectuer certaines étapes manuelles sur l'appareil testé.

En plus des nouveaux tests interactifs, nous avons converti les tests manuels de précision de la portée et de télécommunications en tests multi-appareils côté hôte. Les tests de connexion Wi-Fi sont désormais obligatoires.

Configurer des tests côté hôte

Pour configurer des tests côté hôte (les tests multidispositifs nécessitent une configuration supplémentaire) :

  1. Vérifiez que votre ordinateur de bureau répond aux configuration système requise pour CTS.
  2. Suivez les étapes 2 et 5 de Installer un logiciel pour ordinateur pour installer et vérifier que adb, AAPT2 et Python sont correctement installés sur votre ordinateur.
    • Votre version de Python doit être 3.11 ou ultérieure. Pour déterminer votre version de Python, exécutez python3 --version. Si la version est antérieure à 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 votre version de Python 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 à Exécuter les tests côté hôte. Toutefois, si vous souhaitez exécuter des tests multidétecteurs, passez à Configurer des tests multidétecteurs côté hôte.

Configurer des tests multiappareils côté hôte

Pour configurer des tests multidétecteurs côté hôte :

  1. Vérifiez que votre ordinateur de bureau répond aux configuration système requise pour CTS.
  2. Suivez les étapes 2 et 5 de Installer un logiciel pour ordinateur pour installer et vérifier que adb, AAPT2 et Python sont correctement installés sur votre ordinateur.

    • Votre version de Python doit être 3.11 ou ultérieure. Pour déterminer votre version de Python, exécutez python3 --version. Si la version est antérieure à 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 votre version de Python 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 identiques, chacun avec CTS-V configuré.

  4. Accédez à la section sur la configuration correspondant à votre type de test :

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

Configurer des tests NFC

Les tests NFC utilisent un DUT et une puce NFC PN532.

Pour configurer des tests NFC :

  1. Achetez une puce NFC PN532. Nous vous recommandons le PN532 tout-en-un.
  2. Sur l'appareil en 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 du DUT comme indiqué sur 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 aux points 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 DUT Android dans la zone de couverture du réseau Wi-Fi. Si le DUT se trouve dans une boîte blindée et ne peut pas se connecter au réseau Wi-Fi, retirez-le de la boîte blindée.

Option 2 : Configurer un point d'accès programmable

Pour configurer un point d'accès programmable pour les tests de connexion Wi-Fi :

  1. Achetez le point d'accès Banana Pi R3 et configurez-le. Pour savoir comment acheter et configurer le point d'accès Banana Pi R3, consultez Configurer le point d'accès Banana Pi BPI-R3.

  2. Facultatif : Si vous ne disposez pas d'un boîtier de protection, nous vous recommandons le boîtier de protection 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 une boîte blindée 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 une boîte blindée

    Figure 2. DUT et PA dans une boîte blindée.

  4. Utilisez SSH pour vérifier que le point d'accès est accessible depuis l'hôte.

Configurer des tests de précision de la portée

Pour configurer des tests de précision de la portée :

  1. Placez deux DUT Android identiques à un mètre de distance, à la même hauteur, avec une visibilité directe et le dos de chaque appareil face à face. La figure 3 montre 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 à deux appareils

Pour la configuration par défaut à deux appareils :

  1. Placez deux appareils Android de test identiques à environ 20 cm l'un de l'autre.
  2. Fortement recommandé : placez les deux appareils dans une boîte blindée. Le boîtier blindé améliore la stabilité des tests et facilite le débogage des échecs de test.

  3. Pour les tests de télécommunications, chaque DUT doit disposer d'une carte SIM et d'un signal cellulaire. Si les DUT se trouvent dans une boîte blindée, le signal cellulaire doit être couplé à la boîte. Sinon, retirez les appareils de la boîte de protection.

  4. Facultatif : Configurez un renifleur OTA pour le débogage du Wi-Fi.

Configurer les tests CDM

Le comportement du cas de test test_permissions_sync() varie en fonction du type de compilation des appareils sur lesquels le test est exécuté. Il est essentiel que les versions débogables (userdebug ou eng) et non débogables (user) soient testées par les OEM et que les tests soient réussis pour les deux.

Exonération

La clause CDD pour l'implémentation de l'API de synchronisation des autorisations exige uniquement qu'elle soit capable de transférer des données entre les appareils sur 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 versions 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.

Conditions préalables pour effectuer des 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 sur elles-mêmes pour vérifier qu'aucune modification non autorisée n'a été apportée à leur système. L'AVF vérifie les états suivants lors de la procédure de validation :

  • L'appareil a accès à Internet.
  • L'appareil utilise le démarrage sécurisé et la version doit être signée avec une clé de version, et non une clé de développement.
  • Le bootloader de l'appareil est verrouillé. Pour obtenir des instructions détaillées, consultez Verrouiller le bootloader.
  • Les niveaux de correctifs de l'OS, du boot et du fournisseur de clés datent de moins de 12 mois. N'utilisez pas une version 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 qui nécessitent 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 poste 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 à tester, cliquez sur Host-side Tests. 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 de modules de test multiappareils côté hôte s'affiche.

  3. Dans la console hôte CTS-V, exécutez 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, ceux marqués en rouge ont échoué.

    La figure 5 illustre 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, utilisez la commande suivante pour exécuter 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, ceux marqués en rouge ont échoué.

  5. Pour chaque test nécessitant une configuration supplémentaire, exécutez-le 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, 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 point d'accès 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 les valeurs 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 point d'accès programmable

Pour exécuter les tests de connexion au point d'accès Wi-Fi sur un point d'accès 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 point d'accès. 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 côté hôte USB

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 SystemAPIs qui disposent d'autorisations auxquelles l'application CTS-V normale ne peut pas accéder. Ces tests sont indépendants et nécessitent l'utilisation de adb via le Wi-Fi.

Les accessoires Type-C suivants sont requis si le DUT est compatible avec la création de rapports sur le type BC 1.2 du port partenaire ou les profils d'alimentation USB dans UsbPort.java :

  • Un chargeur USB Type-C avec alimentation (PD)
  • Un port en aval standard (SDP) de recharge de batterie USB 1.2 (BC 1.2). Ces ports sont limités à 500 mA ou 900 mA pour l'appareil à tester. Ils se trouvent généralement sur les ports USB des hubs externes.
  • Un port de recharge USB BC 1.2 (CDP). Ces ports peuvent fournir 1,5 A de courant à l'appareil sous test et aux données. Un port de type C sur un ordinateur portable ou de bureau est probablement un port CDP.
  • Un port de recharge USB BC 1.2 dédié (DCP). Ces ports peuvent fournir 1,5 A de courant à l'appareil sous test 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 lorsque la commande de test est exécutée.

  3. Exécutez la commande de test suivante :

    run cts-v-host -m CtsUsbTypecTestCases
    

Une fois les tests effectués, les résultats s'affichent dans l'application CTS-V sous 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 aide à résoudre les problèmes courants.

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

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

  1. Vérifiez que chaque DUT dispose 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 le message d'erreur suivant s'affiche, 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

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

Si le message verify_firmware_version RuntimeError: No response for GetFirmwareVersion s'affiche lorsque vous exécutez les tests multidispositifs, cela signifie que les tests ne peuvent pas accéder à la carte NFC PN532.

Pour résoudre ce problème, identifiez le chemin série utilisé par la carte NFC PN532 sur votre hôte, tel que 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 le message Transaction failed, check device logs for more information. s'affiche pour tous les cas de test NFC, cela signifie probablement que la puce NFC du DUT 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, le mauvais DUT peut avoir é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 du DUT dans la commande de test côté hôte à l'aide de l'indicateur -s.

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

Le cas 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.