सीटीएस टेस्ट चलाना

ट्रेड फ़ेडरेशन, Android डिवाइसों पर टेस्ट चलाने के लिए लगातार जांच करने वाला फ़्रेमवर्क है. काम करने की जांच करने वाला सुइट (सीटीएस) चलाने के लिए, पहले ट्रेड फ़ेडरेशन की खास जानकारी पढ़ें. इससे आपको Tradefed के टेस्ट फ़्रेमवर्क के बारे में जानकारी मिलेगी.

टेस्ट प्लान चलाने के लिए:

  1. Android डिवाइस सेटअप के हिसाब से, टेस्ट में डिवाइस (डीयूटी) सेट अप करें.
  2. पक्का करें कि आपने Android डीबग ब्रिज (adb) और Android ऐसेट पैकेजिंग टूल (AAPT), दोनों के हाल ही के वर्शन इंस्टॉल किए हों. साथ ही, अपनी मशीन के सिस्टम पाथ में उन टूल की जगह की जानकारी जोड़ी हो. इन टूल को इंस्टॉल करने के बारे में जानने के लिए, CTS: ADB और AAPT सेट अप करना लेख पढ़ें.
  3. अपनी Linux होस्ट मशीन पर रिलीज़ किए गए सीटीएस बिल्ड डाउनलोड करें और बिल्ड को होस्ट की जगह पर अनज़िप करें.
  4. कम से कम एक डिवाइस कनेक्ट करें. डीयूटी को तैयार करने के लिए:
    • डिवाइस को होम स्क्रीन पर सेट करने के लिए होम बटन दबाएं.
    • किसी दूसरे काम के लिए डीयूटी का इस्तेमाल न करें.
    • सेंसर से जुड़ी गतिविधि ट्रिगर होने से रोकने के लिए, डीयूटी को स्थिर जगह पर रखें.
    • डिवाइस के कैमरे को किसी ऐसे ऑब्जेक्ट पर फ़ोकस करें जिस पर फ़ोकस किया जा सकता हो.
    • सीटीएस चलने के दौरान, डिवाइस पर कोई बटन न दबाएं. डीयूटी की स्क्रीन को छूने या बटन दबाने से, चल रहे टेस्ट में रुकावट आ सकती है. साथ ही, टेस्ट पूरा न हो पाने की संभावना भी बढ़ जाती है.
  5. उस फ़ोल्डर से CTS कंसोल cts-tradefed स्क्रिप्ट लॉन्च करें जहां CTS पैकेज को अनज़िप किया गया है. होस्ट के कमांड-लाइन शेल पर, यह चलाएं:

    ./android-cts/tools/cts-tradefed
  6. डिफ़ॉल्ट टेस्ट प्लान चलाएं (इसमें सभी टेस्ट पैकेज शामिल होते हैं):

    cts-tradefed > run cts
    • अगर आपको टेस्ट पूरा होने में लगने वाले समय को कम करना है, तो कई डिवाइसों पर टेस्ट को शार्ड करें. शर्ड करने के लिए, होस्ट को कम से कम दो डिवाइस कनेक्ट करने होंगे. हालांकि, बेहतर परफ़ॉर्मेंस के लिए छह या उससे ज़्यादा डिवाइसों को कनेक्ट करने का सुझाव दिया जाता है. एक से ज़्यादा डिवाइस शेयर करने पर:

      • Android 9 और उसके बाद के वर्शन के लिए, कमांड विकल्प का इस्तेमाल करें

        --shard-count number_of_shards
      • Android 8.1 और इससे पहले के वर्शन के लिए, कमांड विकल्प का इस्तेमाल करें

        --shards number_of_shards
    • अगर आपको पूरा टेस्ट सुइट नहीं चलाना है, तो कमांड लाइन से अपनी पसंद का CTS प्लान चलाया जा सकता है:

      run cts --plan test_plan_name

      टेस्ट प्लान का नाम ढूंढने के लिए:

      • Android 7.0 और उसके बाद के वर्शन के लिए, टेस्ट मॉड्यूल की सूची देखने के लिए,

        list modules
      • Android 6.0 और उससे पहले के वर्शन के लिए, डेटा स्टोर करने की जगह में टेस्ट प्लान की सूची देखने के लिए,

        list plans
      • Android 6.0 और उससे पहले के वर्शन के लिए, डेटा स्टोर करने की जगह में टेस्ट पैकेज की सूची देखने के लिए,

        list packages
    • सीटीएस के वर्शन के हिसाब से, कमांड के अन्य विकल्पों के लिए, कंसोल कमांड रेफ़रंस देखें. इसके अलावा, Tradefed कंसोल में "सभी के लिए सहायता" में जाकर भी यह जानकारी देखी जा सकती है.

  7. जब तक सभी टेस्ट मॉड्यूल पूरे नहीं हो जाते और फिर से कोशिश करने के पिछले दो सेशन में, टेस्ट में फ़ेल होने की संख्या एक जैसी नहीं हो जाती, तब तक कई बार फिर से कोशिश करें.

    • Android 9 और उसके बाद के वर्शन के लिए,

      run retry --retry session_number --shard-count number_of_shards
    • Android 7.0–8.1 के लिए, इसका इस्तेमाल करें

      run cts --retry session_number --shards number_of_shards
    • CTS के वर्शन के आधार पर, 'फिर से कोशिश करें' कमांड के अन्य विकल्पों के लिए, CTS v2 कमांड कंसोल देखें.

    • सीटीएस के लिए फिर से कोशिश करने को लागू करने से जुड़ी जानकारी को समझने के लिए, Trade परिवार सुइट के लिए दोबारा कोशिश करने की कोशिश देखें.

  8. सिर्फ़ पैरामीटर वाले उन टेस्ट के लिए फिर से कोशिश करें जो पूरे नहीं हो पाए. पैरामीटर वाले जिन टेस्ट को पास कर दिया गया है उन्हें फिर से नहीं चलाया जाता.

    • Android 11 और उसके बाद के वर्शन के लिए, run cts कमांड में डिफ़ॉल्ट रूप से, फिर से कोशिश करने का यह कमांड विकल्प चालू होता है:

      run retry --retry  --new-parameterized-handling
  9. कंसोल पर, टेस्ट की प्रोग्रेस और रिपोर्ट किए गए नतीजे देखें.

Android Test Station का इस्तेमाल करके सीटीएस चलाना

Android Test Station, टेस्ट ऑटोमेशन टूल है. इसका इस्तेमाल करके, Android डेवलपर और टेस्ट इंजीनियर, स्टैंडर्ड टेस्ट सुइट चलाने के लिए यूज़र इंटरफ़ेस का इस्तेमाल कर सकते हैं. यह Android Compatibility Test Suite (CTS) के साथ काम करता है.

यह टूल, एटीएस उपयोगकर्ता गाइड के ज़रिए सार्वजनिक तौर पर उपलब्ध है. साथ ही, इसका कोड AOSP (multitest_transport,tradefed_cluster) में ओपन सोर्स है.

अन्य मोड के लिए सीटीएस चलाना

CTS 10 R4 रिलीज़ में, वैकल्पिक मोड वाले डिवाइसों या एक से ज़्यादा स्क्रीन वाले डिवाइसों के लिए टेस्ट प्लान जोड़ा गया है. run cts-foldable का इस्तेमाल करके, वैकल्पिक मोड के टेस्ट प्लान को लागू करें.

वैकल्पिक स्क्रीन मोड के लिए, पास या फ़ेल होने वाले टेस्ट केस, display_mode की वैल्यू के साथ जोड़ दिए जाते हैं, जैसे कि testcase1[display_mode=0].

CTS 13 में, DeviceStateManager API, फ़ोल्ड किए जा सकने वाले डिवाइस के अलग-अलग डिवाइसों पर, यहां दिए गए कॉन्फ़िगरेशन के विकल्प वाले टेस्ट मॉड्यूल चलाने की अनुमति देता है. डिवाइस में तय की गई डिसप्ले फ़ोल्डिंग स्थितियों के आधार पर, CTS में टेस्ट अपने-आप चलता है. इसके लिए, cts-foldable टेस्ट प्लान चलाने की ज़रूरत नहीं होती.

<option name="config-descriptor:metadata" key="parameter" value="all_foldable_states" />

सीटीएस में मल्टी-डिवाइस टेस्टिंग

Android 13 और उसके बाद के वर्शन, एक से ज़्यादा डिवाइसों पर टेस्ट करने की सुविधा देते हैं. ऐसे टेस्ट जिनके लिए कई डिवाइसों की ज़रूरत होती है, वे सीटीएस चलाने के दौरान अपने-आप लागू हो जाते हैं. सीटीएस 13 में कुछ मल्टी-डिवाइस टेस्ट शामिल हैं, जो शार्डिंग का इस्तेमाल करते समय अपने-आप ट्रिगर हो जाते हैं. जांच के लिए, फ़िज़िकल सेटअप में कोई और बदलाव करने की ज़रूरत नहीं होती. हालांकि, जांच सही तरीके से चल सके, इसके लिए virtualenv को इंस्टॉल करना ज़रूरी है. ज़्यादा जानकारी के लिए, एक से ज़्यादा डिवाइसों पर इस्तेमाल किए जा सकने वाले सुइट देखें.

एक से ज़्यादा डिवाइसों पर टेस्ट करना

अलग-अलग डिवाइसों पर जांच करने के लिए, नीचे दिए गए कोड का इस्तेमाल करें:

  cts-tradefed > run cts-multidevice
  

सभी सामान्य विकल्प समर्थित हैं. किसी खास डिवाइस को टारगेट करने के लिए, टारगेट किए गए डिवाइसों की संख्या के हिसाब से --serial <serial1> --serial <serial2> जोड़ें.

एक से ज़्यादा डिवाइसों पर टेस्ट अपने-आप ट्रिगर करने के लिए, --shard-count 2 में बताए गए तरीके से, टास्क को अलग-अलग हिस्सों में बांटें.