Google Cloud सीएलआई की मदद से टेस्ट करना

इस गाइड में, gcloud CLI का इस्तेमाल करके XCTest या गेम लूप टेस्ट चलाने का तरीका बताया गया है.

पहला चरण: अपने स्थानीय Google Cloud SDK टूल के एनवायरमेंट को कॉन्फ़िगर करना

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

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

दूसरा चरण: टेस्ट चलाना

XCTest चलाना

  1. नीचे दिया गया निर्देश चलाकर, अपने टेस्ट की .zip फ़ाइल अपलोड करें. अगर आपने अब तक अपने ऐप्लिकेशन को पैकेज नहीं किया है, तो अपने XCTest को पैकेज करना लेख पढ़ें:

    cd FOLDER_WITH_TEST_OUTPUT/Build/Products ; \
    zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
  2. अपने टेस्ट डाइमेंशन चुनें.

    Test Lab की मदद से, iOS के अलग-अलग वर्शन, डिवाइसों, स्क्रीन ओरिएंटेशन, और भाषाओं पर टेस्ट चलाए जा सकते हैं. इन कॉन्फ़िगरेशन को टेस्ट के टेस्ट डाइमेंशन कहा जाता है. हर डाइमेंशन के विकल्प देखने के लिए (उदाहरण के लिए, डिवाइस के iOS वर्शन के लिए काम करने वाले Xcode वर्शन), नीचे दिए गए निर्देश में dimension के लिए models, versions या locales का इस्तेमाल करें:

    gcloud firebase test ios dimension list

    स्क्रीन ओरिएंटेशन को सेट करना थोड़ा आसान है, क्योंकि इसके सिर्फ़ दो विकल्प हैं: portrait और landscape.

    टेस्ट डाइमेंशन की सूची देखें और कुछ ऐसे कॉम्बिनेशन चुनें जिन पर आपको अपना टेस्ट चलाना है. हर दिन ज़्यादा से ज़्यादा कितने कॉम्बिनेशन चलाए जा सकते हैं, यह जानने के लिए कीमत के प्लान पर जाएं.

  3. टेस्ट डाइमेंशन का सेट चुनने के बाद, Test Lab firebase test ios run कमांड का इस्तेमाल करके अपने टेस्ट चलाए जा सकते हैं. आपको जिन टेस्ट डाइमेंशन के कॉम्बिनेशन की जांच करनी है उनके लिए, एक अलग --device फ़्लैग शामिल करें:

    gcloud firebase test ios run --test PATH/TO/MyTests.zip \
     --device model=MODEL_ID_1,version=VERSION_ID_1,locale=LOCALE_1,orientation=ORIENTATION_1 \
     --device model=MODEL_ID_2,version=VERSION_ID_2,locale=LOCALE_2,orientation=ORIENTATION_2 \
     etc...

    ऐसा हो सकता है कि आपका टेस्ट पूरा न हो पाए. इसकी वजह यह है कि जिस Xcode वर्शन का इस्तेमाल करके टेस्ट बनाया गया है वह Test Lab के डिफ़ॉल्ट Xcode वर्शन के साथ काम नहीं करता. अपने टेस्ट के लिए, काम करने वाले Xcode वर्शन की जानकारी देने के लिए, --xcode-version फ़्लैग का इस्तेमाल करें:

    gcloud firebase test ios run --test PATH/TO/MyTests.zip \
     --device model=MODEL_ID_1,version=VERSION_ID_1,locale=LOCALE_1,orientation=ORIENTATION_1 \
     --xcode-version=15

    Firebase कंसोल में अपने टेस्ट मैट्रिक की पहचान करने और उन्हें ढूंढने में मदद पाने के लिए, नीचे दिए गए उदाहरण में दिए गए --client-details matrixLabel="<label>" फ़्लैग का इस्तेमाल करके, अपने टेस्ट मैट्रिक को लेबल किया जा सकता है:

    gcloud beta firebase test ios run --test PATH/TO/MyTests.zip \
      --device model=MODEL_ID_1,version=VERSION_ID_1,locale=LOCALE_1,orientation=ORIENTATION_1 \
      --client-details matrixLabel="my label"

खास एनटाइटलमेंट की जांच करना

जिन एनटाइटलमेंट के लिए साफ़ तौर पर ऐप्लिकेशन आईडी की ज़रूरत होती है उनकी जांच करने के लिए, --test-special-entitlements फ़्लैग सेट करें. Test Lab खास एनटाइटलमेंट के साथ काम करने के लिए, ऐप्लिकेशन को नए बंडल-आइडेंटिफ़ायर के साथ फिर से साइन करता है. इसलिए, पक्का करें कि आपकी ZIP फ़ाइल में ऐसे कोई रिसॉर्स न हों जिनमें ऐप्लिकेशन के बंडल आइडेंटिफ़ायर का सीधा रेफ़रंस हो.

इस्तेमाल किए जा सकने वाले एनटाइटलमेंट:
  1. पुश नोटिफ़िकेशन apns-environment
  2. निजी वीपीएन com.apple.developer.networking.vpn.api
पुश नोटिफ़िकेशन

पुश नोटिफ़िकेशन के अनुरोधों को अनुमति देने के लिए, उपयोगकर्ता निजी हस्ताक्षर करने वाली कुंजी के साथ-साथ, पासकोड - C7FD9DJAA8 और टीम आईडी - 9CKCGNNUQN का इस्तेमाल करके, JSON वेब टोकन बना सकते हैं. जनरेट किए गए टोकन एक घंटे के लिए मान्य रहेंगे. साथ ही, इन्हें हर 60 मिनट में रीफ़्रेश करना होगा. APNs से टोकन-आधारित कनेक्शन बनाने के बारे में ज़्यादा जानें.

ऐप्लिकेशन ग्रुप

ऐप्लिकेशन ग्रुप आईडी, दुनिया भर में यूनीक होते हैं. इसका मतलब है कि उपयोगकर्ता के ऐप्लिकेशन को फिर से साइन करने पर, हम सिर्फ़ उस ऐप्लिकेशन ग्रुप आईडी का इस्तेमाल कर सकते हैं जो Test Lab डेवलपर खाते से जुड़ा है. अगर आपका टेस्ट, ऐप्लिकेशन ग्रुप पर निर्भर करता है, तो आपका टेस्ट पूरा नहीं हो पाएगा.

गेम लूप टेस्ट चलाना

gcloud beta firebase test ios run कमांड चलाएं और रन को कॉन्फ़िगर करने के लिए, इन फ़्लैग का इस्तेमाल करें:

गेम लूप की जांच के लिए फ़्लैग
--type

ज़रूरी है: इससे पता चलता है कि आपको किस तरह का iOS टेस्ट चलाना है. जांच के टाइप के तौर पर, xctest (डिफ़ॉल्ट) या game-loop डाला जा सकता है.

--app

ज़रूरी है: आपके ऐप्लिकेशन की IPA फ़ाइल का ऐब्सलूट पाथ (GCS या फ़ाइल सिस्टम). यह फ़्लैग सिर्फ़ गेम लूप टेस्ट चलाने के दौरान मान्य होता है.

--scenario-numbers

वे लूप (जिन्हें परिदृश्य भी कहा जाता है) जिन्हें आपको अपने ऐप्लिकेशन में चलाना है. एक लूप, लूप की सूची या लूप की रेंज डाली जा सकती है. डिफ़ॉल्ट लूप 1 है.

उदाहरण के लिए, --scenario-numbers=1-3,5, लूप 1, 2, 3, और 5 चलाता है.

--device-model

वह डिवाइस जिस पर आपको टेस्ट चलाना है (जानें कि किन उपलब्ध डिवाइसों का इस्तेमाल किया जा सकता है).

--timeout

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

उदाहरण के लिए:

  • --timeout=200, 200 सेकंड तक चलने के बाद आपके टेस्ट को बंद कर देता है.
  • --timeout=1h, एक घंटे तक चलने के बाद आपके टेस्ट को बंद कर देता है.

उदाहरण के लिए, यह कमांड गेम लूप टेस्ट चलाता है, जो iPhone 8 Plus पर लूप 1, 4, 6, 7, और 8 को चलाता है:

gcloud beta firebase test ios run
 --type game-loop --app path/to/my/App.ipa --scenario-numbers 1,4,6-8
 --device-model=iphone8plus

gcloud CLI के बारे में ज़्यादा जानने के लिए, रेफ़रंस दस्तावेज़ देखें.

तीसरा चरण (ज़रूरी नहीं): आने वाले समय में बनाए जाने वाले टेस्ट को ऑटोमेट करना

Test Lab की मदद से gcloud कमांड की स्क्रिप्ट बनाना

मोबाइल ऐप्लिकेशन की जांच करने के उन निर्देशों को ऑटोमेट करने के लिए, शेल स्क्रिप्ट या बैच फ़ाइलों का इस्तेमाल किया जा सकता है जिन्हें आम तौर पर gcloud कमांड-लाइन का इस्तेमाल करके चलाया जाता है. यह सैंपल bash स्क्रिप्ट, दो मिनट के टाइम आउट के साथ XCTest को चलाती है. साथ ही, यह रिपोर्ट करती है कि जांच पूरी हो गई है या नहीं:

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

स्क्रिप्ट से बाहर निकलने के कोड

Test Lab कई तरह के बाहर निकलने के कोड उपलब्ध कराता है. इनका इस्तेमाल करके, स्क्रिप्ट या बैच फ़ाइलों का इस्तेमाल करके चलाए गए टेस्ट के नतीजों को बेहतर तरीके से समझा जा सकता है.

बाहर निकलने का कोड नोट
0 सभी टेस्ट पास हो गए.
1 कोई सामान्य गड़बड़ी हुई. इसकी ये वजहें हो सकती हैं: फ़ाइल का नाम मौजूद न होना या एचटीटीपी/नेटवर्क से जुड़ी गड़बड़ी.
2 अज्ञात निर्देश या आर्ग्युमेंट दिए जाने की वजह से, जांच बंद हो गई.
10 टेस्ट के दौरान, एक या एक से ज़्यादा टेस्ट केस (जांच की गई क्लास या क्लास के तरीके) पास नहीं हुए.
15 अचानक हुई गड़बड़ी की वजह से, Firebase Test Lab यह पता नहीं लगा सका कि टेस्ट मैट्रिक पास हुई या नहीं.
19 उपयोगकर्ता ने टेस्ट मैट्रिक रद्द कर दी.
20 टेस्ट इन्फ़्रास्ट्रक्चर से जुड़ी कोई गड़बड़ी हुई.

चौथा चरण: जांच के नतीजों की जांच करना

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

अगला चरण

टेस्टिंग के उन विकल्पों के बारे में जानने के लिए, Google Cloud SDK टूल का दस्तावेज़ पढ़ें जो सामान्य तौर पर उपलब्ध हैं या बीटा वर्शन में हैं.