Google is committed to advancing racial equity for Black communities. See how.
इस पेज का अनुवाद Cloud Translation API से किया गया है.
Switch to English

इंस्ट्रूमेंटेशन टेस्ट

सबसे पहले डेवलपर. android.com पर अपना ऐप टेस्ट करें । ध्यान दें कि प्लेटफ़ॉर्म टेस्टिंग में इंस्ट्रूमेंटेशन टेस्ट का उपयोग कैसे किया जाता है, इसमें कुछ अंतर हैं।

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

प्रमुख धारणाएँ

  • एक इंस्ट्रूमेंटेशन को एक एप्लीकेशन पैकेज में घोषित किया जाना चाहिए, एक <instrumentation> टैग के तहत नेस्टेड होना चाहिए, जो एप्लिकेशन पैकेज के <manifest> टैग के तहत होता है।
  • तकनीकी रूप से कई <instrumentation> टैग में एक एप्लिकेशन पैकेज मेनिफेस्ट हो सकता है, हालांकि यह आमतौर पर इस फैशन में उपयोग नहीं किया जाता है।
  • प्रत्येक <instrumentation> होना चाहिए:
    • एक android:name विशेषता: यह Instrumentation के एक उपवर्ग का नाम होना चाहिए जो परीक्षण एप्लिकेशन में शामिल है, जो आमतौर पर परीक्षण धावक का उपयोग किया जा रहा है, जैसे: android.support.test.runner.AndroidJUnitRunner
    • एक android:targetPackage विशेषता को परिभाषित किया जाना चाहिए। इसका मूल्य परीक्षण के तहत एप्लिकेशन पैकेज पर सेट किया जाना चाहिए।

चरणों का सारांश

  1. नीचे फ्रेमवर्क सेवाओं के खिलाफ भ्रामक परीक्षणों के लिए सामान्य गंतव्य हैं:

    frameworks/base/core/tests/coretests
    frameworks/base/services/tests/servicestests
    

    यदि आप अपने घटक के लिए एक नया इंस्ट्रूमेंटेशन मॉड्यूल जोड़ रहे हैं, तो देखें

  2. मौजूदा सम्मेलन के बाद यदि आप ऊपर दिए गए स्थानों में से एक में परीक्षण जोड़ रहे हैं। यदि आप एक नया परीक्षण मॉड्यूल सेट कर रहे हैं, तो कृपया ऊपर दिए गए स्थानों में से एक में AndroidManifest.xml और Android.mk के सेटअप का पालन करें

  3. एक उदाहरण के लिए चौखटे / आधार / कोर / परीक्षण / coretests / देखें। ध्यान दें कि ये लाइनें अतिरिक्त एप्लिकेशन इंस्टॉल करती हैं:

    <option name="test-file-name" value="FrameworksCoreTests.apk" />
    <option name="test-file-name" value="BstatsTestApp.apk" />
    
  4. अपने टेस्ट को @SmallTest , @MediumTest या @LargeTest रूप में चिह्नित करना न भूलें

  5. मेक के साथ टेस्ट मॉड्यूल बनाएं, जैसे:

    make FrameworksCoreTests -j
    
  6. परीक्षण चलाएं:

    make tradefed-all -j
    tradefed.sh run template/local_min --template:map test=FrameworksCoreTests
    
  7. यदि ट्रेडफ़ेड का उपयोग नहीं कर रहा है, तो मैन्युअल रूप से परीक्षण स्थापित करें और चलाएं:

    1. उत्पन्न APK को स्थापित करें:
    adb install -r ${OUT}/data/app/FrameworksCoreTests/FrameworksCoreTests.apk
    

    युक्ति: आप अभी इंस्टॉल किए गए एपीके के अंदर इंस्ट्रूमेंटेशन खोजने के लिए adb shell pm list instrumentation का उपयोग करते हैं

    1. विभिन्न विकल्पों के साथ परीक्षण चलाएं:

      1. apk में सभी परीक्षण

        adb shell am instrument -w com.android.frameworks.coretests\
          /android.support.test.runner.AndroidJUnitRunner
        
      2. एक विशिष्ट जावा पैकेज के तहत सभी परीक्षण

        adb shell am instrument -w -e package android.animation \
          com.android.frameworks.coretests\
          /android.support.test.runner.AndroidJUnitRunner
        
      3. एक विशिष्ट वर्ग के तहत सभी परीक्षण

        adb shell am instrument -w -e class \
          android.animation.AnimatorSetEventsTest \
          com.android.frameworks.coretests\
          /android.support.test.runner.AndroidJUnitRunner
        
      4. एक विशिष्ट परीक्षण विधि

        adb shell am instrument -w -e class \
          android.animation.AnimatorSetEventsTest#testCancel \
          com.android.frameworks.coretests\
          /android.support.test.runner.AndroidJUnitRunner
        

आपका परीक्षण JUnit API का उपयोग करके पास या असफल होने पर एक स्पष्ट दावा कर सकता है; इसके अलावा, किसी भी अनियोजित अपवाद भी एक कार्यात्मक विफलता का कारण होगा।

प्रदर्शन मेट्रिक्स का उत्सर्जन करने के लिए, आपका परीक्षण कोड Instrumentation#sendStatus को कुंजी-मूल्य जोड़े की सूची भेजने के लिए कॉल कर सकता है। यह नोट करना महत्वपूर्ण है:

  1. मैट्रिक्स पूर्णांक या फ्लोटिंग बिंदु हो सकते हैं
  2. किसी भी गैर-संख्यात्मक मूल्यों को छोड़ दिया जाएगा
  3. आपका परीक्षण apk या तो कार्यात्मक परीक्षण या मैट्रिक्स परीक्षण हो सकता है, हालांकि दोनों का मिश्रण वर्तमान में समर्थित नहीं है