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) :
- Vérifiez que votre ordinateur de bureau répond aux configuration système requise pour CTS.
- 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 depython.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 modulevenv, exécutezpython3 -m venv venv. Si cette commande échoue, un message d'erreur s'affiche. Suivez les instructions pour installer le packagepython3.x-venv.
- Votre version de Python doit être 3.11 ou ultérieure. Pour déterminer votre version de Python, exécutez
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 :
- Vérifiez que votre ordinateur de bureau répond aux configuration système requise pour CTS.
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 depython.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 modulevenv, exécutezpython3 -m venv venv. Si cette commande échoue, un message d'erreur s'affiche. Suivez les instructions pour installer le packagepython3.x-venv.
- Votre version de Python doit être 3.11 ou ultérieure. Pour déterminer votre version de Python, exécutez
Préparez deux DUT identiques, chacun avec CTS-V configuré.
- Pour savoir comment configurer un appareil en test, consultez Configurer l'appareil en test.
- Pour savoir comment configurer CTS-V, consultez Configuration.
Accédez à la section sur la configuration correspondant à votre type de test :
- Pour les tests NFC, accédez à Configurer les tests NFC.
- Pour les tests de connexion au point d'accès Wi-Fi, consultez Configurer des tests de connexion au point d'accès Wi-Fi.
- Pour les tests de précision de la mesure de distance, consultez Configurer les tests de précision de la mesure de distance.
- Pour tester le module CDM, accédez à Configurer des tests standards à deux appareils, puis à Configurer des tests CDM.
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 :
- Achetez une puce NFC PN532. Nous vous recommandons le PN532 tout-en-un.
- Sur l'appareil en test, accédez à l'application Paramètres.
- Activez le NFC.
Positionnez la puce NFC :
Pour les téléphones, positionnez le lecteur NFC du DUT comme indiqué sur la figure 1 :

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.
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 :
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.
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 18676993556Connectez 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 :

Figure 2. DUT et PA dans une boîte blindée.
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 :
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 :

Figure 3. Orientation de l'appareil.
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 :
- Placez deux appareils Android de test identiques à environ 20 cm l'un de l'autre.
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.
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.
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.
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-tradefedDans 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 :
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.
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-defaultLes 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 :
Figure 5. Résultats des tests multi-appareils côté hôte dans l'application CTS-V.
Dans la console hôte CTS-V, utilisez la commande suivante pour exécuter les tests interactifs :
run cts-v-host-interactiveLes 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é.
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_namePar exemple, pour exécuter les tests NFC, utilisez la commande suivante :
run cts-v-host -m CtsNfcHceMultiDeviceTestCasesLes 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 :
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.yamlRemplacez les valeurs des champs
wifi_ssidetwifi_passwordpar 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-PASSWORDDans 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 :
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.yamlRemplacez la valeur de
hostnamepar 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ètrehostname:TestBeds: - Name: WifiConnectionTestbed Controllers: AndroidDevice: '*' # Specify settings for the AP. OpenWrtDevice: - hostname: AP-IP skip_init_reboot: True TestParams: use_programmable_ap: TrueDans 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.
Connectez le DUT à l'aide de
adbvia le Wi-Fi. Pour en savoir plus sur la configuration, consultez Se connecter à un appareil via le Wi-Fi.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.
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 :
Figure 6. Tests USB côté hôte dans l'application CTS-V.
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 :
Vérifiez que chaque DUT dispose d'une carte SIM.
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éphone555-0000) et le DUT 2 (numéro de sérieR3CN90YNAR, numéro de téléphone555-1111), ajoutez les arguments suivants à la commanderun 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.