اختبار شبكة الجيل الخامس

بالنسبة إلى الأجهزة التي تعمل بالإصدار 11 من نظام التشغيل Android أو الإصدارات الأحدث، تتوافق مجموعة اختبار مراسلات Android (ACTS) مع حالات الاستخدام الأساسية من 5G NSA للبيئات التي تستخدم جهازًا واحدًا أو أجهزة متعددة. تتناول هذه الصفحة آلية رصد نظام ACTS في رصد وضمان اتصال الجهاز بشبكة NSA لشبكة الجيل الخامس، وتقدّم لك نظرة عامة على بنية مسار الاختبار

الرصد

بدءًا من نظام التشغيل Android 11، يتضمّن إطار عمل Android واجهات برمجة التطبيقات لرصد شبكات الجيل الخامس. لمزيد من التفاصيل، يمكنك الاطّلاع على مقالة رصد شبكة الجيل الخامس.

تتوافق "طبقة البرمجة النصية" (SL4A) مع ميزة "رصد شبكة الجيل الخامس" من خلال الاستماع إلى أحداث LISTEN_DISPLAY_INFO_CHANGED من PhoneStateListener وإلغاء طريقة onDisplayInfoChanged(). تستخدم SL4A القيم التالية للتمييز بين أنواع اتصال NSA (غير المستقلة) والموجة الميليمترية (الموجة الميليمترية) وSA (المستقلة) الخاصة بشبكة الجيل الخامس:

نوع الاتصال القيم
شبكة NSA لشبكة الجيل الخامس TechnicalManager.getDataNetworkType() = LTE

TVDisplayInfo.getNetworkType() = LTE

TechnicalDisplayInfo.getOverrideNetworkType() = NR_NSA

5G موجة ميليمترية TechnicalDisplayInfo.getOverrideNetworkType() = NR_MMWAVE
شبكة الجيل الخامس في المملكة العربية السعودية TechnicalManager.getDataNetworkType() = NR

TechnicalDisplayInfo.getNetworkType() = NR

تستخدِم اختبارات ACTS الطريقة is_current_network_5g_nsa() للتأكّد من اتصال الجهاز بشبكة 5G NSA

مسارات الاختبار وبنية الاختبار

إنّ جميع اختبارات الاتصال الهاتفي (+1400) في ACTS هي جزء من دليل tel. تتوفّر اختبارات شبكة الجيل الخامس في دليل tools/test/connectivity/acts\_tests/tests/google/nr/ (اختصار الاختصار nr هو اختصار لعبارة "راديو جديد"). مع إطلاق تقنية الوصول إلى بيانات شبكة الجيل الخامس (5G) (RAT)، أصبحت اختبارات شبكة الجيل الخامس منفصلة عن شبكات الجيل الرابع (4G) والثالث (3G) والجيل الثاني (2G) و1x لبيئات الشبكات المباشرة، وذلك للسماح لاختبارات ACTS بأن تكون قابلة للتطوير ومستقلة.

في ما يلي شرح لفئات الاختبارات المخصَّصة لاختبارات الجيل الخامس.

  • Nsa5gActivationTest: للتحقّق مما إذا كان جهاز واحد يتصل بشكل صحيح بـ 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: للتحقّق من إرسال رسائل الوسائط المتعددة واستلامها بين أجهزة متعددة.

    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" عبر جهاز متصل بـ 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]

تحديد المشاكل وحلّها

لفرز استجابة واجهة برمجة التطبيقات بدون تشغيل اختبار 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}