सीटीएस डिवाइस इंटरेक्शन हेल्पर मॉड्यूल

एंड्रॉइड 11 या उच्चतर के लिए, संगतता परीक्षण सूट (सीटीएस) डिवाइस इंटरेक्शन हेल्पर मॉड्यूल आपको यह अनुकूलित करने देता है कि कुछ सीटीएस परीक्षण किसी विशिष्ट डिवाइस पर यूजर इंटरफेस (यूआई) के साथ कैसे इंटरैक्ट करते हैं। इसका मतलब यह है कि कार्य, जैसे कि यूआई तत्व को बदलना जो एंड्रॉइड संगतता परिभाषा दस्तावेज़ (सीडीडी) या एपीआई डॉक्स द्वारा कवर नहीं किया गया है, सीटीएस पास करते समय भी किया जा सकता है।

ओईएम जो उत्पाद विकास के दौरान एंड्रॉइड यूआई को अनुकूलित करना चाहते हैं और सीटीएस पास करने की आवश्यकता है, वे सहायक मॉड्यूल लागू करने में सक्षम हो सकते हैं। यदि आप डिफ़ॉल्ट Android कार्यान्वयन का उपयोग करते हैं, तो किसी अतिरिक्त कार्य की आवश्यकता नहीं है।

सहायक मॉड्यूल लागू करना

यूआई को अनुकूलित करने के लिए आवश्यकताएँ

किसी भी यूआई आवश्यकता के लिए सीडीडी या मेनलाइन मॉड्यूल की जांच करें। यदि वांछित यूआई सीडीडी या मेनलाइन मॉड्यूल द्वारा कवर किया गया है, तो उस यूआई को अनुकूलित नहीं किया जा सकता है।

यदि वांछित यूआई के साथ इंटरैक्ट करने वाले सीटीएस परीक्षण सहायक ढांचे का उपयोग नहीं करते हैं, तो उस यूआई को अनुकूलित नहीं किया जा सकता है। यूआई बदलने से पहले परीक्षण मॉड्यूल को परिवर्तित करने के लिए परीक्षण स्वामी के साथ काम करें।

अन्यथा, आप यूआई को कस्टमाइज़ कर सकते हैं।

कार्यान्वयन कार्यप्रवाह

  1. अपने विशिष्ट उत्पाद के लिए आवश्यकतानुसार यूआई को अनुकूलित करें।
  2. मौजूदा एओएसपी सहायक मॉड्यूल को सीटीएस परीक्षण मॉड्यूल के लिए उपवर्गों के रूप में नामित करें जिन्हें यूआई के साथ बातचीत करने की आवश्यकता है। अनुकूलित यूआई के लिए आवश्यक इंटरैक्शन को उचित रूप से बदलें। परिवर्तनों के प्रकार के आधार पर प्रतिस्थापन भिन्न-भिन्न होते हैं।
    • OEM उपवर्ग एक OEM पैकेज में हैं, जैसे com.[oem].cts.helpers .
    • प्रत्येक OEM उपवर्ग को एक सामान्य उपसर्ग के साथ नामित किया गया है जो इसे AOSP कार्यान्वयन से अलग करता है, जिसमें उपसर्ग Default है।
  3. इन टेस्ट रनर सम्मेलनों का पालन करते हुए हेल्पर्स को एक एपीके में बनाएं।
    • Android.bp android_test_helper_app निहित पैकेज के समान नाम से घोषित करना चाहिए।
    • एपीके के लिए AndroidManifest.xml पिछले बुलेट बिंदु में चुने गए वर्ग उपसर्ग के मान के साथ interaction-helpers-prefix नामक मेटाडेटा संपत्ति घोषित करनी होगी।
    • ऐप को cts-helpers-core , cts-helpers-interfaces , और com.android.cts.helpers.aosp पर निर्भर होना चाहिए। यदि ओईएम हेल्पर्स सभी प्रासंगिक इंटरफेस को पूरी तरह से लागू करते हैं, तो com.android.cts.helpers.aosp वैकल्पिक है।
  4. एपीके का नाम शामिल करने के लिए डिवाइस छवि में ro.vendor.cts_interaction_helper_packages प्रॉपर्टी सेट करें। यदि आपको अपने सहायक कार्यान्वयन को कई एपीके में अलग करने की आवश्यकता है, तो इस प्रॉपर्टी में पैकेजों की एक कोलन-पृथक सूची हो सकती है।
  5. सुनिश्चित करें कि सीटीएस के लिए ट्रेडफेड चलाते समय एपीके testcases निर्देशिका में उपलब्ध है। यदि आवश्यक हो, तो लॉगकैट संदेशों की जांच करके पुष्टि करें कि अपेक्षित सहायक कार्यान्वयन वर्ग चुना गया है।
  6. वैकल्पिक, लेकिन अत्यधिक अनुशंसित: अपना सहायक कार्यान्वयन AOSP को सबमिट करें या इसे तृतीय-पक्ष परीक्षण के लिए उपलब्ध कराएं।

उदाहरण सहायक कार्यान्वयन

उदाहरण के लिए, CtsPrintTestCases ICtsPrintHelper में परिभाषित इंटरफ़ेस के साथ एक सहायक की अपेक्षा करता है। AOSP कार्यान्वयन को com.android.cts.helpers.aosp.DefaultCtsPrintHelper कहा जाता है।

यदि आप प्रिंट यूआई को कस्टमाइज़ करते हैं, तो आप com.oem.cts.helpers.OemCtsPrintHelper बना सकते हैं जो DefaultCtsPrintHelper उपवर्गित करता है। Android.bp में android_test_helper_app com.oem.cts.helpers नाम दिया गया है, जो com.oem.cts.helpers.apk उत्पन्न करता है, और AndroidManifest.xml में interaction-helpers-prefix को Oem घोषित करता है।

डिवाइस प्रॉपर्टी ro.vendor.cts_interaction_helper_packages com.oem.cts.helpers पर सेट है।

संदर्भ कार्यान्वयन

संदर्भ कार्यान्वयन में cts/libs/helpers के अंतर्गत इंटरफ़ेस और cts/helpers के अंतर्गत डिफ़ॉल्ट AOSP हेल्पर्स शामिल हैं। शीर्ष-स्तरीय इंटरफ़ेस cts/libs/helpers/core/src/com/android/cts/helpers/ICtsDeviceInteractionHelper.java में प्रलेखित है।

सीटीएस परीक्षण को उसके सहायकों से जोड़ने के लिए, परीक्षण मालिक cts/libs/helpers/core/src/com/android/cts/helpers/DeviceInteractionHelperRule.java में प्रलेखित @Rule परिभाषा का उपयोग कर सकते हैं।

प्रत्येक सीटीएस मॉड्यूल जो फ्रेमवर्क का उपयोग करता है और उसके अपेक्षित सहायक व्यवहार cts/libs/helpers/core/src/com/android/cts/helpers अंतर्गत परिभाषित इंटरफ़ेस में प्रलेखित किया जाता है।

सीटीएस परीक्षण चल रहा है

सहायकों के बिना परीक्षण

एक संपत्ति के अलावा, सहायकों के बिना परीक्षण करने का विकल्प डिवाइस पर रनटाइम पर मौजूद नहीं है, लेकिन वैकल्पिक रूप से यह संशोधित करता है कि सीटीएस परीक्षण डिवाइस के साथ कैसे इंटरैक्ट करते हैं। यदि आपको सहायक कार्यान्वयन के बिना सीटीएस चलाने की आवश्यकता है, तो आपके पास दो विकल्प हैं:

  • डिवाइस से ro.vendor.cts_interaction_helper_packages प्रॉपर्टी हटाएँ। यह हेल्पर्स को उस निर्माण पर पूरी तरह से उपयोग करने से रोकता है।
  • सीटीएस चलाने से पहले testcases डायरेक्टरी से हेल्पर एपीके हटा दें। यह हेल्पर्स को किसी भी रन द्वारा उपयोग करने से रोकता है जब तक कि एपीके को testcases में पुनर्स्थापित नहीं किया जाता है।

आप ट्रेडफेड तर्कों और ro.vendor.cts_interaction_helper_packages संपत्ति नियंत्रण के साथ डिफ़ॉल्ट सेटिंग्स को बदल सकते हैं, जहां से सहायक एपीके लोड किया जाता है।

प्रत्येक उपलब्ध सेटिंग के लिए अपेक्षित मानों या श्रेणियों के लिए निम्नलिखित देखें।

  • ro.vendor.cts_interaction_helper_packages एक कोलन-पृथक स्ट्रिंग है जिसमें पैकेज नाम शामिल हैं। यह कोई भी मूल्य ले सकता है जो ओईएम के सहायक कार्यान्वयन के लिए एक वैध पैकेज विकल्प है।
  • cts-tradefed एक device-interaction-helper:property-name तर्क स्वीकार करता है जो एक परीक्षण चलाने के लिए अपेक्षित संपत्ति को अस्थायी रूप से बदलता है, जैसे --module-arg 'CtsPrintTestCases:{device-interaction-helper}property-name:debug.cts.hlp' . प्रॉपर्टी नाम का मान आपके द्वारा डिवाइस पर सेट की गई कोई भी प्रॉपर्टी हो सकता है। संपत्ति का मूल्य ऊपर वर्णित ro.vendor.cts_interaction_helper_packages संपत्ति के समान प्रतिबंधों का पालन करता है।

अनुकूलन के साथ परीक्षण

डिफ़ॉल्ट रूप से, संदर्भ कार्यान्वयन स्टॉक एंड्रॉइड पर सीटीएस पास करते हैं। जांचें कि भागीदार कार्यान्वयन यूआई अनुकूलन के साथ सीटीएस पास करते हैं। जो भी सीटीएस मॉड्यूल यूआई या आपके द्वारा अनुकूलित सुविधाओं को कवर करता है उसे चलाएं।

कुछ सीटीएस मॉड्यूल या सहायक अभी तक कुछ अनुकूलन का समर्थन नहीं कर सकते हैं।

  • एक सीटीएस मॉड्यूल जो यूआई के साथ इंटरैक्ट करता है जिसे आप अनुकूलित करना चाहते हैं वह सहायक ढांचे का उपयोग नहीं कर सकता है। सीटीएस मॉड्यूल से मांग और परीक्षण मालिक की प्राथमिकताओं के आधार पर सहायक ढांचे में परिवर्तित होने की उम्मीद है। प्रक्रिया की शुरुआत में ही रूपांतरण के लिए अनुरोध दर्ज करें ताकि यह सुनिश्चित हो सके कि रूपांतरण समय पर हो, आपकी नियोजित सुविधाओं का समर्थन करने के लिए सीटीएस परिवर्तनों के अनुरोध के समान।
  • मौजूदा सहायक द्वारा प्रदान किए गए फ़ंक्शन आपके द्वारा किए जाने वाले अनुकूलन को पूरी तरह से संबोधित नहीं कर सकते हैं। सहायक कार्यों को यूआई निर्भरता को दूर करना चाहिए। यदि किसी सहायक फ़ंक्शन में अप्रत्यक्ष रूप से यूआई निर्भरता है, तो इसे सीटीएस में बग के समान माना जा सकता है।