إكمال اختبارات السيارات في صندوق

Complete Automotive Tests in a Box (CATBox) هي حزمة مفتوحة المصدر توفر الإطارات والأدوات المطلوبة لتبسيط تنفيذ اختبارات المركبات وتنفيذها بأقل قدر من الإعداد. يمكن توسيع نطاق CATBox وهو متوافق مع الأدوات والبنية الأساسية والاختبارات التي تستخدمها لاختبار عمليات تنفيذ نظام التشغيل Android Automotive (AAOS) والتحقّق منها. ونتيجةً لذلك، يمكنك تقديم منتجات عالية الجودة إلى السوق.

تصميم CATBox وتنفيذه

توفّر مجموعة اختبارات CATBox الأدوات والأُطر والاختبارات اللازمة لمحاولة تنفيذ اختبارات الأداء والوظائف على جهاز مستهدَف للسيارات أثناء استخدام جهاز مصاحب.

توضِّح الصورة التالية تصميمًا عالي المستوى لحزمة CATBox.

CATBox

الشكل 1: حزمة CATBox

Tradefed

Tradefed هو إطار عمل اختبار مستمر مفتوح المصدر يُستخدَم لتنفيذ الاختبارات على أجهزة Android. لمعرفة التفاصيل، يُرجى الاطّلاع على نظرة عامة على اتحاد التجارة.

إطار عمل اختبار السيارات

يستند CATBox إلى إطار عمل اختبار للسيارات يُسمى Spectatio، والذي يقدّم واجهات برمجة تطبيقات لاختبار التطبيقات المختلفة على الأجهزة المخصّصة للسيارات. تم إنشاؤه على أساس 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:

إنشاء CATBox

استخدِم الأمر catbox build بعد توفُّر رمز Android AOSP على محطة العمل المحلية.

لإنشاء حزمة CATBox على الجهاز:

  1. اختَر استهداف الجهاز استنادًا إلى بنية الجهاز ونفِّذ العبارة التالية:

    lunch <target>
    
  2. لإنشاء CATBox، شغِّل الأمر التالي:

    make catbox
    

    ينشئ هذا الأمر ملف android-catbox.zip في الدليل /out/host/linux-x86/catbox، والذي يمكن استخدامه بعد ذلك لإجراء الاختبارات.

إعداد البيئة

يشبه إعداد البيئة المطلوب لتنفيذ اختبارات CATBox إعداد مجموعة أدوات اختبار التوافق (CTS). لإعداد البيئة، أكمِل كلًّا من المهام التالية:

إعداد CATBox وتشغيله

استخدِم إطار عمل اختبار Tradefed لإجراء الاختبارات على أجهزة Android. قبل إعداد CATBox، اطّلِع على نظرة عامة على اتحاد التجارة.

لإعداد CATBox وتشغيله، يُرجى الاطّلاع على الأقسام أدناه.

إعداد الجهاز

قبل تنفيذ خطة اختبار، أكمِل الخطوات التالية لإعداد جهازك:

  1. تأكَّد من تثبيت أحدث إصدارَين من كلّ من Android Debug Bridge (adb) وأداة تجميع الموارد في Android (AAPT)، بالإضافة إلى إضافة موقع هذه الأدوات إلى مسار النظام في جهازك. لمعرفة التفاصيل، يُرجى الاطّلاع على ADB وAAPT.

  2. عليك توصيل جهاز واحد على الأقل وإعداد الجهاز الذي يتم اختباره (DUT) على النحو التالي:

    1. لإعادة ضبط الجهاز على الإعدادات الأصلية، انتقِل إلى الإعدادات > النظام > خيارات إعادة الضبط > محو جميع البيانات.

    2. انتظِر إلى أن تتم إعادة تشغيل الجهاز تلقائيًا.

    3. تأكَّد من تفعيل adb. للتأكّد من توفّر الجهاز، شغِّل الأمر التالي:

      adb devices
      
    4. لتفعيل إذن الوصول إلى الجذر، شغِّل الأمر التالي:

      adb -s DEVICE_SERIAL root
      

      استبدِل DEVICE_SERIAL بالرقم التسلسلي لجهاز المركبة.

    5. اتصِل بشبكة 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 الاختبارات الوظيفية لـ Media Center
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 اختبار أداء بدء تشغيل التطبيق من جديد في Media Center
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 اختبار أداء بدء تشغيل التطبيقات بسرعة في Media Center
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