Esegui i test lato host di CTS Verifier

Questa pagina contiene le istruzioni per configurare ed eseguire i test CTS Verifier (CTS-V) lato host per Android 16 QPR2 e Android 17. Esistono due tipi di test lato host: i test multidevice (introdotti prima di Android 17) e i test interattivi (novità di Android 17):

  • I test multidispositivo sono test completamente automatizzati.
  • I test interattivi sono test semiautomatici che richiedono l'esecuzione di alcuni passaggi manuali sul dispositivo in fase di test (DUT).

Oltre ai nuovi test interattivi, i test di precisione del rilevamento manuale e i test di telecomunicazione sono ora test multi-dispositivo lato host e sono richiesti i test di connessione Wi-Fi.

Configura i test lato host

Segui questi passaggi per configurare i test lato host (i test su più dispositivi richiedono una configurazione aggiuntiva):

  1. Verifica che il tuo computer soddisfi i requisiti del sistema operativo per CTS.

  2. Segui i passaggi 2 e 5 di Installa il software desktop per installare e verificare che adb, AAPT2 e Python siano installati correttamente sul computer.

    • La versione di Python per computer deve essere 3.11 o successive. Per determinare la versione di Python, esegui python3 --version. Se la versione è precedente alla 3.11, installa l'ultima release ufficiale di Python. Per maggiori dettagli, consulta la sezione Download di python.org.

    • Alcuni test richiedono che l'host abbia il modulo Python venv. Sui sistemi Debian e Ubuntu, questo modulo potrebbe non essere installato per impostazione predefinita. Per determinare se la versione di Python per computer ha il modulo venv, esegui python3 -m venv venv. Se questo comando non va a buon fine, viene visualizzato un messaggio di errore. Segui il prompt per installare il pacchetto python3.x-venv.

Se esegui solo i test interattivi lato host, vai a Esegui i test lato host. Tuttavia, se vuoi eseguire test su più dispositivi, vai a Configura i test su più dispositivi lato host.

Configura i test multi-dispositivo lato host

Segui questi passaggi per configurare i test multi-dispositivo lato host:

  1. Verifica che il tuo computer soddisfi i requisiti del sistema operativo per CTS.

  2. Segui i passaggi 2 e 5 di Installa il software desktop per installare e verificare che adb, AAPT2 e Python siano installati correttamente sul computer.

    • La versione di Python per computer deve essere 3.11 o successive. Per determinare la versione di Python, esegui python3 --version. Se la versione è precedente alla 3.11, installa l'ultima release ufficiale di Python. Per maggiori dettagli, consulta la sezione Download di python.org.

      • Alcuni test richiedono che l'host abbia il modulo Python venv. Sui sistemi Debian e Ubuntu, questo modulo potrebbe non essere installato per impostazione predefinita. Per determinare se la versione di Python per computer ha il modulo venv, esegui python3 -m venv venv. Se questo comando non va a buon fine, viene visualizzato un messaggio di errore. Segui il prompt per installare il pacchetto python3.x-venv.
  3. Prepara due DUT corrispondenti, ciascuno con la configurazione CTS-V.

    • Per maggiori dettagli sulla configurazione di un DUT, consulta Configura il DUT.
    • Per maggiori dettagli sulla configurazione di CTS-V, consulta Configurazione.
  4. Vai alla sezione di configurazione per il tuo tipo di test:

Se il test non è presente in questo elenco, vai a Configura i test standard su due dispositivi.

Configura i test NFC

I test NFC utilizzano un DUT e un chip NFC PN532.

Per configurare i test NFC:

  1. Acquista un chip NFC PN532. Ti consigliamo All-In-One PN532.
  2. Sul DUT, vai all'app Impostazioni.
  3. Attiva l'NFC.
  4. Posiziona il chip NFC:

    • Per gli smartphone, posiziona il lettore NFC del DUT come mostrato nella Figura 1:

      Posizionamento del chip NFC

      Figura 1. Posizionamento del chip NFC.

    • Per altri tipi di dispositivi, posiziona il chip accanto all'antenna NFC del dispositivo.

  5. Collega il chip NFC PN532 alla workstation di test utilizzando un cavo USB.

Configura i test di connessione degli AP Wi-Fi

I test di connessione del punto di accesso Wi-Fi (AP) (CtsWifiConnectionTests) verificano la connettività tra un DUT e un AP. Puoi configurare questi test in due modi:

  • Opzione 1: utilizza una rete Wi-Fi esistente che hai configurato per CTS-V.
  • Opzione 2: configura un punto di accesso (AP) programmabile.

Per Android 17, consigliamo vivamente l'opzione 2, ma non è obbligatoria. Le due sezioni seguenti spiegano ciascuna opzione.

Opzione 1: utilizza una rete Wi-Fi esistente configurata per CTS-V

L'opzione 1 richiede un DUT Android all'interno dell'area di copertura della rete Wi-Fi. Se il DUT si trova in una scatola schermata e non riesce a connettersi alla rete Wi-Fi, rimuovilo dalla scatola schermata.

Opzione 2: configura un AP programmabile

Per configurare un AP programmabile per i test della connessione Wi-Fi:

  1. Acquista il Banana Pi R3 AP e configuralo. Per informazioni sull'acquisto e sulla configurazione dell'AP Banana Pi R3, consulta Configura l'AP Banana Pi BPI-R3.

  2. (Facoltativo) Se non hai una scatola schermata, ti consigliamo la scatola schermata JTP-SR101. Acquista questa confezione utilizzando le seguenti informazioni:

    Dong Guan Zheng Sheng Electronics Technology Co., LTD

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

    Contatto: Forest Pan

    Email: forest.pan@jtpmak.cn

    Telefono (Cina): +86 18676993556

  3. Collega il DUT e l'AP all'host e posizionali in una scatola di schermatura RF. Il DUT e l'AP devono essere distanti almeno 10 cm. La Figura 2 mostra questa configurazione:

    DUT e AP nella scatola schermata

    Figura 2. DUT e AP nella scatola schermata.

  4. Utilizza SSH per verificare che l'AP sia accessibile dall'host.

Configura i test di accuratezza del rilevamento della distanza

Per configurare i test di accuratezza del rilevamento:

  1. Posiziona due DUT Android corrispondenti a 1 metro di distanza, alla stessa altezza, con linea di visione diretta e con il retro di ogni dispositivo rivolto l'uno verso l'altro. La Figura 3 mostra questo orientamento:

    Orientamento del dispositivo

    Figura 3. Orientamento del dispositivo.

  2. Collega entrambi i dispositivi al computer desktop tramite cavi USB.

Configura i test standard su due dispositivi

Per la configurazione predefinita con due dispositivi:

  1. Posiziona due DUT Android corrispondenti a circa 20 cm di distanza.

  2. Vivamente consigliato: posiziona entrambi i dispositivi in una scatola schermata. La scatola schermata migliora la stabilità dei test e semplifica il debug degli errori dei test.

  3. Per i test di telecomunicazione, ogni DUT deve avere una scheda SIM e un segnale di rete dati. Se i DUT si trovano in una scatola schermata, il segnale della rete dati deve essere accoppiato alla scatola. In caso contrario, sposta i dispositivi fuori dalla scatola schermata.

  4. (Facoltativo) Configura uno sniffer OTA per il debug del Wi-Fi.

Configura i test CDM

Lo scenario di test test_permissions_sync ha un comportamento diverso a seconda del tipo di build dei dispositivi su cui viene eseguito il test. È fondamentale che gli OEM testino sia le build abilitate al debug (userdebug o eng) sia quelle non abilitate al debug (user) e che i test vengano superati per entrambe.

Esenzione

La clausola del CDD per l'implementazione dell'API di sincronizzazione delle autorizzazioni richiede solo che sia in grado di trasferire correttamente i dati tra i dispositivi tramite un canale sicuro. Poiché l'implementazione del canale sicuro non è un requisito di conformità al CDD, questo test può essere saltato nelle build non abilitate al debug (utente), ma solo se vuoi disattivare la funzionalità di sincronizzazione delle autorizzazioni CDM.

I test devono essere superati su build abilitate al debug senza eccezioni.

Prerequisiti per i test su build non abilitate al debug

Se non sei esente, verifica di soddisfare i seguenti prerequisiti.

Il canale sicuro utilizza AVF (AttestationVerificationFramework) per verificare l'affidabilità dell'hardware. Le attestazioni generate da entrambe le parti contengono diverse informazioni su di loro per verificare che non siano state apportate modifiche non autorizzate al loro sistema. AVF verifica i seguenti stati durante la procedura di verifica:

  • Il dispositivo ha accesso a internet

  • Il dispositivo utilizza l'avvio verificato e la build è firmata con una chiave di release (non una chiave di sviluppo)

  • Il bootloader del dispositivo è bloccato. Per maggiori dettagli, consulta la sezione sul blocco del bootloader.

  • I livelli di patch del sistema operativo, dell'avvio della chiave e del fornitore della chiave sono entro 12 mesi. Non utilizzare una build più vecchia di un anno.

  • L'attestazione del dispositivo è supportata da uno dei certificati radice approvati dal fornitore. Specifica i certificati radice attendibili nell'overlay della risorsa vendor_required_attestation_certificates.xml.

Esegui i test lato host

Alcuni test su più dispositivi, come i test NFC, richiedono una configurazione aggiuntiva. Per i test che richiedono una configurazione aggiuntiva, ogni test viene eseguito separatamente. Per i test che non richiedono una configurazione aggiuntiva, puoi eseguirli in un gruppo.

  1. Sulla workstation di test, avvia la console cts-v-host dalla directory in cui è stato decompresso il pacchetto zip CTS-V:

    ./android-cts-verifier/android-cts-v-host/tools/cts-v-host-tradefed
    
  2. All'interno dell'app CTS-V sul DUT, fai clic su Host-side Tests (Test lato host). La Figura 4 mostra i test lato host nell'app CTS-V:

    Test lato host nell'app CTS-V

    Figura 4. Test lato host nell'app CTS-V.

    Viene visualizzato un elenco di moduli di test multidevice lato host.

  3. Nella console host CTS-V, utilizza il seguente comando per eseguire test multi-dispositivo che utilizzano una configurazione standard con due dispositivi:

    run cts-v-host-multidevice-default
    

    I risultati vengono visualizzati sotto ogni modulo di test nell'app CTS-V sul DUT. I test contrassegnati in verde sono stati superati, quelli contrassegnati in rosso non sono riusciti.

    La Figura 5 mostra i risultati di esempio per i test CtsCompanionDeviceManager:

    Risultati dei test multi-dispositivo lato host nell'app CTS-V

    Figura 5. Risultati dei test multi-dispositivo lato host nell'app CTS-V.

  4. Nella console host CTS-V, utilizza il seguente comando per eseguire i test interattivi:

    run cts-v-host-interactive
    

    I risultati vengono visualizzati sotto ogni modulo di test nell'app CTS-V sul DUT. I test contrassegnati in verde sono stati superati, quelli contrassegnati in rosso non sono riusciti.

  5. Per ogni test che richiede una configurazione aggiuntiva, eseguilo separatamente utilizzando il seguente comando:

    run cts-v-host -m test_module_name
    

    Ad esempio, per eseguire i test NFC, utilizza questo comando:

    run cts-v-host -m CtsNfcHceMultiDeviceTestCases
    

    I risultati vengono visualizzati sotto ogni modulo di test nell'app CTS-V sul DUT. I test contrassegnati in verde sono stati superati, quelli contrassegnati in rosso non sono riusciti.

Esegui i test di connessione dell'AP Wi-Fi

Puoi eseguire i test di connessione dell'AP Wi-Fi in due modi:

  • Opzione 1: utilizza una rete Wi-Fi esistente che hai configurato per CTS-V.
  • Opzione 2: configura un AP programmabile.

Opzione 1: utilizza una rete Wi-Fi esistente configurata per CTS-V

Per eseguire i test di connessione all'AP Wi-Fi su una rete Wi-Fi esistente:

  1. Modifica il file di configurazione del testbed (WifiConnectionTestbed.yaml). Questo file si trova nella directory in cui è stato decompresso CTS-Verifier. Ad esempio:

    ./android-cts-verifier/android-cts-v-host/testcases/CtsWifiConnectionTests/x86_64/connection/WifiConnectionTestbed.yaml
    
  2. Modifica il valore dei campi wifi_ssid e wifi_password con l'SSID e la password della rete Wi-Fi. L'esempio seguente mostra la posizione di queste impostazioni:

    TestBeds:
    -   Name: WifiConnectionTestbed
    Controllers:
      AndroidDevice: '*'
    TestParams:
      use_programmable_ap: False
      wifi_ssid: WIFI-SSID
      wifi_password: WIFI-PASSWORD
    
  3. Nella console host CTS-V, esegui questo comando:

    run cts-v-host -m CtsWifiConnectionTests
    

Opzione 2: esecuzione con un AP programmabile

Per eseguire i test di connessione dell'AP Wi-Fi su un AP programmabile:

  1. Modifica il file di configurazione del testbed (WifiConnectionTestbed.yaml). Questo file si trova nella directory in cui è stato decompresso CTS-Verifier. Ad esempio:

    ./android-cts-verifier/android-cts-v-host/testcases/CtsWifiConnectionTests/x86_64/connection/WifiConnectionTestbed.yaml
    
  2. Modifica il valore di hostname con l'indirizzo IP dell'AP, in base alle impostazioni SSH locali. Per identificare l'indirizzo IP, consulta Trova l'indirizzo IP dell'AP. L'esempio seguente mostra la posizione dell'impostazione 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. Nella console host CTS-V, esegui questo comando:

    run cts-v-host -m CtsWifiConnectionTests
    

Esegui i test USB lato host

Android 17 include test lato host CTS-V USB che richiedono adb tramite Wi-Fi per l'esecuzione.

Alcuni test USB richiedono l'utilizzo dell'host CTS-V per accedere alle API di sistema che dispongono di autorizzazioni a cui la normale app CTS-V non può accedere. Questi test non sono collegati e richiedono l'utilizzo di adb tramite Wi-Fi.

Se il DUT supporta la segnalazione del tipo BC 1.2 del partner della porta o dei profili di alimentazione USB in UsbPort.java, sono necessari i seguenti accessori Type-C:

  • Un caricatore USB Type-C Power Delivery (PD)
  • Una porta downstream standard (SDP) USB Battery Charging 1.2 (BC 1.2). Queste porte sono limitate a fornire 500 mA o 900 mA al DUT e si trovano comunemente sulle porte USB degli hub esterni.
  • Una porta di ricarica downstream (CDP) USB BC 1.2. Queste porte possono fornire 1,5 A di corrente al DUT e ai dati. Una porta Type-C su un laptop o un computer è probabilmente una porta CDP.
  • Una porta di ricarica dedicata (DCP) USB BC 1.2. Queste porte possono fornire 1,5 A di corrente al DUT senza dati. Il caricatore USB Type-C PD in questo elenco è probabilmente un DCP.
  1. Connetti il DUT utilizzando adb tramite Wi-Fi. Per i dettagli sulla configurazione, consulta Connettiti a un dispositivo tramite Wi-Fi.

  2. Scollega fisicamente il dispositivo da tutte le connessioni USB. Il test non va a buon fine se il dispositivo è collegato a un host o accessorio USB quando viene eseguito il comando di test.

  3. Esegui questo comando di test:

    run cts-v-host -m CtsUsbTypecTestCases
    

Dopo i test, i risultati vengono visualizzati nell'app CTS-V in Test lato host, come mostrato nelle seguenti figure:

Test USB lato host nell'app CTS-V

Figura 6. Test USB lato host nell'app CTS-V.

Suite CtsUsbTypecTestCases nell'app CTS-V USB lato host

Figura 7. Suite CtsUsbTypecTestCases nell'app CTS-V USB lato host.

Risolvi i problemi relativi ai test multidevice

Questa sezione ti aiuta a risolvere i problemi più comuni.

Impossibile recuperare il numero di telefono durante CtsTelecomTest

Se ricevi il messaggio di errore Failed to get phone number for <serial>, segui questi passaggi:

  1. Verifica che in ogni DUT sia installata una scheda SIM.

  2. Se l'errore persiste, le schede SIM potrebbero non supportare il recupero automatico del numero. In questo caso, devi fornire esplicitamente i numeri di telefono nel comando.

    Ad esempio, per DUT 1 (numero di serie 17011FDEE0002N, numero di telefono 555-0000) e DUT 2 (numero di serie R3CN90YNAR, numero di telefono 555-1111), aggiungi i seguenti argomenti al comando 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
    

Nessuna risposta dal server durante CtsMultiDeviceGenericRangingAccuracyTests

Se ricevi il seguente messaggio di errore, l'app di test potrebbe essere bloccata o terminata dalla gestione dei processi in background specifica dell'OEM su determinati dispositivi:

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

Per risolvere il problema, disattiva le limitazioni per l'esecuzione in background o inserisci nella lista consentita i seguenti pacchetti:

Pacchetto Nome visualizzato
com.google.snippet.uwb CtsUwbSnippetApp
com.google.snippet.ranging CtsRangingSnippetApp
com.google.snippet.bluetooth CtsBluetoothMultiDeviceSnippetApp
com.google.android.mobly.snippet.bundled androidx.multidex.MultDexApplication

Risolto il problema relativo alla mancata risposta per GetFirmwareVersion durante i test NFC

Se ricevi il messaggio verify_firmware_version RuntimeError: No response for GetFirmwareVersion durante l'esecuzione dei test multidevice, i test non possono accedere alla scheda NFC PN532.

Per risolvere il problema, identifica il percorso seriale utilizzato dalla scheda NFC PN532 sul tuo host, ad esempio dev/ttyUSB1, quindi specificalo manualmente utilizzando l'argomento --module-arg nella console:

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

Correggi il messaggio di errore "Transazione non riuscita" durante i test NFC

Se ricevi il messaggio Transaction failed, check device logs for more information. per tutti gli scenari di test NFC, è probabile che il chip NFC del DUT non riesca a rilevare il PN532.

Se hai più dispositivi connessi all'host e alcuni non hanno un PN532 posizionato sopra, potrebbe essere stato selezionato il DUT sbagliato. Per saperne di più, consulta Configura i test NFC.

Per risolvere il problema, esegui una delle seguenti operazioni:

  • Imposta il numero di serie corretto del DUT nel comando di test lato host utilizzando il flag -s.

  • Scollega tutti i dispositivi non DUT dall'host.

Lo scenario di test CDM test_permissions_sync viene ignorato

Se il test viene eseguito su dispositivi non abilitati al debug, verifica se sei esente. In caso contrario, verifica che entrambi i dispositivi soddisfino i prerequisiti.