Тестирование 5G

Для устройств под управлением Android 11 или более поздней версии Android Comms Test Suite (ACTS) поддерживает основные сценарии использования 5G NSA для сред с одним или несколькими устройствами. На этой странице описано, как ACTS обнаруживает и обеспечивает подключение устройства к сети 5G NSA, а также представлен обзор структуры тестового пути.

Обнаружение

Начиная с Android 11, платформа Android включает API для обнаружения 5G. Более подробную информацию см. в разделе Обнаружение 5G .

Уровень сценариев для Android (SL4A) поддерживает обнаружение 5G, прослушивая события LISTEN_DISPLAY_INFO_CHANGED от PhoneStateListener и переопределяя метод onDisplayInfoChanged() . SL4A использует следующие значения, чтобы различать типы соединений NSA (неавтономное), mmWave (миллиметровые волны) и SA (автономное) для 5G:

Тип соединения Ценности
5G АНБ TelephonyManager.getDataNetworkType() = LTE

TelephonyDisplayInfo.getNetworkType() = LTE

TelephonyDisplayInfo.getOverrideNetworkType() = NR_NSA

5G ммволны TelephonyDisplayInfo.getOverrideNetworkType() = NR_MMWAVE
5G SA TelephonyManager.getDataNetworkType() = NR

TelephonyDisplayInfo.getNetworkType() = NR

Тесты ACTS используют метод is_current_network_5g_nsa() , чтобы убедиться, что устройство подключено к сети 5G NSA.

Пути тестирования и структура тестирования

Все тесты телефонии (1400+) в ACTS являются частью каталога tel . Тесты 5G расположены в tools/test/connectivity/acts\_tests/tests/google/nr/ (nr означает новое радио). С появлением технологии радиодоступа 5G (RAT) тесты 5G отделены от 4G, 3G, 2G и 1x для действующих сетевых сред, что позволяет тестам ACTS быть масштабируемыми и независимыми.

Ниже описаны тестовые классы для тестов 5G.

  • Nsa5gActivationTest : проверяет, правильно ли одно устройство подключается к 5G NSA в различных состояниях.

    test_5g_nsa_activation_from_apm test_5g_nsa_activation_from_reboot
    test_5g_nsa_activation_from_3g
    
  • Nsa5gVoiceTest : проверяет функциональность голосовых вызовов между несколькими устройствами.

    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 : проверяет функциональность данных, такую ​​как просмотр, задержка данных и измерение.

    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 : проверяет отправку и получение SMS-сообщений между несколькими устройствами.

    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 : проверяет отправку и получение MMS-сообщений между несколькими устройствами.

    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 : проверяет модем Wi-Fi на устройстве, подключенном к 5G NSA.

    test_5g_nsa_tethering_to_5gwifi test_5g_nsa_tethering_to_2gwifi
    

Пример результатов теста

Чтобы убедиться, что устройство находится в сети 5G NSA, проверьте следующие сообщения журнала в 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]

Поиск неисправностей

Чтобы проверить ответ API без запуска теста ACTS во время сбоя, используйте следующие команды:

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