यह मार्गदर्शिका बताती है कि gcloud CLI का उपयोग करके XCTest या गेम लूप परीक्षण कैसे चलाया जाए।
चरण 1 : अपने स्थानीय Google क्लाउड SDK वातावरण को कॉन्फ़िगर करें
- Google क्लाउड SDK डाउनलोड करें.
- सुनिश्चित करें कि आपका इंस्टॉलेशन अद्यतित है और इसमें
gcloud firebase
कमांड शामिल है:gcloud components update
- अपने Google खाते का उपयोग करके gcloud CLI में लॉग इन करें:
gcloud auth login
- अपने फायरबेस प्रोजेक्ट को gcloud में सेट करें, जहां PROJECT_ID आपके फायरबेस प्रोजेक्ट की आईडी है:
gcloud config set project PROJECT_ID
इसमें gcloud CLI टूल शामिल है।
चरण 2 : अपना परीक्षण चलाएँ
एक XCTest चलाएँ
निम्नलिखित आदेश चलाकर अपने परीक्षण की .zip फ़ाइल अपलोड करें (यदि आपने अभी तक अपना ऐप पैकेज नहीं किया है, तो अपने XCTest की पैकेजिंग देखें):
cd FOLDER_WITH_TEST_OUTPUT/Build/Products ; \ zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
अपने परीक्षण आयाम चुनें.
टेस्ट लैब आपको विभिन्न iOS संस्करणों, उपकरणों, स्क्रीन ओरिएंटेशन और स्थानों पर परीक्षण चलाने की सुविधा देता है। इन कॉन्फ़िगरेशन को परीक्षण के परीक्षण आयाम के रूप में जाना जाता है। प्रत्येक आयाम के लिए विकल्प देखने के लिए (उदाहरण के लिए, डिवाइस के iOS संस्करण के लिए समर्थित Xcode संस्करण), निम्नलिखित कमांड में
dimension
के लिएmodels
,versions
याlocales
बदलें:gcloud firebase test ios dimension list
स्क्रीन ओरिएंटेशन कुछ हद तक सरल है, क्योंकि इसके एकमात्र विकल्प
portrait
औरlandscape
हैं।परीक्षण आयामों की सूची देखें, और कुछ संयोजन चुनें जिन पर आप अपना परीक्षण चलाना चाहेंगे। आप प्रति दिन कितने संयोजन चला सकते हैं यह देखने के लिए मूल्य निर्धारण योजनाओं पर जाएँ।
एक बार जब आप परीक्षण आयामों का एक सेट चुन लेते हैं, तो आप
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 संस्करण जिसके साथ परीक्षण बनाया गया था और टेस्ट लैब द्वारा उपयोग किए गए डिफ़ॉल्ट 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=11.3
फायरबेस कंसोल में अपने परीक्षण मैट्रिक्स को पहचानने और ढूंढने में आपकी सहायता के लिए, आप वैकल्पिक रूप से निम्न उदाहरण में
--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
फ़्लैग सेट करके ऐसा कर सकते हैं। टेस्ट लैब विशेष अधिकारों का समर्थन करने के लिए एक नए बंडल-पहचानकर्ता के साथ एप्लिकेशन पर फिर से हस्ताक्षर करता है, इसलिए कृपया सुनिश्चित करें कि आपकी ज़िप फ़ाइल में ऐप के बंडल आईडी के सीधे संदर्भ वाले कोई संसाधन नहीं हैं। सूचनाएं धक्का
पुश अधिसूचना अनुरोधों को अधिकृत करने के लिए, उपयोगकर्ता कुंजी आईडी - C7FD9DJAA8 और टीम आईडी - 9CKCGNNUQN के साथ निजी हस्ताक्षर कुंजी का उपयोग करके JSON वेब टोकन बना सकते हैं। जेनरेट किए गए टोकन एक घंटे के लिए वैध होंगे और उन्हें हर 60 मिनट में ताज़ा करना होगा। एपीएन के लिए टोकन-आधारित कनेक्शन स्थापित करने के बारे में और पढ़ें।
ऐप समूहऐप समूह आईडी सार्वभौमिक रूप से अद्वितीय हैं। इसका मतलब यह है कि जब हम उपयोगकर्ता ऐप्स पर दोबारा हस्ताक्षर करते हैं, तो हम केवल ऐप समूह आईडी का उपयोग कर सकते हैं जो टेस्ट लैब डेवलपर खाते से जुड़ा हुआ है। यदि आपका परीक्षण ऐप समूहों पर निर्भर करता है, तो आपका परीक्षण विफल हो जाएगा।
गेम लूप टेस्ट चलाएँ
gcloud beta firebase test ios run
कमांड चलाएँ और रन को कॉन्फ़िगर करने के लिए निम्नलिखित फ़्लैग का उपयोग करें:
गेम लूप परीक्षणों के लिए झंडे | |
---|---|
--type | आवश्यक : निर्दिष्ट करता है कि आप किस प्रकार का iOS परीक्षण चलाना चाहते हैं। आप परीक्षण प्रकार |
--app | आवश्यक : आपके ऐप की आईपीए फ़ाइल के लिए पूर्ण पथ (जीसीएस या फ़ाइल सिस्टम)। यह ध्वज केवल गेम लूप परीक्षण चलाते समय मान्य है। |
--scenario-numbers | वे लूप (उर्फ परिदृश्य) जिन्हें आप अपने ऐप में चलाना चाहते हैं। आप एक लूप, एक सूची या लूप, या लूप की एक श्रृंखला दर्ज कर सकते हैं। डिफ़ॉल्ट लूप 1 है. उदाहरण के लिए, |
--device-model | वह भौतिक उपकरण जिस पर आप अपना परीक्षण चलाना चाहते हैं (पता लगाएं कि आप किन उपलब्ध उपकरणों का उपयोग कर सकते हैं)। |
--timeout | वह अधिकतम अवधि जो आप अपना परीक्षण चलाना चाहते हैं. आप अवधि को सेकंड में दर्शाने के लिए एक पूर्णांक दर्ज कर सकते हैं, या समय की लंबी इकाई के रूप में अवधि को दर्शाने के लिए एक पूर्णांक और गणना दर्ज कर सकते हैं। उदाहरण के लिए:
|
उदाहरण के लिए, निम्न कमांड एक गेम लूप टेस्ट चलाता है जो आईफोन 8 प्लस पर लूप 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
जीक्लाउड सीएलआई पर अधिक जानकारी के लिए संदर्भ दस्तावेज देखें।
चरण 3 (वैकल्पिक) : आपके द्वारा बनाए जाने वाले भविष्य के परीक्षणों को स्वचालित करें
टेस्ट लैब के साथ जीक्लाउड कमांड की स्क्रिप्टिंग
आप मोबाइल ऐप परीक्षण कमांड को स्वचालित करने के लिए शेल स्क्रिप्ट या बैच फ़ाइलों का उपयोग कर सकते हैं जिन्हें आप अन्यथा 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
स्क्रिप्ट निकास कोड
टेस्ट लैब कई निकास कोड प्रदान करता है जिनका उपयोग आप स्क्रिप्ट या बैच फ़ाइलों का उपयोग करके चलाए जाने वाले परीक्षणों के परिणामों को बेहतर ढंग से समझने के लिए कर सकते हैं।
निकास कोड | टिप्पणियाँ |
---|---|
0 | सभी परीक्षण निष्पादन उत्तीर्ण हुए। |
1 | एक सामान्य विफलता हुई. संभावित कारणों में शामिल हैं: एक फ़ाइल नाम जो मौजूद नहीं है या HTTP/नेटवर्क त्रुटि। |
2 | परीक्षण बंद कर दिया गया क्योंकि अज्ञात आदेश या तर्क प्रदान किए गए थे। |
10 | परीक्षण निष्पादन के भीतर एक या अधिक परीक्षण मामले (परीक्षण किए गए वर्ग या वर्ग विधियां) पास नहीं हुए। |
15 | एक अप्रत्याशित त्रुटि के कारण फायरबेस टेस्ट लैब यह निर्धारित नहीं कर सका कि परीक्षण मैट्रिक्स उत्तीर्ण हुआ या विफल। |
19 | उपयोगकर्ता द्वारा परीक्षण मैट्रिक्स रद्द कर दिया गया था। |
20 | एक परीक्षण अवसंरचना त्रुटि उत्पन्न हुई. |
चरण 4 : परीक्षण परिणामों की जांच करें
जब परीक्षण शुरू होता है, तो आपको परीक्षण परिणाम पृष्ठ का एक लिंक प्राप्त होता है। आपके द्वारा चुने गए विभिन्न कॉन्फ़िगरेशन की संख्या और आपके परीक्षणों के लिए निर्धारित परीक्षण समय-सीमा अवधि के आधार पर, परीक्षणों को चलने में कई मिनट लग सकते हैं। आपके परीक्षण चलने के बाद, आप परीक्षण परिणामों की समीक्षा कर सकते हैं। अपने परीक्षण परिणामों की व्याख्या करने के तरीके के बारे में अधिक जानने के लिए फायरबेस टेस्ट लैब परिणामों का विश्लेषण देखें।
अगला कदम
आम तौर पर उपलब्ध या बीटा में परीक्षण विकल्पों का पता लगाने के लिए Google क्लाउड SDK दस्तावेज़ पढ़ें।