Complete Automotive Tests in a Box (CATBox) هي حزمة مفتوحة المصدر توفّر الأُطر والأدوات اللازمة لتبسيط اختبارات السيارات وتنفيذها بأقل قدر من الإعدادات. تتسم CATBox بقابلية التوسّع والتوافق مع الأدوات والبنية الأساسية والاختبارات التي تستخدمها لاختبار عمليات تنفيذ Android Automotive OS (AAOS) والتحقّق من صحتها. نتيجةً لذلك، يمكنك توفير منتجات عالية الجودة في السوق.
تصميم CATBox وتنفيذه
توفر حزمة اختبارات CATBox الأدوات وأُطر العمل والاختبارات اللازمة لتنفيذ اختبارات الوظائف والأداء على جهاز اختبار خاص بالسيارة وأثناء استخدام جهاز مصاحب.
توضّح الصورة التالية تصميمًا عالي المستوى لحزمة CATBox.
الشكل 1: حزمة CATBox
Tradefed
Tradefed هو إطار عمل مفتوح المصدر للاختبار المستمر يُستخدم لتنفيذ الاختبارات على أجهزة Android. لمزيد من التفاصيل، يُرجى الاطّلاع على نظرة عامة على Trade Federation.
إطار عمل اختبار السيارات
تستند CATBox إلى إطار عمل اختبار Automotive يُسمى Spectatio، والذي يوفّر واجهات برمجة تطبيقات لاختبار مختلف التطبيقات على أجهزة Automotive. ويستند إلى UI Automator، وهو إطار عمل مفتوح المصدر للاختبار، يوفّر مجموعة من واجهات برمجة التطبيقات لإنشاء اختبارات واجهة المستخدم التي تتفاعل مع تطبيقات المستخدم والنظام.
تنزيل مجموعة اختبارات CATBox
Android 14
Android Automotive 14 هو إصدار من مرحلة التطوير التي تحمل الاسم الرمزي U. استخدِم الروابط التالية لتنزيل حِزم اختبار CATBox لنظام التشغيل Android 14:
Android 12
Android 12 هو إصدار من مرحلة التطوير الرئيسية التي تحمل الاسم الرمزي S. استخدِم الروابط التالية لتنزيل حِزم اختبار CATBox لنظام التشغيل Android 12:
Android 11
Android 11 هو إصدار من رمز مرحلة التطوير الذي يحمل الاسم الرمزي R. استخدِم الروابط التالية لتنزيل مجموعات اختبار CATBox لنظام التشغيل Android 11:
Build CATBox
استخدِم أمر الإنشاء catbox بعد توفّر رمز Android AOSP على محطة العمل المحلية.
لإنشاء حزمة CATBox محليًا، اتّبِع الخطوات التالية:
اختَر "استهداف الجهاز" استنادًا إلى بنية الجهاز ونفِّذ الأمر التالي:
lunch <target>لإنشاء CATBox، شغِّل الأمر التالي:
make catboxينشئ هذا الأمر الملف
android-catbox.zipفي الدليل/out/host/linux-x86/catbox، ويمكن استخدامه بعد ذلك لتنفيذ الاختبارات.
إعداد البيئة
إنّ عملية إعداد البيئة المطلوبة لتنفيذ اختبارات CATBox تشبه إعداد مجموعة أدوات اختبار التوافق (CTS). لإعداد البيئة، عليك إكمال كل من المهام التالية:
ثبِّت ADB وAAPT.
ثبِّت JDK. يمكنك الاطّلاع على حزمة تطوير Java لنظام التشغيل Ubuntu.
زيادة الحد الأقصى للذاكرة متطلبات مساحة التخزين
إعداد CATBox وتشغيله
استخدِم إطار عمل الاختبار Tradefed لتشغيل الاختبارات على أجهزة Android. قبل إعداد CATBox، يُرجى الاطّلاع على نظرة عامة على Trade Federation.
لإعداد CATBox وتشغيله، يُرجى الاطّلاع على الأقسام أدناه.
إعداد الجهاز
قبل تنفيذ خطة اختبار، أكمِل الخطوات التالية لإعداد جهازك:
تأكَّد من تثبيت أحدث إصدارات كل من Android Debug Bridge (adb) وأداة تجميع الموارد في Android (AAPT)، بالإضافة إلى إضافة موقع هاتين الأداتين إلى مسار النظام على جهازك. لمزيد من التفاصيل، يُرجى الاطّلاع على أداة تصحيح أخطاء Android (ADB) وأداة Android Asset Packaging Tool (AAPT).
وصِّل جهازًا واحدًا على الأقل وأعِدّ الجهاز قيد الاختبار (DUT) باتّباع الخطوات التالية:
لإعادة ضبط الجهاز المخصّص للسيارة على الإعدادات الأصلية، انتقِل إلى الإعدادات > النظام > خيارات إعادة الضبط > محو جميع البيانات.
انتظِر إلى أن تتم إعادة تشغيل الجهاز تلقائيًا.
تأكَّد من تفعيل تصحيح أخطاء adb. للتأكّد من توفّر الجهاز، شغِّل الأمر التالي:
adb devicesلتفعيل الجذر، شغِّل الأمر التالي:
adb -s DEVICE_SERIAL rootاستبدِل
DEVICE_SERIALبمعرّف الرقم التسلسلي لجهاز السيارة.اتصِل بشبكة Wi-Fi.
استخراج حزمة CATBox
بعد إعداد الجهاز، فكّ ضغط حزمة CATBox وانتقِل إلى المجلد الذي تم استخراجه:
unzip android-catbox.zip
cd android-catboxتنفيذ الاختبارات في CATBox
لتشغيل CATBox باستخدام خطط الاختبار في حزمة CATBox، اتّبِع الخطوات التالية:
./tools/catbox-tradefed run commandAndExit TEST_PLAN_NAME --serial DEVICE_SERIALاستبدِل DEVICE_SERIAL بمعرّف الرقم التسلسلي لجهاز السيارة. إذا كانت لديك أجهزة متعددة متصلة بالجهاز المضيف، استخدِم DEVICE_SERIAL للتمييز بينها. استبدِل
TEST_PLAN_NAME باسم خطة الاختبار التي تريد
تنفيذها.
للحصول على قائمة كاملة بالخطط المتاحة، استخدِم سطر الأوامر:
./tools/catbox-tradefed list plans | grep -i catboxأنواع خطط الاختبار
يعرض الجدول التالي خطط اختبار الوظائف المتاحة.
| خطط الاختبار الوظيفي | الوصف |
|---|---|
catbox-functional |
الاختبارات الوظيفية |
catbox-functional-app-info-setting |
اختبارات وظيفية لإعدادات معلومات التطبيقات |
catbox-functional-admin-user-grant-permissions |
الاختبارات الوظيفية لمنح الأذونات لمستخدم مشرف |
catbox-functional-app-info-setting-ui-elements |
اختبارات وظيفية لإعدادات معلومات التطبيقات |
catbox-functional-appgrid |
الاختبارات الوظيفية لشبكة التطبيقات |
catbox-functional-base |
قائمة الاختبارات الوظيفية |
catbox-functional-bluetooth-audio |
الاختبارات الوظيفية للصوت عبر البلوتوث |
catbox-functional-bluetooth-palette |
اختبارات وظيفية لشريط الحالة |
catbox-functional-bluetooth-tests |
اختبارات البلوتوث باستخدام Mobly |
catbox-functional-brightness-palette |
اختبارات وظيفية لشريط الحالة |
catbox-functional-btmoped |
اختبارات وظيفية تستند إلى دراجة بخارية مزوّدة بتقنية البلوتوث |
catbox-functional-date-time-setting |
اختبارات وظيفية لإعدادات التاريخ والوقت |
catbox-functional-dial |
اختبارات وظائف الاتصال |
catbox-functional-display-setting |
الاختبارات الوظيفية لإعدادات العرض |
catbox-functional-driving-optimized-apps |
الاختبارات الوظيفية لقيود تجربة المستخدم |
catbox-functional-enable-developers-option |
تفعيل اختبارات الوظائف لخيارات المطوّرين |
catbox-functional-home |
الاختبارات الوظيفية المنزلية |
catbox-functional-lock-screen |
اختبارات الوظائف على شاشة القفل |
catbox-functional-mediacenter |
اختبارات وظائف "مركز الوسائط" |
catbox-functional-microphone-recent-apps |
اختبارات وظيفية لإعدادات الميكروفون |
catbox-functional-microphone-setting |
اختبارات وظيفية لإعدادات الميكروفون |
catbox-functional-multiuser |
اختبارات وظيفية متعددة المستخدمين |
catbox-functional-multiuser-system-user |
اختبارات وظيفية متعددة المستخدمين |
catbox-functional-navigation-bar |
اختبارات وظيفية لشريط التنقّل |
catbox-functional-network-palette |
اختبارات وظيفية لشريط الحالة |
catbox-functional-network-setting |
الاختبارات الوظيفية لإعدادات الشبكة |
catbox-functional-notification |
اختبارات وظائف الإشعارات |
catbox-functional-privacy-permission-manager |
اختبارات وظيفية لإعدادات أذونات تطبيقات الخصوصية |
catbox-functional-privacy-setting |
اختبارات وظيفية لإعدادات الميكروفون |
catbox-functional-privacy-setting-ui-elements |
اختبارات وظيفية لإعدادات الخصوصية |
catbox-functional-profile-icon |
اختبارات وظيفية لشريط رموز الملف الشخصي |
catbox-functional-profiles-icon-list |
اختبارات قائمة رموز الملفات الشخصية |
catbox-functional-security-setting |
الاختبارات الوظيفية لإعدادات الأمان |
catbox-functional-setting |
ضبط الاختبارات الوظيفية |
catbox-functional-settings-location |
اختبارات إعداد الموقع الجغرافي |
catbox-functional-sound-setting |
اختبارات وظيفية لإعدادات الصوت |
catbox-functional-status-bar |
اختبارات وظيفية لشريط الحالة |
catbox-functional-storage-setting |
اختبارات وظيفية لإعدادات مساحة التخزين |
catbox-functional-system-setting |
الاختبارات الوظيفية لإعدادات النظام |
catbox-functional-systemui |
اختبارات واجهة مستخدم النظام |
catbox-functional-ux-restriction |
الاختبارات الوظيفية لقيود تجربة المستخدم |
catbox-functional-ux-restriction-facet-bar |
الاختبارات الوظيفية لقيود تجربة المستخدم |
يسرد الجدول التالي خطط اختبار الأداء في CATBox.
| خطط اختبار الأداء | الوصف |
|---|---|
catbox-performance-cold-app-start-up-dialer |
اختبار أداء بدء تشغيل تطبيقَي "طلب الهاتف" و"الهاتف" على البارد |
catbox-performance-cold-app-start-up-mediacenter |
اختبار أداء بدء تشغيل التطبيق البارد لـ "مركز الوسائط" |
catbox-performance-cold-app-start-up-settings |
اختبار أداء بدء تشغيل التطبيق البارد للإعدادات |
catbox-performance-create-and-switch-to-new-guest |
قياس وقت الاستجابة للتبديل إلى ضيف جديد |
catbox-performance-create-and-switch-to-new-user |
قياس وقت الاستجابة للتبديل إلى مستخدم جديد غير مشرف |
catbox-performance-hot-app-start-up-dialer |
اختبار أداء بدء تشغيل التطبيقات السريع لتطبيقَي "طلب الهاتف" و"الهاتف" |
catbox-performance-hot-app-start-up-mediacenter |
اختبار أداء بدء تشغيل التطبيق السريع لـ "مركز الوسائط" |
catbox-performance-hot-app-start-up-settings |
اختبار أداء بدء تشغيل تطبيق "الإعدادات" السريع |
catbox-performance-jank-appgrid |
اختبار الأداء لـ Appgrid |
catbox-performance-jank-contact-list |
اختبار الأداء لتطبيق "جهات الاتصال" |
catbox-performance-jank-media |
اختبارات الأداء للوسائط |
catbox-performance-jank-media-switch-playback |
اختبار الأداء لتشغيل الوسائط والتبديل بينها |
catbox-performance-jank-notifications |
اختبار الأداء للإشعارات |
catbox-performance-jank-settings |
اختبار الأداء لتطبيق "الإعدادات" |
catbox-performance-switch-to-existing-user |
قياس وقت الاستجابة للتبديل إلى مستخدم حالي |
إجراء اختبار على جانب الجهاز المضيف
يستخدم تنفيذ الاختبارات على جانب المضيف على أجهزة متعددة CATBox لتشغيل الاختبار
في جلسة واحدة. على سبيل المثال، BTDiscoveryTest:
make catbox
./tools/catbox-tradefed run commandAndExit catbox-functional-bluetooth-tests --{phone}serial <serial> --{auto}serial <serial> --mobly-host:mobly-par-file-name BTDiscoveryTestتثبِّت CATBox apk ثم يتم تشغيل الاختبار في بيئة تنفيذ Python الصحيحة.
مراجعة نتائج اختبار CATBox
يتم حفظ نتائج عمليات اختبار الأداء والوظائف في
android-catbox/results/latest.
| نوع النتيجة | الموقع الجغرافي |
|---|---|
| نتائج الاختبار | test_result.xml |
| تفاصيل اختبارات التعذُّر | test_result_failures_suite.html |
| نتائج مقاييس الأداء | /report-log-files/CatboxPerformanceTests.reportlog.json |
| عمليات تشغيل الاختبارات الوظيفية واختبارات الأداء | /android-catbox/logs/latest |