gcloud सीएलआई की मदद से जांच करना शुरू करें

इस गाइड में इंस्ट्रुमेंटेशन, रोबो या गेम लूप टेस्ट चलाने का तरीका बताया गया है gcloud सीएलआई का इस्तेमाल करके

gcloud निर्देशों की पूरी सूची के लिए, इनका इस्तेमाल किया जा सकता है टेस्ट लैब में अपने Android ऐप्लिकेशन की मदद से, इस लिंक पर जाएं gcloud firebase test android के लिए रेफ़रंस दस्तावेज़.

शुरू करने से पहले

अगर आपने पहले से Firebase को नहीं जोड़ा है, तो अपने Android प्रोजेक्ट में Firebase जोड़ें.

पहला चरण. gcloud सीएलआई सेट अप करें

  1. Google Cloud SDK टूल डाउनलोड करें
  2. इसमें gcloud सीएलआई टूल शामिल है.

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

दूसरा चरण. टेस्ट के लिए उपलब्ध डिवाइस देखें

टेस्ट के लिए इस्तेमाल होने वाले डिवाइसों और स्थान-भाषाओं को देखने के लिए, gcloud के इन निर्देशों का पालन करें आपके टेस्ट के लिए उपलब्ध है.

विकल्प के रूप में, आप इसका नमूना डाउनलोड भी कर सकते हैं शुरू करने के लिए, Notepad ऐप्लिकेशन निर्देशों को तुरंत लागू कर देता है. बाइनरी फ़ाइल 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 में, काम करने वाले ऑपरेटिंग सिस्टम वर्शन शामिल हैं से कनेक्ट होता है.

    आउटपुट का उदाहरण

    gcloud Firebase टेस्ट के लिए Android मॉडल की सूची का आउटपुट

  • models describe: किसी खास Android MODEL_ID के बारे में ज़्यादा जानकारी पाएं.

    gcloud firebase test android models describe MODEL_ID
    

    आउटपुट में डिवाइस मॉडल का ब्रैंड, मैन्युफ़ैक्चरर, ओएस वर्शन, काम करने वाले एपीआई लेवल, काम करने वाला ऐप्लिकेशन बाइनरी इंटरफ़ेस (एबीआई), रिलीज़ की तारीखें बताएंगे और डिवाइस का फ़िज़िकल है या वर्चुअल.

  • versions list: जांच करने के लिए, मौजूदा ओएस वर्शन की सूची पाएं टीम में हुए हैं.

    gcloud firebase test android versions list
    

    कमांड के पहले दो कॉलम में से किसी एक से आइडेंटिफ़ायर का इस्तेमाल किया जा सकता है आउटपुट (OS_VERSION_ID और VERSION) में, बाद में किसी Android के लिए टेस्ट चलाने के लिए किया जाता है ओएस वर्शन का होना चाहिए. अगर आपने टेस्ट करने के लिए Android OS के वर्शन तय नहीं किए हैं, तो TAGS कॉलम में, डिफ़ॉल्ट रूप से नोट की गई सेटिंग का इस्तेमाल किया जाता है.

    आउटपुट का उदाहरण

    gcloud Android वर्शन की सूची

  • locales list: परीक्षण के लिए उपलब्ध स्थान-भाषाओं की मौजूदा सूची पाएं.

    gcloud firebase test android versions list
    

    कमांड आउटपुट के पहले कॉलम, LOCALE में आइडेंटिफ़ायर होता है जिनका इस्तेमाल बाद में किसी स्थान-भाषा से जुड़ी जांच के लिए किया जा सकता है. अगर आप तय नहीं करते हैं, तो जिन स्थानों के लिए जांच करनी है, डिफ़ॉल्ट स्थान-भाषा के तौर पर अंग्रेज़ी का इस्तेमाल किया जाता है.

चरण 3. जांच करें

अब आपको अलग-अलग तरह के डिवाइस मॉडल, स्थान-भाषा, और ओएस वर्शन के बारे में जानकारी है टेस्ट करने के लिए, आप इसका इस्तेमाल करके डिवाइस तय कर सकते हैं 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 की कोई वैल्यू तय नहीं की गई है, तो --type robo पैरामीटर लागू नहीं होता है.
  • Firebase कंसोल में, अपने टेस्ट मैट्रिक्स की पहचान करने और उनका पता लगाने में आपकी मदद करने के लिए, --client-details matrixLabel="Example matrix label" का इस्तेमाल किया जा सकता है. फ़्लैग करें.
  • आप इनके लिए कमांड लाइन विकल्पों का पूरा सेट देख सकते हैं यह टाइप करके परीक्षण चलाए जा सकते हैं: gcloud help firebase test android run.

कमांड लाइन पर इन आर्ग्युमेंट को बताने के विकल्प के तौर पर, इसके अलावा, YAML फ़ॉर्मैट वाली आर्ग्युमेंट फ़ाइल में भी अपने आर्ग्युमेंट इस्तेमाल करें. दौड़ना इस सुविधा के इस्तेमाल का तरीका जानने के लिए gcloud topic arg-files.

रोबो टेस्ट से जांच के नतीजों की जांच करने का तरीका जानने के लिए, देखें अपने जांच के नतीजों का विश्लेषण करें.

इंस्ट्रुमेंटेशन टेस्ट चलाना

अब Notepad ऐप्लिकेशन को चलाने के लिए, gcloud कमांड लाइन टूल का इस्तेमाल करें एस्प्रेसो आपके बताए गए Android डिवाइस कॉन्फ़िगरेशन पर टेस्ट करता है. इसका इस्तेमाल करें 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"
  • अगर टेस्ट APK दिया गया है, तो --type इंस्ट्रुमेंटेशन पैरामीटर लागू नहीं होता --test के साथ.
  • Firebase कंसोल में, अपने टेस्ट मैट्रिक्स की पहचान करने और उनका पता लगाने में आपकी मदद करने के लिए, --client-details matrixLabel="Example matrix label" का इस्तेमाल किया जा सकता है. फ़्लैग करें.
  • आप इनके लिए कमांड लाइन विकल्पों का पूरा सेट देख सकते हैं gcloud help firebase test android run टाइप करके परीक्षण चलाए जा सकते हैं.

कमांड लाइन पर इन आर्ग्युमेंट को बताने के विकल्प के तौर पर, इसके अलावा, YAML फ़ॉर्मैट वाली आर्ग्युमेंट फ़ाइल में भी अपने आर्ग्युमेंट इस्तेमाल करें. दौड़ना इस सुविधा के इस्तेमाल का तरीका जानने के लिए gcloud topic arg-files.

gcloud सीएलआई, Android Test Orchestrator के साथ काम करता है. ऑर्चेस्ट्रेटर के लिए AndroidJUnitRunner v1.1 या इसके बाद के वर्शन की ज़रूरत होती है. इसे चालू करने के लिए, gcloud firebase test android run,
--use-orchestrator के साथ फ़्लैग करें. इस सुविधा को बंद करने के लिए, --no-use-orchestrator फ़्लैग का इस्तेमाल करें.

आपके पास यह भी कंट्रोल करने का विकल्प है कि टेस्ट लैब आपके इंस्ट्रुमेंटेशन टेस्ट कैसे चलाएगा इस्तेमाल करना शुरू करें, जो ऊपर नहीं दिखाए गए हैं. उदाहरण के लिए, आप किसी एक क्लास या आपके टेस्ट में इस्तेमाल होने वाले क्लास मेथड की जांच करने के लिए --test-targets फ़्लैग APK के साथ दिखेगा. यह भी पता लगाया जा सकता है कि टेस्ट में हुई गड़बड़ी असल में अमान्य थी या नहीं नहीं करने के लिए --num-flaky-test-attempts फ़्लैग का इस्तेमाल करें. इससे यह पता चलता है कि अगर किसी टेस्ट केस के एक या एक से ज़्यादा टेस्ट केस होने पर, उस टेस्ट को बार-बार करने की फिर से कोशिश की जानी चाहिए किसी भी वजह से शेड्यूल नहीं किया जा सकता. ज़्यादा जानकारी के लिए, gcloud firebase टेस्ट android Run देखें.

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

टेस्ट लैब, कोड कवरेज की रिपोर्ट करने वाले टूल के साथ काम करता है EMMA और JaCoCo. अगर आपके पास इनमें से कोई एक टूल है ऐप्लिकेशन के बिल्ड में इंटिग्रेट किया गया है, तो आपको कुछ लोगों के साथ gcloud firebase test android run चलाकर, लैब टेस्ट की जांच करें की भी ज़रूरत नहीं है. अगर Android Test Orchestrator चालू नहीं है, तो फ़ॉलो किया जा रहा है:

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

अगर Android Test का इस्तेमाल करते हुए भी कोड कवरेज रिपोर्ट जनरेट की जा रही हैं ऑर्केस्ट्रेटर, अपने एनवायरमेंट वैरिएबल में इस तरह से बदलाव करें:

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 Cloud Storage में:

  1. वह Firebase कंसोल लिंक खोलें जिसे gcloud टूल, अपने टर्मिनल में टेस्ट के नतीजे वाली टेबल जोड़ें.
  2. उस लिंक पर मौजूद सूची में से किसी टेस्ट एक्ज़ीक्यूशन पर क्लिक करें और उस एक्ज़ीक्यूशन को खोलें क्लिक करें.
  3. इसके साथ, Cloud Storage बकेट में जाने के लिए, जांच के नतीजे पर क्लिक करें एक्ज़ीक्यूशन के टेस्ट के नतीजे.
  4. अपने कोड कवरेज की रिपोर्ट देखने के लिए, artifacts/coverage.ec खोलें.

जांच के नतीजों का विश्लेषण करना

कुछ मिनटों के बाद, आपकी जांच के नतीजों की बुनियादी जानकारी को gcloud टूल:

कमांड की जांच के नतीजे

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

रोबो टेस्ट के साथ पसंद के मुताबिक लॉगिन और टेक्स्ट इनपुट

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

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

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

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

उपलब्ध निर्देश और फ़्लैग

टेस्ट लैब के gcloud सीएलआई में कई निर्देश और फ़्लैग उपलब्ध हैं अलग-अलग खास निर्देशों के साथ टेस्ट करें:

  • Android Test Orchestrator फ़्लैग: Orchestrator को चालू करने के लिए,एक फ़्लैग इस टूल की मदद से, अपनी हर सुविधा को ऐप्लिकेशन के परीक्षण को 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 कोई सामान्य गड़बड़ी हुई. संभावित कारणों में शामिल हैं: एक फ़ाइल नाम जो मौजूद नहीं है या एचटीटीपी/नेटवर्क की गड़बड़ी है.
2 अनजान निर्देश या आर्ग्युमेंट दिए जाने की वजह से, जांच से बाहर हो गया.
10 टेस्ट में एक या उससे ज़्यादा टेस्ट केस (टेस्ट की गई क्लास या क्लास के तरीके) निष्पादन पूरा नहीं हुआ.
15 Firebase टेस्ट लैब यह तय नहीं कर सका कि टेस्ट मैट्रिक्स पास हुआ है या नहीं या अचानक हुई गड़बड़ी की वजह से कार्रवाई नहीं की जा सकी.
18 इस जांच के निष्पादन के लिए टेस्ट एनवायरमेंट काम नहीं करता है, क्योंकि टेस्ट डाइमेंशन काम नहीं करते. यह गड़बड़ी तब हो सकती है, जब Android API को चुना गया हो स्तर का चयन चुने गए डिवाइस प्रकार पर नहीं किया जा सकता है.
19 टेस्ट मैट्रिक्स को उपयोगकर्ता ने रद्द कर दिया था.
20 परीक्षण संरचना में कोई गड़बड़ी हुई.