Google 致力于为黑人社区推动种族平等。查看具体举措
इस पेज का अनुवाद Cloud Translation API से किया गया है.
Switch to English

Gcloud CLI से परीक्षण शुरू करें

फायरबेस टेस्ट लैब एंड्रॉइड ऐप्स के परीक्षण के लिए क्लाउड-आधारित बुनियादी ढांचा प्रदान करता है, जिसमें gcloud कमांड-लाइन इंटरफ़ेस (CLI) के साथ पूर्ण एकीकरण शामिल है यह दस्तावेज़ gcloud CLI से टेस्ट लैब का उपयोग शुरू करने के लिए आवश्यक इंस्टॉलेशन और कॉन्फ़िगरेशन को कवर करता है।

gcloud कमांड की पूरी सूची के लिए आप टेस्ट लैब में अपने एंड्रॉइड ऐप के साथ उपयोग कर सकते हैं, gcloud firebase test android लिए संदर्भ दस्तावेज़ देखें

यदि आपके पास अपने ऐप के लिए फायरबेस प्रोजेक्ट नहीं है, तो फायरबेस कंसोल पर जाएं और अभी एक प्रोजेक्ट बनाने के लिए नया प्रोजेक्ट बनाएं पर क्लिक करें । आपको अपनी परियोजना में स्वामित्व या संपादन अनुमति की आवश्यकता होगी।

Gcloud CLI सेट करें

  1. Google क्लाउड एसडीके डाउनलोड करें
  2. इसमें gcloud CLI टूल शामिल है।

  3. सुनिश्चित करें कि आपका इंस्टॉलेशन अप-टू-डेट है:
    gcloud components update
    
  4. अपने Google खाते का उपयोग करके gcloud CLI में लॉग इन करें:
    gcloud auth login
    
  5. अपने फायरबेस प्रोजेक्ट को gcloud में सेट करें, जहां PROJECT_ID आपके फायरबेस प्रोजेक्ट की आईडी है:
    gcloud config set project PROJECT_ID
    

अपने परीक्षण को कॉन्फ़िगर करें

इस उदाहरण में, आप नोटपैड नामक एक सरल नोट लेने वाले एंड्रॉइड ऐप पर कुछ परीक्षण चलाएंगे।

  1. नोटपैड ऐप के लिए बाइनरी एपीके फ़ाइल डाउनलोड करें ( नोट-डिबग-अनलग्ड.नेप ) और इसके संबंधित इंस्ट्रूमेंटेशन टेस्ट ( ऐप-डिबग-टेस्ट-अनलॉग्ड.नेप ) नोटपैड / ऐप / बिल्ड / आउटपुट / आउटपुट / एपीके / डायरेक्ट्री ऑफ नोटपैड में प्रदान किए गए हैं। .zip

  2. निम्न के अनुसार परीक्षण करने के लिए उपलब्ध Android उपकरणों की वर्तमान सूची प्राप्त करें:

    
    $ gcloud firebase test android models list
    
    gcloud firebase test android models list output कमांड आउटपुट के पहले कॉलम, MODEL_ID में पहचानकर्ता होता है जिसे आप बाद में किसी विशिष्ट मॉडल पर परीक्षण चलाने के लिए उपयोग कर सकते हैं। OS_VERSION_ID कॉलम उस उपकरण द्वारा समर्थित ऑपरेटिंग सिस्टम संस्करणों को सूचीबद्ध करता है। यदि आप निर्दिष्ट नहीं करते हैं कि किस MODEL_ID परीक्षण के लिए, डिफ़ॉल्ट डिफ़ॉल्ट TAGS कॉलम के तहत उपयोग किया जाता है।

  3. MODEL_ID firebase test android models describe साथ एक विशिष्ट एंड्रॉइड MODEL_ID बारे में अधिक जानें firebase test android models describe कमांड का firebase test android models describe निम्नानुसार करते हैं:

    
    $ gcloud firebase test android models describe Nexus5
    
    ऊपर दिखाया गया उदाहरण कमांड ब्रांड, निर्माता और समर्थित API स्तरों सहित Nexus5 मॉडल के बारे में विस्तृत जानकारी प्रदान करता है, और क्या मॉडल भौतिक है या आभासी।

  4. के खिलाफ परीक्षण करने के लिए उपलब्ध Android OS संस्करणों की वर्तमान सूची प्राप्त करें:

    
    $ gcloud firebase test android versions list
    
    gcloud android versions list आप बाद में Android OS संस्करण के विरुद्ध परीक्षण चलाने के लिए कमांड आउटपुट के पहले दो कॉलम ( OS_VERSION_ID और VERSION ) में से एक पहचानकर्ता का उपयोग कर सकते हैं। यदि आप Android OS संस्करणों के विरुद्ध परीक्षण करने के लिए निर्दिष्ट नहीं करते हैं, तो TAGS कॉलम के अंतर्गत उल्लिखित डिफ़ॉल्ट का उपयोग किया जाता है।

  5. के खिलाफ परीक्षण करने के लिए उपलब्ध स्थानों की वर्तमान सूची प्राप्त करें:

    
    $ gcloud firebase test android locales list
    
    कमांड आउटपुट, LOCALE पहले कॉलम में पहचानकर्ता होता है जिसका उपयोग आप बाद में स्थानीय के खिलाफ परीक्षण चलाने के लिए कर सकते हैं। यदि आप स्थानों को परीक्षण के लिए निर्दिष्ट नहीं करते हैं, तो अंग्रेजी का उपयोग डिफ़ॉल्ट लोकेल के रूप में किया जाता है। कमांड आउटपुट यहां नहीं दिखाया गया है क्योंकि सैकड़ों स्थान उपलब्ध हैं।

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

अब जब कि तुम उपकरण मॉडल, OS संस्करण, और स्थानों जब अपने ऐप का परीक्षण उपयोग करने के लिए उपलब्ध की सीमा पता है, आप का उपयोग कर परीक्षण उपकरणों निर्दिष्ट करने के लिए उस जानकारी का उपयोग कर सकते हैं gcloud firebase test android run कमान और --device झंडा। इस आदेश और ध्वज का उपयोग किया जाता है, चाहे आप अपने ऐप का स्वचालित रूप से परीक्षण करने के लिए रोबो परीक्षण का उपयोग कर रहे हों, या क्या आप अपने ऐप का परीक्षण करने के लिए विशेष रूप से लिखे गए इंस्ट्रूमेंटेशन परीक्षण चला रहे हैं।

रोबो परीक्षण चल रहा है

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

एक उदाहरण कमांड चलाकर शुरू करते हैं:

gcloud firebase test android run \
  --type robo \
  --app app-debug-unaligned.apk \
  --device model=Nexus6,version=21,locale=en,orientation=portrait  \
  --device model=Nexus7,version=19,locale=fr,orientation=landscape \
  --timeout 90s

यदि कोई --type मान निर्दिष्ट नहीं किया गया है तो --type robo पैरामीटर निहित है। आप टाइपिंग टेस्ट के लिए कमांड लाइन विकल्प का पूरा सेट टाइप करके देख सकते हैं: gcloud help firebase test android run । कमांड लाइन पर इन सभी तर्कों को निर्दिष्ट करने के विकल्प के रूप में, आप वैकल्पिक रूप से एक YAML- स्वरूपित तर्क फ़ाइल में अपने तर्क निर्दिष्ट कर सकते हैं। इस सुविधा का उपयोग करने के तरीके के लिए gcloud topic arg-files चलाएँ।

रोबो परीक्षण से परीक्षा परिणामों की जांच करना सीखने के लिए अपने परीक्षा परिणाम अनुभाग का विश्लेषण देखें।

अपने इंस्ट्रूमेंटेशन टेस्ट चला रहे हैं

अब अपने निर्दिष्ट एंड्रॉइड डिवाइस कॉन्फ़िगरेशन पर नोटपैड ऐप के एस्प्रेसो परीक्षणों को चलाने के लिए gcloud कमांड लाइन टूल का उपयोग करें, app-debug-test-unaligned.apk में परीक्षणों को चलाने के लिए instrumentation टेस्ट प्रकार का उपयोग करके:

gcloud firebase test android run \
  --type instrumentation \
  --app app-debug-unaligned.apk \
  --test app-debug-test-unaligned.apk \
  --device model=Nexus6,version=21,locale=en,orientation=portrait  \
  --device model=Nexus7,version=19,locale=fr,orientation=landscape

--type instrumentation पैरामीटर निहित है अगर एक परीक्षण APK को --test साथ निर्दिष्ट किया गया है। कमांड लाइन पर इन सभी तर्कों को निर्दिष्ट करने के विकल्प के रूप में, आप वैकल्पिक रूप से एक YAML- स्वरूपित तर्क फ़ाइल में अपने तर्क निर्दिष्ट कर सकते हैं। इस सुविधा का उपयोग करने के तरीके के लिए gcloud topic arg-files चलाएँ।

Gcloud CLI Android टेस्ट ऑर्केस्ट्रेटर का समर्थन करता है । आर्केस्ट्रा के लिए AndroidJUnitRunner v1.0 या उच्चतर की आवश्यकता होती है। इसे सक्षम करने के लिए, gcloud firebase test android run उपयोग करें
--use-orchestrator ध्वज। इसे अक्षम करने के लिए --no-use-orchestrator ध्वज का --no-use-orchestrator

नोट: आप यह भी नियंत्रित कर सकते हैं कि टेस्ट लैब आपके इंस्ट्रूमेंटेशन टेस्ट को अतिरिक्त झंडे का उपयोग करके कैसे चलाता है जो ऊपर नहीं दिखाए गए हैं। उदाहरण के लिए, आप अपने परीक्षण --test-targets द्वारा उपयोग किए जाने वाले एकल वर्ग या वर्ग विधि का परीक्षण करने के लिए --test-targets ध्वज का उपयोग कर सकते हैं। आप यह भी पता लगा सकते हैं कि आपका परीक्षण विफल हुआ था या नहीं, वास्तव में परतदार था या नहीं - 'एन-फ्लैकी-टेस्ट-प्रयास' ध्वज का उपयोग करके, जो निर्दिष्ट करता है कि परीक्षण निष्पादन की संख्या एक या अधिक होने पर पुन: प्रयास किया जाना चाहिए। परीक्षण के मामले किसी भी कारण से विफल हो जाते हैं। अधिक जानने के लिए, gcloud firebase test Android रन देखें

इंस्ट्रूमेंटेशन टेस्ट के लिए कोड कवरेज रिपोर्ट

टेस्ट लैब कोड कवरेज रिपोर्टिंग टूल EMMA और JaCoCo का समर्थन करता है। यदि आपके पास आपके ऐप के लिए बिल्ड में एकीकृत उपकरण है, तो आप निम्न तर्कों के साथ gcloud firebase test android run कमांड चलाकर टेस्ट लैब परीक्षणों के लिए एक कोड कवरेज रिपोर्ट प्राप्त कर सकते हैं:

gcloud firebase test android run \
  --type instrumentation \
  --app your-app.apk \
  --test your-app-test.apk \
  --device model=TestDevice,version=AndroidVersion  \
  --environment-variables coverage=true,coverageFile="/sdcard/coverage.ec" \
  --directories-to-pull /sdcard

जब टेस्ट लैब आपके परीक्षण को पूरा करता है, तो Google क्लाउड संग्रहण में अपनी कोड कवरेज रिपोर्ट खोजें:

  1. Firebase कंसोल लिंक है कि ओपन gcloud उपकरण अपने टर्मिनल में परीक्षा परिणाम तालिका के ऊपर छपी।
  2. उस निष्पादन के विवरण पृष्ठ को खोलने के लिए उस लिंक पर सूची से एक परीक्षण निष्पादन पर क्लिक करें।
  3. निष्पादन के परीक्षण परिणामों के साथ क्लाउड संग्रहण बाल्टी पर जाने के लिए परीक्षण परिणामों पर क्लिक करें।
  4. अपनी कोड कवरेज रिपोर्ट देखने के लिए artifacts/coverage.ec खोलें।

अपने परीक्षा परिणामों का विश्लेषण करें

कुछ मिनटों के बाद, आपके परीक्षा परिणामों का एक मूल सारांश gcloud टूल द्वारा मुद्रित किया जाता है:

Command test results

आपके कमांड लाइन टेस्ट रन के आउटपुट में परीक्षा परिणाम देखने के लिए एक लिंक भी शामिल है। इन परिणामों की व्याख्या कैसे करें, इसके बारे में अधिक जानने के लिए, Android परिणाम के लिए Firebase Test Lab का विश्लेषण करें देखें।

रोबो परीक्षण के साथ कस्टम लॉगिन और पाठ इनपुट

रोबो परीक्षण स्वचालित रूप से साइन-इन स्क्रीन को पूरा करता है जो प्रमाणीकरण के लिए Google खाते का उपयोग करते हैं, जब तक कि आप --no-auto-google-login पैरामीटर का उपयोग नहीं करते। यह आपके द्वारा प्रदान किए जाने वाले परीक्षण खाता क्रेडेंशियल्स का उपयोग करके कस्टम लॉगिन स्क्रीन को भी पूरा कर सकता है। आप इस पैरामीटर का उपयोग अपने ऐप द्वारा उपयोग किए जाने वाले अन्य टेक्स्ट फ़ील्ड के लिए कस्टम इनपुट टेक्स्ट प्रदान करने के लिए भी कर सकते हैं।

अपने ऐप में टेक्स्ट फ़ील्ड को पूरा करने के लिए, --robo-directives पैरामीटर का उपयोग करें और key-value जोड़े की अल्पविराम से अलग की गई सूची प्रदान करें, जहां key लक्ष्य UI तत्व का Android संसाधन नाम है, और value टेक्स्ट स्ट्रिंग है । रोबो को विशिष्ट यूआई तत्वों (जैसे, "लॉगआउट" बटन) को अनदेखा करने के लिए बताने के लिए आप इस ध्वज का उपयोग कर सकते हैं। EditText फ़ील्ड समर्थित हैं, लेकिन WebView UI तत्वों में टेक्स्ट फ़ील्ड नहीं।

उदाहरण के लिए, आप कस्टम लॉगिन के लिए निम्न पैरामीटर का उपयोग कर सकते हैं:

--robo-directives username_resource=username,password_resource=password

उपलब्ध आदेश और झंडे

टेस्ट लैब gcloud CLI में कई कमांड और झंडे उपलब्ध हैं जो आपको विभिन्न विशिष्टताओं के साथ परीक्षण चलाने देते हैं:

  • एंड्रॉइड टेस्ट ऑर्केस्ट्रेटर ध्वज : ऑर्केस्ट्रेटर को सक्षम करने के लिए एक ध्वज , एक उपकरण जो आपको Instrumentation अपने स्वयं के आह्वान में अपने ऐप के प्रत्येक परीक्षण को चलाने की अनुमति देता है। टेस्ट लैब हमेशा ऑर्केस्ट्रेटर का नवीनतम संस्करण चलाता है।

  • गेम लूप टेस्ट फ्लैग : कॉन्फिग फ्लैग का एक सेट जो गेम ऐप्स में प्लेयर एक्शन का अनुकरण करने के लिए "डेमो मोड" को सक्षम और नियंत्रित करता है। टेस्ट लैब के साथ गेम लूप टेस्ट चलाने के बारे में अधिक जानें।

  • यूनिफ़ॉर्म शेयरिंग फ़्लैग (बीटा में) : एक फ़्लैग जो उन शार्ड की संख्या को निर्दिष्ट करता है जिसमें आप परीक्षण मामलों को समान रूप से वितरित करना चाहते हैं। शर्ड्स अलग-अलग उपकरणों पर समानांतर में चलाए जाते हैं।

  • मैनुअल शेयरिंग फ्लैग (बीटा में) : एक झंडा जो एक शार्क ( टेस्ट मामलों का एक समूह) में चलाने के लिए संकुल, वर्गों और / या परीक्षण मामलों के एक समूह को निर्दिष्ट करता है। शर्ड्स अलग-अलग उपकरणों पर समानांतर में चलाए जाते हैं।

  • नेटवर्क ट्रैफ़िक प्रोफाइल फ़्लैग (बीटा में) : एक फ़्लैग जो निर्दिष्ट करता है कि कौन सा नेटवर्क प्रोफ़ाइल आपके परीक्षण का उपयोग भौतिक उपकरणों के साथ करता है। नेटवर्क प्रोफाइल विभिन्न प्रकार की नेटवर्क स्थितियों का अनुकरण करते हैं, जिससे आप अविश्वसनीय या अप्रत्याशित नेटवर्क पर अपने ऐप के प्रदर्शन का परीक्षण कर सकते हैं।

टेस्ट लैब के साथ स्क्रिप्टिंग gcloud कमांड

आप मोबाइल एप्लिकेशन परीक्षण आदेशों को स्वचालित करने के लिए शेल स्क्रिप्ट या बैच फ़ाइलों का उपयोग कर सकते हैं जिन्हें आप अन्यथा gcloud कमांड लाइन का उपयोग करके चलाएंगे। निम्न उदाहरण bash स्क्रिप्ट दो-मिनट के टाइमआउट के साथ एक इंस्ट्रूमेंटेशन टेस्ट चलाता है, और यदि टेस्ट रन सफलतापूर्वक पूरा हो जाता है, तो रिपोर्ट करता है:

if gcloud firebase test android run --app my-app.apk --test my-test.apk --timeout 2m
then
    echo "Test matrix successfully finished"
else
    echo "Test matrix exited abnormally with non-zero exit code: " $?
fi

स्क्रिप्ट निकास कोड

टेस्ट लैब कई एग्जिट कोड प्रदान करता है जिनका उपयोग आप उन परीक्षणों के परिणामों को बेहतर ढंग से समझने के लिए कर सकते हैं जिन्हें आप स्क्रिप्ट या बैच फ़ाइलों का उपयोग करके चलाते हैं।

टेस्ट लैब के लिए स्क्रिप्टिंग एग्जिट कोड

कोड से बाहर निकलें टिप्पणियाँ
सभी परीक्षण निष्पादित किए गए।
1 एक सामान्य विफलता हुई। संभावित कारणों में शामिल हैं: एक फ़ाइल नाम जो मौजूद नहीं है या एक HTTP / नेटवर्क त्रुटि है।
परीक्षण से बाहर निकल गए क्योंकि अज्ञात आदेश या तर्क प्रदान किए गए थे।
१० एक परीक्षण निष्पादन के भीतर एक या एक से अधिक परीक्षण मामले (परीक्षण किए गए वर्ग या कक्षा के तरीके) पास नहीं हुए।
१५ अप्रत्याशित त्रुटि के कारण, परीक्षण मैट्रिक्स पास होने या विफल होने पर, फायरबेस टेस्ट लैब निर्धारित नहीं कर सकती थी।
१। इस परीक्षण निष्पादन के लिए परीक्षण वातावरण असंगत परीक्षण आयामों के कारण समर्थित नहीं है। यह त्रुटि तब हो सकती है यदि चयनित Android API स्तर चयनित डिवाइस प्रकार द्वारा समर्थित नहीं है।
१ ९ उपयोगकर्ता द्वारा परीक्षण मैट्रिक्स को रद्द कर दिया गया था।
२० एक परीक्षण अवसंरचना त्रुटि हुई।