اختبارات الاتصال الهاتفي من ACTS

تُجري حزمة اختبار التواصل من Android (ACTS) اختبارًا مبرمَجًا لبيانات حزم الاتصال، مثل شبكة Wi-Fi والبلوتوث وخدمات شبكة الجوّال. تتطلّب أداة الاختبار استخدام adb وPython. هذه الأداة متوفّرة في tools/test/connectivity/acts.

توضّح هذه الصفحة طريقة إجراء اختبارات الاتصال الهاتفي الأساسية المتوفّرة في المشروع المفتوح المصدر لنظام Android (AOSP) لمستخدم يمتلك هاتفَين.

المتطلّبات الأساسية

لإجراء اختبارات الاتصال الهاتفي من خلال ACTS، يجب أن تتمكّن من الوصول إلى مستودع Android كامل وتثبيت إصدارات userdebug على الأجهزة التي تريد اختبارها.

تنزيل مستودع Android

اتّبِع التعليمات الواردة في مقالة تنزيل المصدر لتنزيل مستودع Android على جهاز يتضمّن اتصال USB بالأجهزة التي تريد اختبارها.

  • AOSP هو قاعدة رموز متعددة الغيغابايت تستمر في النمو. اضبط توقعاتك بشأن أوقات التنزيل وفقًا لذلك.
    • إذا كان حجم الجهاز محدودًا، أضِف --depth=1 إلى الأمر repo init.
  • للحصول على التحديثات في المستقبل حول أدوات ACTS، انتقِل إلى الدليل الجذري على Android:
    • استخدام repo sync tools/test/connectivity
    • وrepo sync external/sl4a

التحقّق من اعتماد تصحيح أخطاء المستخدم على الأجهزة

ثبِّت إصدار userdebug من Android على الأجهزة الاختبارية.

  • يمكنك إنشاء المستودع باتّباع التعليمات الواردة في إنشاء Android.
  • وميض الجهاز كما هو موضح في وميض جهاز.
    • من المفترض أن يعرض الأمر adb shell getprop ro.build.type القيمة userdebug.
    • إذا لم تكن السمة ro.build.type متاحة، يسمح إصدار userdebug بتشغيل هيكل adb كجذر (الطرف الطرفي #).

إنشاء SL4A وتثبيته

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

بعد إنشاء SLA4، تتضمّن رسالة السجلّ الأخيرة موقع ملف sl4a.apk الذي يجب تثبيته على جميع الأجهزة. إليك مثال على رسالة السجل:

Copy: out/target/path/to/sl4a.apk

ضبط الأجهزة لإجراء الاختبار

اضبط الأجهزة باستخدام متطلبات الإصدار/أداة ACTS التالية:

  • إذا لم تكن مفاتيح مورّد ADB متاحة، انقر على النافذة المنبثقة موثوق به في هذا الكمبيوتر (DUT) في DUT عند ظهورها. في حال توفُّر مفاتيح مورّد ADB:

    • يجب أن تكون مفاتيح وبرامج التشغيل الخاصة بمورّد ADB فريدة لـ DUT.
    • لتفعيل تصحيح أخطاء USB دائمًا، يجب إضافة مفاتيح مورّد ADB في العرض التدرّجي للمصدر إلى ~/.bashrc (أو ما يعادله) باستخدام export ADB_VENDOR_KEYS=/path/to/directory/with/vendor/keys حيث يكون /path/to/directory هو المسار المؤهّل بالكامل على المضيف. لتحديد مشاكل ADB وحلّها، راجِع تشغيل التطبيقات على جهاز.
  • السماح بتصحيح أخطاء الجهاز عبر USB: عند تثبيت برامج تشغيل adb، قد تعرِض أجهزة adb رسالة مطالبة على الجهاز للسماح بتصحيح أخطاء الجهاز عبر USB.

  • تثبيت "sl4a.apk" باستخدام "$ adb install -r <ANDROID_ROOT>/path/to/sl4a.apk"

  • تأكَّد من أنّ الهواتف تستخدم اتصال USB 2.0 بخادم الاختبار.

  • تعتمد هذه الاختبارات على شبكات الجوّال المباشرة، لذا ضع شرائح SIM في الهواتف واحتفظ بالهواتف في منطقة بها خدمة جوّال جيدة.

  • أضِف جميع شرائح SIM إلى ملف JSON كما هو موضَّح في كتابة ملف إعداد.

إعداد البيئة

قبل إعداد البيئة، تحقق من تثبيت إصدار Python 3.4 أو الإصدارات الأحدث.

التشغيل:

sudo apt-get install python3-setuptools
sudo apt-get install python3-pip
sudo pip3 install --upgrade pip setuptools
sudo apt-get install protobuf-compiler

تثبيت ACTS

التشغيل:

cd <ANDROID_ROOT>/tools/test/connectivity/acts/framework/
sudo python3 setup.py develop
cd -

للتحقّق من عملية التثبيت، شغِّل act.py -h، الذي يطبع قائمة بالأوامر المتاحة.

كتابة ملف إعداد

لإجراء الاختبارات، عليك إنشاء ملف يتضمّن معلومات الإعداد. إليك مثال على ملف .config. يتوفّر ملف مشابه في مستودع Android ضمن tools/test/connectivity/acts/framework/sample_config.json. يجب استبدال XXXXXXX بالأرقام التسلسلية للأجهزة لتوفير الحد الأدنى من المعلومات التي تحتاجها مؤسسات ACTS لإجراء اختبار الاتصال الهاتفي.

{
  "_description": "Minimum Telephony Config",
  "testbed":
  [
      {
          "_description": "A testbed listing two AndroidDevices for adb.",
          "name": "ExampleTestBed",
          "AndroidDevice": [{"serial": "XXXXXXX", "adb_logcat_param": "-b all"},
                            {"serial": "XXXXXXX", "adb_logcat_param": "-b all"}]
      }
  ],
  "logpath": "/path/to/logs",
  "testpaths": "/path/to/android/repo/tools/test/connectivity",
  "sim_conf_file": "/path/to/simcard_list.json"
}

استخدِم المفاتيح الواردة في الجدول لضبط مَعلمات الاختبار. راجِع خيارات الإعداد الإضافية للاطّلاع على مزيد من الخيارات.

المفتاح القيمة
_description التعليق على محتوى ملف الإعداد بالكامل
testbed يشير هذا المصطلح إلى مواصفات أي بيئة يمكن إجراء الاختبارات فيها.
(تم اختباره) _description التعليق على كل اختبار، إذ يمكن لنظام ACTS استهداف أجهزة اختبار فردية
(تم اختباره) name اسم المختبر للاتصال من سطر الأوامر
(تم اختباره) AndroidDevice قائمة بالأجهزة المحدّدة التي يستهدفها الاختبار
ملاحظة: قد يتم إدراج أجهزة متعددة. ويتوقع الاختبار الذي يجري الاتصالات ببعضها البعض وجود جهازين ويفشل إذا كان عدد الأجهزة أقل. إذا كان هناك جهازان مدرجان، ويتوقّع الاختبار جهازًا واحدًا فقط، يتم إجراء هذا الاختبار على الجهاز الأول.
(testbed)(AndroidDevice) serial الرقم التسلسلي للجهاز (تمت طباعته من adb devices)
(testbed)(AndroidDevice) adb_logcat_param المَعلمات التي يتم ضبطها عند استدعاء الدالة adb logcat أثناء الاختبار
logpath موقع حفظ السجلات على خادم الاختبار
testpaths موقع رمز حالة الاختبار
sim_conf_file موقع ملف .json الذي يعرض شرائح SIM المتاحة
تتضمّن قائمة شرائح SIM رقم تعريف البطاقة وإمكانات البطاقة ومشغّل شبكة الجوّال ورقم الهاتف.
{
    "sim-card-ID-here": {
        "capability": [
            "voice",
            "ims",
            "volte",
            "vt",
            "sms",
            "tethering",
            "data"
        ],
        "operator": "tmo",
        "phone_num": "12345678901"
    },
...
}

يمكنك سحب رقم الهاتف من الجهاز ضمن النظام > لمحة عن الهاتف. وتتم طباعة معرّف شريحة SIM بشكل عام على شريحة SIM، أو يتوفر من الجهاز ضمن النظام > حول الهاتف > حالة شريحة SIM. يتم تحديد سلسلة عامل التشغيل على tools/test/connectivity/acts_tests/acts_contrib/test_utils/tel/tel_defines.py، ثم البحث عن CARRIER_.

خيارات الضبط الإضافية

يتضمّن ملف entries.py المتوفّر على tools/test/connectivity/acts/framework/acts/config/entries.py في مستودع Android تعريفات لخيارات ضبط سطر الأوامر الرئيسي.

يمكنك أيضًا العثور على المعلَمات المحدّدة للاختبارات في الرمز من خلال البحث عن self.user_params.get.

إجراء الاختبارات

أجرِ الاختبارات من سطر الأوامر بعد كتابة ملف الإعداد. في حين أنّ هناك الكثير من الخيارات، أبسطها هو استخدام -c filename.config -tc TestCase:name. يستخدم هذا المثال ملف إعداد باسم minimum.config:

act.py -c minimum.config -tc TelLiveVoiceTest:test_call_mo_voice_general

يجب أن يكون لإجراء الاختبار الناجح رسالة ناتج نهائية مثل هذه:

INFO Summary for test run ExampleTestBed@yyyy-mm-dd_15-23-43-614: Requested 1,
Executed 1, Passed 1, Failed 0, Skipped 0, Error 0

إجراء اختبارات متعددة

لإجراء حالات اختبار معيّنة على عدة ملفات، أنشئ ملف اختبار ومرِّره باستخدام العلامة -tf، كما هو موضّح في مثال مجموعة اختبار الانحدار:

TelLiveVoiceTest:
test_call_mo_voice_general,
test_call_volte_to_volte,
test_call_3g_to_3g

TelLiveDataTest:
test_airplane_mode,
test_4g,
test_3g

TelLiveSmsTest:
test_sms_mo_4g,
test_sms_mt_4g,
test_sms_mo_3g,
test_sms_mt_3g,
test_mms_mo_4g,
test_mms_mt_4g

في هذا المثال على الأمر، يجب تسمية الملف باسم regression_suite..

act.py -c minimum.config -tf regression_suite

إجراء الاختبارات عدة مرات

لتشغيل حالة اختبار (-tc) أو ملف اختبار (-tf) عدّة مرات، أضِف -ti # (تكرارات اختبارية) إلى الأمر.