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

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

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

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

  3. पक्का करें कि आपका इंस्टॉलेशन अप-टू-डेट है और उसमें ये शामिल हैं gcloud firebase कमांड:
          gcloud components update
  4. अपने Google खाते का इस्तेमाल करके gcloud सीएलआई में लॉग इन करें:
          gcloud auth login
  5. अपना Firebase प्रोजेक्ट gcloud में सेट करें, जहां 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 वर्शन), तो इसके लिए models, versions या locales dimension को इन निर्देश में शामिल किया जाएगा:

    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
पुश नोटिफ़िकेशन

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

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

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

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

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

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

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

--app

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

--scenario-numbers

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

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

--device-model

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

--timeout

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

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

  • 200 तक चलने पर, --timeout=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 सीएलआई के बारे में ज़्यादा जानकारी के लिए रेफ़रंस दस्तावेज़.

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

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

मोबाइल ऐप्लिकेशन की जांच करने के उन निर्देशों को ऑटोमेट करने के लिए, शेल स्क्रिप्ट या बैच फ़ाइलों का इस्तेमाल किया जा सकता है जिन्हें आम तौर पर gcloud कमांड लाइन का इस्तेमाल करके चलाया जाता है. यह सैंपल बैश स्क्रिप्ट दो मिनट के टाइमआउट के साथ 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 टूल का दस्तावेज़ पढ़ें जो सामान्य तौर पर उपलब्ध हैं या बीटा वर्शन में हैं.