Testowanie 5G

W przypadku urządzeń z systemem Android 11 lub nowszym pakiet Android Comms Test Suite (ACTS) obsługuje podstawowe przypadki użycia 5G NSA w środowiskach z jednym i wieloma urządzeniami. Na tej stronie opisano, w jaki sposób ACTS wykrywa i zapewnia połączenie urządzenia z siecią 5G NSA, a także zawiera przegląd struktury ścieżki testowej

Wykrycie

Począwszy od Androida 11, platforma Androida zawiera interfejsy API do wykrywania 5G. Więcej informacji znajdziesz w artykule Wykrywanie 5G .

Warstwa skryptowa dla systemu Android (SL4A) obsługuje wykrywanie sieci 5G, nasłuchując zdarzeń LISTEN_DISPLAY_INFO_CHANGED z PhoneStateListener i zastępując metodę onDisplayInfoChanged() . SL4A wykorzystuje następujące wartości do rozróżnienia typów połączeń NSA (niesamodzielnych), mmWave (fala milimetrowa) i SA (samodzielnych) dla 5G:

Rodzaj połączenia Wartości
NSA 5G TelephonyManager.getDataNetworkType() = LTE

TelephonyDisplayInfo.getNetworkType() = LTE

TelephonyDisplayInfo.getOverrideNetworkType() = NR_NSA

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

TelephonyDisplayInfo.getNetworkType() = NR

Testy ACTS wykorzystują metodę is_current_network_5g_nsa() w celu sprawdzenia, czy urządzenie jest podłączone do sieci 5G NSA

Ścieżki testowe i struktura testów

Wszystkie testy telefonii (1400+) w ACTS są częścią katalogu tel . Testy 5G znajdują się w katalogu tools/test/connectivity/acts\_tests/tests/google/nr/ (nr oznacza nowe radio). Wraz z wprowadzeniem technologii dostępu radiowego 5G (RAT) testy 5G są oddzielone od 4G, 3G, 2G i 1x w środowiskach sieciowych działających na żywo, aby umożliwić skalowalność i niezależność testów ACTS.

Poniżej opisano zajęcia testowe dla testów 5G.

  • Nsa5gActivationTest : sprawdza, czy pojedyncze urządzenie prawidłowo łączy się z 5G NSA z różnych stanów.

    test_5g_nsa_activation_from_apm test_5g_nsa_activation_from_reboot
    test_5g_nsa_activation_from_3g
    
  • Nsa5gVoiceTest : weryfikuje funkcjonalność połączeń głosowych między wieloma urządzeniami.

    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 : weryfikuje funkcjonalność danych, taką jak przeglądanie, blokowanie danych i pomiar.

    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 : weryfikuje wysyłanie i odbieranie wiadomości SMS pomiędzy wieloma urządzeniami.

    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 : weryfikuje wysyłanie i odbieranie wiadomości MMS między wieloma urządzeniami.

    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 : weryfikuje tethering Wi-Fi przez urządzenie podłączone do 5G NSA.

    test_5g_nsa_tethering_to_5gwifi test_5g_nsa_tethering_to_2gwifi
    

Przykładowe wyjście testowe

Aby potwierdzić, że urządzenie jest podłączone do sieci 5G NSA, sprawdź następujące komunikaty dziennika w 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]

Rozwiązywanie problemów

Aby dokonać selekcji odpowiedzi API bez uruchamiania testu ACTS w przypadku awarii, użyj następujących poleceń:

>> 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}