Test del 5G

Per i dispositivi con Android 11 o versioni successive, la suite di test Android Comms Test Suite (ACTS) supporta i principali casi d'uso 5G NSA per ambienti con uno o più dispositivi. Questa pagina spiega in che modo ACTS rileva e garantisce che un dispositivo sia connesso a una rete 5G NSA e fornisce una panoramica della struttura del percorso di test

Rilevamento

A partire da Android 11, il framework Android include API per rilevare il 5G. Per maggiori dettagli, consulta la sezione Rilevamento 5G.

Scripting Layer per Android (SL4A) supporta il rilevamento 5G mediante l'ascolto degli eventi LISTEN_DISPLAY_INFO_CHANGED da PhoneStateListener e l'override del metodo onDisplayInfoChanged(). SL4A utilizza i seguenti valori per distinguere tra i tipi di connessione NSA (non-standalone), mmWave (onda millimetrica) e SA (standalone) per il 5G:

Tipo di connessione Valori
5G NSA TelephonyManager.getDataNetworkType() = LTE

TelephonyDisplayInfo.getNetworkType() = LTE

TelephonyDisplayInfo.getOverrideNetworkType() = NR_NSA

5G mmWave TelephonyDisplayInfo.getOverrideNetworkType() = NR_MMWAVE
5G SA TelephonyManager.getDataNetworkType() = NR

TelephonyDisplayInfo.getNetworkType() = NR

I test ACTS utilizzano il metodo is_current_network_5g_nsa() per verificare che il dispositivo sia connesso a una rete 5G NSA

Percorsi di test e struttura di test

Tutti i test di telefonia (oltre 1400) in ACTS fanno parte della directory tel. I test 5G si trovano nella directory tools/test/connectivity/acts\_tests/tests/google/nr/ (nr sta per nuova radio). Con l'introduzione della tecnologia di accesso radio 5G (RAT), i test 5G sono separati da 4G, 3G, 2G e 1x per gli ambienti di rete in tempo reale per consentire ai test ACTS di essere scalabili e indipendenti.

Di seguito sono descritte le classi di test per i test del 5G.

  • Nsa5gActivationTest: verifica se un singolo dispositivo si connette correttamente al 5G NSA da diversi stati.

    test_5g_nsa_activation_from_apm test_5g_nsa_activation_from_reboot
    test_5g_nsa_activation_from_3g
    
  • Nsa5gVoiceTest: verifica la funzionalità di chiamata vocale tra più dispositivi.

    test_5g_nsa_call_volte_to_volte test_5g_nsa_call_volte_to_3g
    test_5g_nsa_call_volte_mo_hold_unhold
    test_5g_nsa_call_mo_volte_in_active_data_transfer
    test_5g_nsa_volte_in_call_wifi_toggling
    
  • Nsa5gDataTest: verifica la funzionalità dei dati come la navigazione, il blocco dei dati e la misurazione.

    test_5g_nsa_data_browsing test_5g_nsa_data_stall_recovery
    test_5g_nsa_metered_cellular test_5g_nsa_metered_airplane
    test_5g_nsa_metered_wifi
    
  • Nsa5gSmsTest: verifica l'invio e la ricezione di messaggi SMS tra più dispositivi.

    test_5g_nsa_sms_mo_mt test_5g_nsa_sms_mo_mt_volte
    test_5g_nsa_sms_mo_mt_in_call_volte test_5g_nsa_sms_mo_mt_iwlan
    test_5g_nsa_sms_mo_mt_in_call_iwlan
    
  • Nsa5gMmsTest: verifica l'invio e la ricezione di messaggi MMS tra più dispositivi.

    test_5g_nsa_mms_mo_mt test_5g_nsa_mms_mo_mt_in_call_volte
    test_5g_nsa_mms_mo_mt_iwlan_apm_off test_5g_nsa_mms_mo_mt_in_call_iwlan
    test_5g_nsa_mms_mo_mt_in_call_volte_wifi
    
  • Nsa5gTetheringTest: verifica il tethering Wi-Fi su un dispositivo connesso a 5G NSA.

    test_5g_nsa_tethering_to_5gwifi test_5g_nsa_tethering_to_2gwifi
    

Esempio di output del test

Per verificare che un dispositivo sia su 5G NSA, controlla i seguenti messaggi di log in test_run_info.txt.

INFO [AndroidDevice|<SERIAL_ID>] Current ModePref for Sub 2 is in
NETWORK_MODE_NR_LTE_GSM_WCDMA [tel_test_utils.py:set_preferred_network_mode_pref:7634]
INFO [AndroidDevice|<SERIAL_ID>] Got expected event {'name': 'DisplayInfoChanged',
'data': {'override': 'NR_NSA', 'network': 'LTE', 'subscriptionId': 2147483647},
'time': 1611094526689} [tel_5g_utils.py:is_current_network_5g_nsa:58]

Risoluzione dei problemi

Per eseguire il triage della risposta dell'API senza eseguire un test ACTS durante l'errore, utilizza i seguenti comandi:

>> python3
>> from acts.controllers.android_device import AndroidDevice; ad = AndroidDevice('<SERIAL_ID>'); a, b = ad.get_droid()
>> a.telephonyStartTrackingDisplayInfoChange()
>> b.start()
>> b.wait_for_event("DisplayInfoChanged", lambda _: True, timeout=30)

{'name': 'DisplayInfoChanged', 'data': 'TelephonyDisplayInfo {network=LTE, override=LTE_CA, 'time': 1586483596907}