يقوم Android Comms Test Suite (ACTS) بإجراء اختبار تلقائي لمكدسات الاتصال، مثل Wi-Fi وBluetooth والخدمات الخلوية. تتطلب أداة الاختبار adb . وPython، ويمكن العثور عليها في tools/test/connectivity/acts
.
توضح هذه الصفحة كيفية تشغيل اختبارات الاتصال الهاتفي الأساسية المتوفرة في Android Open Source Project (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
لإنشاء طبقة البرمجة النصية لنظام Android (SL4A) وتثبيتها، اتبع الإرشادات الموجودة في طبقة البرمجة النصية لنظام Android . يعد قسم إضافة إصدارات SL4A إلى إصدارات Android افتراضيًا اختياريًا.
بعد إنشاء SLA4، تحتوي رسالة السجل الأخيرة على موقع ملف sl4a.apk
، الذي تحتاج إلى تثبيته على جميع الأجهزة. فيما يلي مثال لرسالة السجل:
Copy: out/target/path/to/sl4a.apk
تكوين الأجهزة للاختبار
قم بتكوين الأجهزة باستخدام متطلبات إنشاء/أداة ACTS هذه:
إذا كانت مفاتيح بائع ADB غير متوفرة، فانقر فوق النافذة المنبثقة Trust this Computer على 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
تثبيت الأفعال
يجري:
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 ) |
(اختبار)(جهاز Android) 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 #
(تكرارات الاختبار) إلى الأمر.