यह मार्गदर्शिका बताती है कि gcloud CLI का उपयोग करके किसी इंस्ट्रूमेंटेशन, रोबो या गेम लूप टेस्ट को कैसे चलाना है।
टेस्ट लैब में अपने एंड्रॉइड ऐप के साथ उपयोग किए जा सकने वाले gcloud
कमांड की पूरी सूची के लिए, gcloud firebase test android
के लिए संदर्भ दस्तावेज पर जाएं।
शुरू करने से पहले
यदि आपने पहले से नहीं किया है, तो अपने Android प्रोजेक्ट में Firebase जोड़ें ।
चरण 1. gcloud CLI सेट अप करें
- Google क्लाउड एसडीके डाउनलोड करें।
- सुनिश्चित करें कि आपकी स्थापना अद्यतित है:
gcloud components update
- अपने Google खाते का उपयोग करके gcloud CLI में लॉग इन करें:
gcloud auth login
- अपने Firebase प्रोजेक्ट को gcloud में सेट करें, जहां PROJECT_ID आपके Firebase प्रोजेक्ट की आईडी है:
gcloud config set project PROJECT_ID
इसमें gcloud CLI टूल शामिल है।
चरण 2. उपलब्ध परीक्षण उपकरणों की जाँच करें
आपके परीक्षण के लिए उपलब्ध परीक्षण उपकरणों और स्थानों को देखने के लिए निम्नलिखित gcloud कमांड का उपयोग करें।
एक विकल्प के रूप में, आप कमांड को तुरंत चलाना शुरू करने के लिए नमूना नोटपैड ऐप भी डाउनलोड कर सकते हैं। बाइनरी फ़ाइल app-debug-unaligned.apk
और इंस्ट्रूमेंटेशन टेस्ट फ़ाइल app-debug-test-unaligned.apk
उपयोग करें, जो NotePad/app/build/outputs/apk/
में स्थित हैं।
models list
: परीक्षण करने के लिए आपके लिए उपलब्ध Android उपकरणों की वर्तमान सूची प्राप्त करें।gcloud firebase test android models list
कमांड आउटपुट में:
- कॉलम
MODEL_ID
में वह पहचानकर्ता शामिल है जिसका उपयोग आप बाद में डिवाइस मॉडल पर परीक्षण चलाने के लिए कर सकते हैं। - कॉलम
OS_VERSION_ID
में डिवाइस द्वारा समर्थित ऑपरेटिंग सिस्टम संस्करण शामिल हैं।
उदाहरण आउटपुट
- कॉलम
models describe
: किसी विशिष्ट AndroidMODEL_ID
के बारे में अधिक जानकारी प्राप्त करें।gcloud firebase test android models describe MODEL_ID
आउटपुट में डिवाइस मॉडल का ब्रांड, निर्माता, ओएस संस्करण, समर्थित एपीआई स्तर, समर्थित एप्लिकेशन बाइनरी इंटरफेस (एबीआई), रिलीज तिथियां, और डिवाइस भौतिक या आभासी है या नहीं।
versions list
: परीक्षण के लिए वर्तमान में उपलब्ध OS संस्करणों की सूची प्राप्त करें।gcloud firebase test android versions list
आप कमांड आउटपुट (
OS_VERSION_ID
औरVERSION
) के पहले दो कॉलमों में से किसी एक पहचानकर्ता का उपयोग बाद में Android OS संस्करण के विरुद्ध परीक्षण चलाने के लिए कर सकते हैं। यदि आप परीक्षण करने के लिए Android OS संस्करण निर्दिष्ट नहीं करते हैं, तोTAGS
कॉलम के अंतर्गत नोट किए गए डिफ़ॉल्ट का उपयोग किया जाता है।उदाहरण आउटपुट
locales list
: परीक्षण के लिए उपलब्ध लोकेशंस की वर्तमान सूची प्राप्त करें।gcloud firebase test android versions list
कमांड आउटपुट के पहले कॉलम,
LOCALE
में पहचानकर्ता होता है जिसे आप बाद में लोकेल के विरुद्ध परीक्षण चलाने के लिए उपयोग कर सकते हैं। यदि आप परीक्षण के लिए स्थान निर्दिष्ट नहीं करते हैं, तो अंग्रेजी को डिफ़ॉल्ट स्थान के रूप में उपयोग किया जाता है।
चरण 3. अपना परीक्षण चलाएँ
अब जब आप अपने ऐप के परीक्षण के लिए उपलब्ध डिवाइस मॉडल, स्थान और 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 \ --client-details matrixLabel="Example matrix label"
-
--type robo
पैरामीटर अंतर्निहित है यदि कोई--type
मान निर्दिष्ट नहीं किया गया है। - फायरबेस कंसोल में अपने परीक्षण मैट्रिसेस की पहचान करने और उनका पता लगाने में आपकी मदद करने के लिए, आप अपने टेस्ट मैट्रिक्स को लेबल करने के लिए वैकल्पिक
--client-details matrixLabel="Example matrix label"
फ्लैग का उपयोग कर सकते हैं। - आप टाइप करके परीक्षण चलाने के लिए कमांड लाइन विकल्पों का पूरा सेट देख सकते हैं:
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 --client-details matrixLabel="Example matrix label"
-
--type
इंस्ट्रूमेंटेशन पैरामीटर निहित है यदि कोई परीक्षण APK--test
के साथ निर्दिष्ट किया गया है। - फायरबेस कंसोल में अपने परीक्षण मैट्रिसेस की पहचान करने और उनका पता लगाने में आपकी मदद करने के लिए, आप अपने टेस्ट मैट्रिक्स को लेबल करने के लिए वैकल्पिक
--client-details matrixLabel="Example matrix label"
फ्लैग का उपयोग कर सकते हैं। - आप
gcloud help firebase test android run
लिखकर परीक्षण चलाने के लिए कमांड लाइन विकल्पों का पूरा सेट देख सकते हैं।
कमांड लाइन पर इन तर्कों को निर्दिष्ट करने के विकल्प के रूप में, आप वैकल्पिक रूप से अपने तर्कों को YAML-स्वरूपित तर्क फ़ाइल में निर्दिष्ट कर सकते हैं। इस सुविधा का उपयोग करने का तरीका जानने के लिए gcloud topic arg-files
चलाएँ।
gcloud CLI Android टेस्ट ऑर्केस्ट्रेटर का समर्थन करता है। ऑर्केस्ट्रेटर को AndroidJUnitRunner v1.1 या उच्चतर की आवश्यकता है। इसे सक्षम करने के लिए, gcloud firebase test android run
उपयोग करें
--use-orchestrator
ध्वज। इसे अक्षम करने के लिए --no-use-orchestrator
फ़्लैग का उपयोग करें।
आप यह भी नियंत्रित कर सकते हैं कि टेस्ट लैब ऊपर नहीं दिखाए गए अतिरिक्त फ़्लैग्स का उपयोग करके आपके इंस्ट्रूमेंटेशन परीक्षणों को कैसे चलाती है। उदाहरण के लिए, आप अपने परीक्षण एपीके द्वारा उपयोग की जाने वाली एकल कक्षा या कक्षा विधि का परीक्षण करने के लिए --test-targets
ध्वज का उपयोग कर सकते हैं। आप यह भी पता लगा सकते हैं कि आपका परीक्षण जो विफल हो गया था, वह वास्तव में परतदार था या नहीं --num-flaky-test-attempts
ध्वज का उपयोग करके, जो एक या अधिक परीक्षण मामलों में परीक्षण निष्पादन को फिर से प्रयास करने की संख्या को निर्दिष्ट करता है। किसी कारण से विफल। अधिक जानने के लिए, gcloud firebase test android run देखें।
उपकरण परीक्षण के लिए कोड कवरेज रिपोर्ट
टेस्ट लैब कोड कवरेज रिपोर्टिंग टूल EMMA और JaCoCo को सपोर्ट करता है। यदि आपके पास अपने ऐप के निर्माण में कोई भी उपकरण एकीकृत है, तो आप कुछ अतिरिक्त तर्कों के साथ gcloud firebase test android run
चलाकर टेस्ट लैब परीक्षणों के लिए एक कोड कवरेज रिपोर्ट प्राप्त कर सकते हैं। यदि Android टेस्ट ऑर्केस्ट्रेटर सक्षम नहीं है, तो निम्न का उपयोग करें:
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/Download/coverage.ec" \ --directories-to-pull /sdcard/Download
यदि आप एंड्रॉइड टेस्ट ऑर्केस्ट्रेटर का उपयोग करते समय कोड कवरेज रिपोर्ट तैयार कर रहे हैं, तो अपने पर्यावरण चर को निम्नानुसार संशोधित करें:
gcloud firebase test android run \ --type instrumentation \ --app your-app.apk \ --test your-app-test.apk \ --device model=TestDevice,version=AndroidVersion \ --environment-variables clearPackageData=true,coverage=true,coverageFilePath="/sdcard/Download/" \ --directories-to-pull /sdcard/Download
जब टेस्ट लैब आपके परीक्षण चलाना समाप्त कर ले, तो Google क्लाउड स्टोरेज में अपनी कोड कवरेज रिपोर्ट खोजें:
- वह Firebase कंसोल लिंक खोलें जिसे
gcloud
टूल आपके टर्मिनल में परीक्षण परिणाम तालिका के ऊपर प्रिंट करता है. - उस निष्पादन के विवरण पृष्ठ को खोलने के लिए उस लिंक पर सूची से एक परीक्षण निष्पादन पर क्लिक करें।
- निष्पादन के परीक्षण परिणामों के साथ क्लाउड स्टोरेज बकेट में जाने के लिए परीक्षण के परिणाम पर क्लिक करें।
- अपनी कोड कवरेज रिपोर्ट देखने के लिए
artifacts/coverage.ec
खोलें।
अपने परीक्षा परिणामों का विश्लेषण करें
कुछ मिनटों के बाद, आपके परीक्षा परिणामों का मूल सारांश gcloud टूल द्वारा प्रिंट किया जाता है:
आपके कमांड लाइन टेस्ट रन के आउटपुट में टेस्ट के परिणाम देखने के लिए एक लिंक भी शामिल है। इन परिणामों की व्याख्या करने के तरीके के बारे में अधिक जानने के लिए, Android परिणामों के लिए Firebase परीक्षण लैब का विश्लेषण देखें।
रोबो टेस्ट के साथ कस्टम लॉगिन और टेक्स्ट इनपुट
जब तक आप --no-auto-google-login
पैरामीटर का उपयोग नहीं करते हैं, तब तक रोबो परीक्षण स्वचालित रूप से साइन-इन स्क्रीन को पूरा करता है जो प्रमाणीकरण के लिए Google खाते का उपयोग करता है। यह आपके द्वारा प्रदान किए जाने वाले टेस्ट अकाउंट क्रेडेंशियल्स का उपयोग करके कस्टम लॉगिन स्क्रीन को भी पूरा कर सकता है। आप इस पैरामीटर का उपयोग अपने ऐप द्वारा उपयोग किए जाने वाले अन्य टेक्स्ट फ़ील्ड के लिए कस्टम इनपुट टेक्स्ट प्रदान करने के लिए भी कर सकते हैं।
अपने ऐप में टेक्स्ट फ़ील्ड को पूरा करने के लिए --robo-directives
पैरामीटर का उपयोग करें और key-value
जोड़े की अल्पविराम से अलग की गई सूची प्रदान करें, जहां key
लक्ष्य UI तत्व का Android संसाधन नाम है, और value
टेक्स्ट स्ट्रिंग है . आप इस फ़्लैग का उपयोग रोबो को विशिष्ट UI तत्वों को नज़रअंदाज़ करने के लिए कहने के लिए भी कर सकते हैं (उदाहरण के लिए, "लॉगआउट" बटन)। EditText
फ़ील्ड समर्थित हैं लेकिन WebView
UI तत्वों में टेक्स्ट फ़ील्ड समर्थित नहीं हैं।
उदाहरण के लिए, आप कस्टम लॉगिन के लिए निम्न पैरामीटर का उपयोग कर सकते हैं:
--robo-directives username_resource=username,password_resource=password
उपलब्ध आदेश और झंडे
टेस्ट लैब gcloud CLI में कई आदेश और फ़्लैग उपलब्ध हैं जो आपको अलग-अलग विशिष्टताओं के साथ परीक्षण चलाने देते हैं:
एंड्रॉइड टेस्ट ऑर्केस्ट्रेटर फ्लैग : ऑर्केस्ट्रेटर को सक्षम करने के लिए एक फ्लैग, एक टूल जो आपको अपने प्रत्येक ऐप के टेस्ट को
Instrumentation
के अपने आह्वान में चलाने की अनुमति देता है। टेस्ट लैब हमेशा ऑर्केस्ट्रेटर का नवीनतम संस्करण चलाता है।गेम लूप टेस्ट फ़्लैग : कॉन्फिग फ़्लैग का एक सेट जो गेम ऐप्स में खिलाड़ी की क्रियाओं को सिम्युलेट करने के लिए "डेमो मोड" को सक्षम और नियंत्रित करता है। टेस्ट लैब के साथ गेम लूप टेस्ट चलाने के बारे में और जानें।
यूनिफ़ॉर्म शार्डिंग फ़्लैग (बीटा में) : एक फ़्लैग जो उन टुकड़ों की संख्या निर्दिष्ट करता है जिनमें आप परीक्षण मामलों को समान रूप से वितरित करना चाहते हैं। शार्क अलग-अलग उपकरणों पर समानांतर में चलती हैं।
मैनुअल शार्डिंग फ़्लैग (बीटा में) : एक फ़्लैग जो संकुल, वर्गों, और/या परीक्षण मामलों के समूह को शार्ड में चलाने के लिए निर्दिष्ट करता है (परीक्षण मामलों का एक समूह)। शार्क अलग-अलग उपकरणों पर समानांतर में चलती हैं।
नेटवर्क ट्रैफ़िक प्रोफ़ाइल फ़्लैग (बीटा में) : एक फ़्लैग जो निर्दिष्ट करता है कि आपके परीक्षण भौतिक उपकरणों के साथ किस नेटवर्क प्रोफ़ाइल का उपयोग करते हैं। नेटवर्क प्रोफ़ाइल विभिन्न प्रकार की नेटवर्क स्थितियों का अनुकरण करती है, जिससे आप अविश्वसनीय या अप्रत्याशित नेटवर्क पर अपने ऐप के प्रदर्शन का परीक्षण कर सकते हैं।
टेस्ट लैब के साथ स्क्रिप्टिंग gcloud कमांड
आप मोबाइल ऐप टेस्टिंग कमांड को स्वचालित करने के लिए शेल स्क्रिप्ट या बैच फ़ाइलों का उपयोग कर सकते हैं जिन्हें आप अन्यथा gcloud कमांड लाइन का उपयोग करके चलाएंगे। निम्नलिखित उदाहरण बैश स्क्रिप्ट दो मिनट के टाइमआउट के साथ एक इंस्ट्रूमेंटेशन टेस्ट चलाता है, और रिपोर्ट करता है कि टेस्ट रन सफलतापूर्वक पूरा हुआ या नहीं:
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
स्क्रिप्ट निकास कोड
टेस्ट लैब कई निकास कोड प्रदान करता है जिनका उपयोग आप स्क्रिप्ट या बैच फ़ाइलों का उपयोग करके चलाए गए परीक्षणों के परिणामों को बेहतर ढंग से समझने के लिए कर सकते हैं।
टेस्ट लैब के लिए स्क्रिप्टिंग एग्जिट कोड
कोड से बाहर निकलें | टिप्पणियाँ |
---|---|
0 | सभी परीक्षण निष्पादन पास हो गए। |
1 | एक सामान्य विफलता हुई। संभावित कारणों में शामिल हैं: एक फ़ाइल नाम जो मौजूद नहीं है या एक HTTP/नेटवर्क त्रुटि। |
2 | परीक्षण समाप्त हो गया क्योंकि अज्ञात आदेश या तर्क प्रदान किए गए थे। |
10 | परीक्षण निष्पादन के भीतर एक या अधिक परीक्षण मामले (परीक्षण वर्ग या वर्ग विधियाँ) पास नहीं हुए। |
15 | फायरबेस टेस्ट लैब एक अनपेक्षित त्रुटि के कारण यह निर्धारित नहीं कर सका कि परीक्षण मैट्रिक्स पास हुआ या असफल रहा। |
18 | असंगत परीक्षण आयामों के कारण इस परीक्षण निष्पादन के लिए परीक्षण वातावरण समर्थित नहीं है। यह त्रुटि तब हो सकती है यदि चयनित Android API स्तर चयनित डिवाइस प्रकार द्वारा समर्थित नहीं है। |
19 | परीक्षण मैट्रिक्स को उपयोगकर्ता द्वारा रद्द कर दिया गया था। |
20 | एक परीक्षण अवसंरचना त्रुटि हुई। |