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

تُجري مجموعة أدوات اختبار الاتصالات في Android (ACTS) اختبارًا مبرمَجًا لحِزم الاتصال، مثل Wi-Fi وBluetooth والخدمات الخلوية. تتطلّب أداة الاختبار استخدام 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 على الأجهزة

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

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

إنشاء حزمة SL4A وتثبيتها

لإنشاء وتركيب Scripting Layer For Android ‏ (SL4A)، اتّبِع التعليمات الواردة في Scripting Layer for Android. القسم إضافة إصدارات SL4A إلى إصدارات Android تلقائيًا اختياري.

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

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

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

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

  • إذا لم تكن مفاتيح ADB الخاصة بجهات التصنيع متاحة، انقر على النافذة المنبثقة الوثوق بهذا الكمبيوتر على جهاز 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 كما هو موضَّح في كتابة ملف إعداد.

إعداد البيئة

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

التشغيل:

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 # (عمليات تكرار الاختبار) إلى الأمر.