इंस्ट्रुमेंटेशन टेस्ट करना शुरू करें

इस गाइड में बताया गया है कि Firebase टेस्ट लैब. इस गाइड का इस्तेमाल करने के लिए, ज़रूरी है कि इंस्ट्रुमेंटेशन टेस्ट (आपके या आपकी टीम के ज़रिए लिखा गया हो) एस्प्रेसो या यूज़र इंटरफ़ेस (यूआई) ऑटोमेशन Android टेस्ट फ़्रेमवर्क. इंस्ट्रुमेंटेशन टेस्ट 45 तक चल सकते हैं डिजिटल डिवाइसों पर 60 मिनट तक और वर्चुअल डिवाइसों पर 60 मिनट तक.

बाद के चरणों में, आप अपने ऐप्लिकेशन के APK और Firebase के लिए आपके टेस्ट का APK.

(ज़रूरी नहीं) अपने ऐप्लिकेशन में स्क्रीनशॉट लाइब्रेरी जोड़ें

Firebase टेस्ट लैब में एक लाइब्रेरी (testlab-instr-lib) शामिल है जिसे AndroidX के स्क्रीनशॉट से लिए गए किसी भी स्क्रीनशॉट को प्रोसेस करने के लिए स्क्रीन कैप्चर इंस्ट्रुमेंटेशन टेस्ट चलाना, जैसे कि एस्प्रेसो टेस्ट फ़्रेमवर्क. इस सेक्शन में बताया गया है कि AndroidX की मदद से ScreenCapture ऑब्जेक्ट कैसे बनाए जाते हैं लाइब्रेरी में देखा जा सकता है और testlab-instr-lib का इस्तेमाल करके उन्हें कैसे प्रोसेस किया जा सकता है.

इंस्ट्रुमेंटेशन टेस्ट पूरा होने के बाद, कैप्चर किए गए स्क्रीनशॉट देखे जा सकते हैं देखें.

ऐप्लिकेशन का नमूना आज़माएं

Notepad सैंपल ऐप्लिकेशन डाउनलोड करें इन टूल को आज़माएं. स्क्रीनशॉट लेने की सुविधा पहले से ही नोटपैड प्रोजेक्ट में शामिल किया गया है.

पहला चरण. अपने प्रोजेक्ट में स्क्रीनशॉट लाइब्रेरी जोड़ें

  1. आपके टेस्ट प्रोजेक्ट की रूट-लेवल सेटिंग की Gradle फ़ाइल (settings.gradle.kts या settings.gradle), Google की Maven रिपॉज़िटरी जोड़ें हर repositories सेक्शन में:

    pluginManagement {
        repositories {
            // Add the following line:
            google() // Google's Maven repository
            mavenCentral()
            gradlePluginPortal()
        }
    }
    dependencyResolutionManagement {
        repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
        repositories {
            // Add the following line:
            google() // Google's Maven repository
            mavenCentral()
        }
    }
    // ...
    
  2. आपके मॉड्यूल (ऐप्लिकेशन-लेवल) की Gradle फ़ाइल (आम तौर पर) में <project>/<app-module>/build.gradle.kts या <project>/<app-module>/build.gradle), इसके लिए कोई डिपेंडेंसी जोड़ें Test Lab की स्क्रीनशॉट लाइब्रेरी.

    dependencies {
      // ...
      // Add Test Lab's instrumentation test screenshot library:
      androidTestImplementation("com.google.firebase:testlab-instr-lib:0.2")
      // ...
    
  3. अपने टेस्ट की AndroidManifest.xml फ़ाइल में, FirebaseScreenCaptureProcessor <instrumentation> एलिमेंट. आपके पास प्रोसेसर को तर्क के साथ सबमिट करें (इसे देखें AndroidJUnitRunner रेफ़रंस के लिए दस्तावेज़ देखें.

    <instrumentation
      // Check that you have the following line (if not, add it):
      android:name="androidx.test.runner.AndroidJUnitRunner" // Specifies AndroidJUnitRunner as the test runner
      android:targetPackage="com.your.package.name">
    
    // Add the following:
    <meta-data
      android:name="screenCaptureProcessors"
      android:value="com.google.firebase.testlab.screenshot.FirebaseScreenCaptureProcessor" />
    </instrumentation>
    ...
    
  4. अपने ऐप्लिकेशन की AndroidManifest.xml फ़ाइल में, <manifest> एलिमेंट:

     <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    
  5. अपनी AndroidManifest.xml फ़ाइल में, अपने ऐप्लिकेशन के लिए सिस्टम की अनुमतियां तय करें <manifest> टैग में ये लाइनें जोड़कर. अगर आपको टेस्ट करना है Android 10 (एपीआई लेवल 29) या उसके बाद के वर्शन पर, WRITE_EXTERNAL_STORAGE को छोड़ दें अनुमति (आपके ऐप्लिकेशन को इस अनुमति की ज़रूरत नहीं है, डिवाइस पर स्क्रीनशॉट लिख सकते हैं).

    <manifest ... >
        <!-- WRITE_EXTERNAL_STORAGE is not needed on Android 10 (API level 29) or higher. -->
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
        <uses-permission android:name="android.permission.INTERNET"/>
        ...
    </manifest>

दूसरा चरण. जांच के दौरान स्क्रीनशॉट लेना

अपने टेस्ट के किसी भी समय स्क्रीनशॉट लेना हो, तो AndroidX लाइब्रेरी से Screenshot.capture() तरीका. इससे एक ScreenCapture ऑब्जेक्ट. जब process() को ScreenCapture ऑब्जेक्ट पर कॉल किया जाता है, तो यह प्रोसेस हो जाता है का इस्तेमाल करके स्क्रीनडिप्चर प्रोसेसर का इस्तेमाल करें यह आपके AndroidManifest.xml में रजिस्टर है. ध्यान दें कि अगर कोई प्रोसेसर रजिस्टर नहीं है, तो BasicScreenCaptureProcessor का इस्तेमाल किया जाता है. आपने FirebaseScreenCaptureProcessor को रजिस्टर किया है. इसलिए, आपके स्क्रीनशॉट FirebaseScreenCaptureProcessor की मदद से प्रोसेस किए जाएंगे और उपलब्ध होंगे Firebase टेस्ट लैब की मदद से टेस्ट करने पर, आपको नतीजे दिखाने की सुविधा मिलती है.

ScreenCapture बनाने के लिए, इस्तेमाल के उदाहरण:

  • एपीआई बिल्ड पर फ़ुल स्क्रीनकैप्चर करें.VERSION_CODES.JELLY_BEAN_MR2 और ऊपर:

    Screenshot.capture()
    
  • किसी भी एपीआई लेवल पर गतिविधि का ScreenCapture लें. ध्यान दें कि यह यह विकल्प Build.VERSION_CODES.JELLY_BEAN_MR2 से कम कीमत वाले डिवाइसों के लिए ही उपलब्ध है.

    @Rule
      public ActivityTestRule<MainActivity> activityRule = new ActivityTestRule<>(MainActivity.class);
    ...
    Screenshot.capture(activityRule.getActivity());
    ...
    

Screenकैप्चर को प्रोसेस करने के लिए, इस्तेमाल के उदाहरण

  • FirebaseScreenCaptureProcessor के ज़रिए ScreenCapture प्रोसेस करें:

    Screenshot.capture().process();
    
  • बताए गए ScreenCaptureProcessor की मदद से ScreenCapture प्रोसेस करें (इसकी मदद से, प्रोसेसर को रजिस्टर करना स्किप किया जा सकता है):

    Set<ScreenCaptureProcessor> processors = new HashSet<>();
    processors.add(new FirebaseScreenCaptureProcessor());
    Screenshot.capture().process(processors);
    
  • ScreenCapture का नाम और फ़ॉर्मैट सेट करें. इसके बाद, रजिस्टर किया गया प्रोसेसर:

    Screenshot.capture().setName("myscreenshot").setFormat(CompressFormat.JPEG).process();
    

चरण 3. टेस्ट बनाएं और चलाएं

  1. अपना ऐप्लिकेशन बनाएं और APK टेस्ट करें (देखें अपने ऐप्लिकेशन की जांच करना देखें).

  2. APK फ़ाइलों को टेस्ट लैब डैशबोर्ड पर अपलोड करना के विकल्प का इस्तेमाल करना चाहिए.

  3. आखिर में, अपना टेस्ट चलाएं.

चौथा चरण. टेस्ट के स्क्रीनशॉट देखना

जांच पूरी होने के बाद, Firebase कंसोल में लिए गए स्क्रीनशॉट देखे जा सकते हैं.

  1. टेस्ट टैब में, पूरा हो चुका टेस्ट चुनें, इसके बाद, नतीजे टैब पर क्लिक करें.

  2. जांच को फिर से चुनें. इसके बाद, दिखने वाले स्क्रीनशॉट टैब पर क्लिक करें.

(ज़रूरी नहीं) टेस्ट की अन्य सुविधाएं चालू करना

टेस्ट को चलाने से पहले, नीचे दी गई सुविधाओं को चालू किया जा सकता है टेस्ट लैब:

ऑर्केस्ट्रेटर चालू करें

Android टेस्ट ऑर्केस्ट्रार एक ऐसा टूल है जो आपके ऐप्लिकेशन के हर इंस्ट्रुमेंटेशन टेस्ट को अलग से चलाता है. Test Lab हमेशा ऑर्केस्ट्रेटर के सबसे नए वर्शन का इस्तेमाल करता है.

इंस्ट्रुमेंटेशन टेस्ट में जाकर, टेस्ट लैब के लिए ऑर्केस्ट्रेटर की सुविधा चालू करने के लिए सेटअप है, अतिरिक्त विकल्प पर क्लिक करें > Orchestrator के साथ दौड़ें.

ऑर्केस्ट्रेटर का इस्तेमाल करने पर आपको इन सुविधाओं से फ़ायदा मिलता है:

  • शेयर की गई कोई स्थिति नहीं है. हर जांच अपने-आप होती है इंस्ट्रुमेंटेशन इंस्टेंस, इसलिए सभी परीक्षणों में एक शेयर स्थिति जमा नहीं होती है.
  • ऐप्लिकेशन के अलग-अलग बंद होने की जानकारी. अगर कोई टेस्ट क्रैश हो जाता है, तो सिर्फ़ इंस्ट्रुमेंटेशन बंद कर दिया जाता है. साथ ही, आपके सुइट में अन्य टेस्ट अब भी चल सकते हैं.

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

ऑर्केस्ट्रेटर के लिए अतिरिक्त विकल्प सेट करने के लिए, इसके ज़रिए बताएं environmentVariables फ़ील्ड. उदाहरण के लिए, clearPackageData का इस्तेमाल करने के लिए, इसका इस्तेमाल करें gcloud में विकल्प:

--environment-variables clearPackageData=true

शेयर करने की सुविधा चालू करें

परीक्षण शार्डिंग, परीक्षणों के एक सेट को ऐसे उप-समूहों (शर्ड) में विभाजित करती है जो अलग से दिखेगा. परीक्षण लैब प्रत्येक शार्ड को अपने आप समानांतर रूप से चलाता है कई तरह के डिवाइसों का इस्तेमाल करके, जांच के पूरे सेट को कम समय में पूरा करता है.

उदाहरण के लिए, अगर आप N शार्ड बनाते हैं, तो आपके चुने गए हर डिवाइस के लिए टेस्ट लैब N शार्ड को घुमाता है जो एक जैसे डिवाइस होते हैं और हर डिवाइस पर टेस्ट का सबसेट चलाता है. इसका मतलब है कि शार्ड टेस्ट केस की वजह से, हर डिवाइस के लिए कई टेस्ट एक्ज़िक्यूशन हो सकते हैं. हालांकि, बिना शार्ड वाले टेस्ट केस की वजह से, हर टेस्ट में एक ही टेस्ट लागू होता है डिवाइस. टेस्ट लैब के सिद्धांत सीखने के लिए, यहां देखें मुख्य सिद्धांत.

Firebase कंसोल में टेस्ट शार्डिंग चालू करने के लिए, यह तरीका अपनाएं:

  1. इंस्ट्रुमेंटेशन टेस्ट सेटअप में, अन्य विकल्प पर क्लिक करें.

  2. शार्डिंग सेक्शन में, उन शार्ड की संख्या डालें जिन्हें आपको चलाना है.

टेस्ट शार्ड के लिए बिलिंग

टेस्ट लैब, AndroidJUnitRunner के बिल्ट-इन टूल का इस्तेमाल करके, आपके शार्ड को लागू करता है शार्डिंग मैकेनिज़्म. खाली शार्ड (बिना असाइन किए शार्ड) को स्पिन करने से बचने के लिए टेस्ट केस), आपके शार्ड की संख्या बनाएं, टेस्ट केस की कुल संख्या से कम होना चाहिए. इसके तरीके के आधार पर टेस्ट केस को चलने में ज़्यादा समय लगता है, इसलिए आम तौर पर 2-10 टेस्ट असाइन करना अच्छा रहता है केस प्रति शार्ड.

बिलिंग के बारे में ज़्यादा जानकारी पाने के लिए, इस्तेमाल, कोटा, और बिलिंग लेख पढ़ें.