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 Development Kit لنظام التشغيل Ubuntu.
زيادة الحد الأقصى للذاكرة راجِع متطلبات مساحة التخزين.
إعداد CATBox وتشغيله
استخدِم إطار عمل الاختبار Tradefed لتشغيل الاختبارات على أجهزة Android. قبل إعداد CATBox، يُرجى الاطّلاع على نظرة عامة على Trade Federation.
لإعداد CATBox وتشغيلها، يُرجى الاطّلاع على الأقسام أدناه.
إعداد الجهاز
قبل تنفيذ خطة اختبار، أكمِل الخطوات التالية لإعداد جهازك:
تأكَّد من تثبيت أحدث إصدارات كل من Android Debug Bridge (adb) وأداة تجميع الموارد في Android (AAPT)، بالإضافة إلى إضافة موقع هاتين الأداتين إلى مسار النظام على جهازك. لمزيد من التفاصيل، يُرجى الاطّلاع على ADB و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 |
اختبارات الأداء في 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 |