وحدة مساعد تفاعل جهاز CTS ، وحدة مساعد تفاعل جهاز CTS

بالنسبة لنظام التشغيل Android 11 أو الإصدارات الأحدث، تتيح لك الوحدات المساعدة لتفاعل جهاز اختبار التوافق (CTS) تخصيص كيفية تفاعل بعض اختبارات CTS مع واجهة المستخدم (UI) على جهاز معين. وهذا يعني أن الإجراءات، مثل استبدال عنصر واجهة المستخدم الذي لا يغطيه مستند تعريف توافق Android (CDD) أو مستندات API، يمكن تنفيذها أثناء تمرير CTS.

قد يتمكن مصنعو المعدات الأصلية الذين يرغبون في تخصيص واجهة مستخدم Android أثناء تطوير المنتج ويحتاجون إلى اجتياز CTS من تنفيذ الوحدات النمطية المساعدة. إذا كنت تستخدم تطبيق Android الافتراضي، فلن تكون هناك حاجة إلى أي عمل إضافي.

تنفيذ الوحدات المساعدة

متطلبات تخصيص واجهة المستخدم

تحقق من وحدات CDD أو Mainline لمعرفة أي متطلبات لواجهة المستخدم. إذا كانت واجهة المستخدم المطلوبة مغطاة بوحدات CDD أو Mainline، فلا يمكن تخصيص واجهة المستخدم هذه.

إذا كانت اختبارات CTS التي تتفاعل مع واجهة المستخدم المطلوبة لا تستخدم إطار العمل المساعد، فلا يمكن تخصيص واجهة المستخدم تلك. اعمل مع مالك الاختبار لتحويل وحدة الاختبار قبل أن تتمكن من تغيير واجهة المستخدم.

بخلاف ذلك، يمكنك تخصيص واجهة المستخدم.

سير عمل التنفيذ

  1. قم بتخصيص واجهة المستخدم حسب الحاجة لمنتجك المحدد.
  2. قم بتعيين الوحدات النمطية المساعدة AOSP الموجودة كفئات فرعية لوحدات اختبار CTS التي تحتاج إلى التفاعل مع واجهة المستخدم. استبدل التفاعلات الضرورية بشكل مناسب لواجهة المستخدم المخصصة. تختلف الاستبدالات حسب نوع التغييرات.
    • توجد فئات OEM الفرعية في حزمة OEM، مثل com.[oem].cts.helpers .
    • تتم تسمية كل فئة فرعية من فئة OEM ببادئة شائعة تميزها عن تطبيق AOSP، الذي له Default الافتراضية.
  3. قم ببناء المساعدين في ملف APK باتباع اصطلاحات اختبار الاختبار هذه.
    • يجب أن يعلن Android.bp عن android_test_helper_app بنفس اسم الحزمة المضمنة.
    • يجب أن يعلن AndroidManifest.xml لملف APK عن خاصية بيانات وصفية تُسمى interaction-helpers-prefix مع قيمة بادئة الفئة التي تم اختيارها في النقطة السابقة.
    • يجب أن يعتمد التطبيق على cts-helpers-core و cts-helpers-interfaces و com.android.cts.helpers.aosp . إذا قام مساعدو OEM بتنفيذ جميع الواجهات ذات الصلة بشكل كامل، فإن com.android.cts.helpers.aosp يكون اختياريًا.
  4. قم بتعيين خاصية ro.vendor.cts_interaction_helper_packages في صورة الجهاز لتضمين اسم APK. إذا كنت بحاجة إلى فصل تطبيقات المساعد الخاص بك عبر ملفات APK متعددة، فيمكن أن تحتوي هذه الخاصية على قائمة حزم مفصولة بنقطتين.
  5. تأكد من توفر APK في دليل testcases عند تشغيل Tradefed for CTS. إذا لزم الأمر، تأكد من اختيار فئة تنفيذ المساعد المتوقعة عن طريق فحص رسائل السجل.
  6. اختياري، لكن موصى به للغاية: قم بإرسال تطبيق المساعد الخاص بك إلى AOSP أو اجعله متاحًا لاختبار الطرف الثالث.

مثال على تنفيذ المساعد

على سبيل المثال، يتوقع CtsPrintTestCases مساعدًا له واجهة محددة في ICtsPrintHelper . يُطلق على تطبيق AOSP اسم com.android.cts.helpers.aosp.DefaultCtsPrintHelper .

إذا قمت بتخصيص واجهة مستخدم الطباعة، فيمكنك إنشاء com.oem.cts.helpers.OemCtsPrintHelper الذي يصنف الفئات الفرعية DefaultCtsPrintHelper . يُسمى android_test_helper_app في Android.bp com.oem.cts.helpers ، والذي ينتج com.oem.cts.helpers.apk ، ويعلن عن interaction-helpers-prefix كـ Oem في AndroidManifest.xml .

تم تعيين خاصية الجهاز ro.vendor.cts_interaction_helper_packages على com.oem.cts.helpers .

التطبيقات المرجعية

تتضمن التطبيقات المرجعية واجهات ضمن cts/libs/helpers ومساعدي AOSP الافتراضيين ضمن cts/helpers . تم توثيق واجهة المستوى الأعلى في cts/libs/helpers/core/src/com/android/cts/helpers/ICtsDeviceInteractionHelper.java .

لربط اختبار CTS بمساعديه، يمكن لمالكي الاختبار استخدام تعريف @Rule الموثق في cts/libs/helpers/core/src/com/android/cts/helpers/DeviceInteractionHelperRule.java .

يتم توثيق كل وحدة CTS تستخدم إطار العمل وسلوك المساعد المتوقع في واجهة محددة ضمن cts/libs/helpers/core/src/com/android/cts/helpers .

إجراء اختبارات CTS

اختبار بدون مساعدين

بخلاف خاصية واحدة، لا يوجد خيار الاختبار بدون مساعدين في وقت التشغيل على الجهاز، ولكنه يعدل بشكل اختياري كيفية تفاعل اختبارات CTS مع الجهاز. إذا كنت بحاجة إلى تشغيل CTS بدون تطبيقات المساعد، فلديك خياران:

  • قم بإزالة الخاصية ro.vendor.cts_interaction_helper_packages من الجهاز. وهذا يمنع استخدام المساعدين في هذا البناء بالكامل.
  • قم بإزالة ملف APK المساعد من دليل testcases قبل تشغيل CTS. يؤدي هذا إلى منع استخدام المساعدين في أي عملية تشغيل حتى تتم استعادة APK إلى testcases .

يمكنك تغيير الإعدادات الافتراضية باستخدام وسيطات Tradefed والتحكم في خاصية ro.vendor.cts_interaction_helper_packages ، وهو المكان الذي يتم منه تحميل APK المساعد.

راجع ما يلي لمعرفة القيم أو النطاقات المتوقعة لكل من الإعدادات المتوفرة.

  • ro.vendor.cts_interaction_helper_packages عبارة عن سلسلة مفصولة بنقطتين تحتوي على أسماء الحزم. يمكن أن يستغرق الأمر أي قيمة تمثل اختيارًا صالحًا للحزمة لتطبيق مساعد OEM.
  • يقبل cts-tradefed device-interaction-helper:property-name التي تغير الخاصية المتوقعة مؤقتًا لتشغيل اختبار واحد، مثل --module-arg 'CtsPrintTestCases:{device-interaction-helper}property-name:debug.cts.hlp' . يمكن أن تكون قيمة اسم الخاصية أي خاصية تقوم بتعيينها على الجهاز. تتبع قيمة الخاصية نفس القيود التي تتبعها خاصية ro.vendor.cts_interaction_helper_packages الموضحة أعلاه.

اختبار مع التخصيصات

افتراضيًا، تمر التطبيقات المرجعية بـ CTS على نظام Android الأساسي. تأكد من أن تطبيقات الشركاء تجتاز CTS مع تخصيصات واجهة المستخدم. قم بتشغيل وحدات CTS التي تغطي واجهة المستخدم أو الميزات التي قمت بتخصيصها.

قد لا تدعم بعض وحدات CTS أو مساعداتها بعض التخصيصات حتى الآن.

  • قد لا تستخدم وحدة CTS التي تتفاعل مع واجهة المستخدم التي تريد تخصيصها إطار العمل المساعد. من المتوقع أن تتحول وحدات CTS إلى إطار العمل المساعد بناءً على الطلب وأولويات مالك الاختبار. قم بتقديم طلبات التحويل في وقت مبكر من العملية لضمان حدوث التحويل وفقًا للجدول الزمني، على غرار طلب تغييرات CTS لدعم الميزات المخطط لها.
  • قد لا تعالج الوظائف التي يوفرها مساعد موجود التخصيصات التي تريد إجراؤها بشكل كامل. يجب أن تقوم الوظائف المساعدة بتجريد تبعيات واجهة المستخدم. إذا كانت الوظيفة المساعدة لها تبعية لواجهة المستخدم بشكل غير مباشر، فيمكن معالجة ذلك بشكل مشابه للأخطاء في CTS.