Firebase टेस्ट लैब की मदद से, Android का टेस्ट शुरू करें

Firebase Test Lab की मदद से, अपने ऐप्लिकेशन को अलग-अलग डिवाइसों और कॉन्फ़िगरेशन पर टेस्ट किया जा सकता है. 'शुरू करें' गाइड में, आपको लागू करने का तरीका बताया गया है. साथ ही, इसमें Test Lab के Android ऑफ़र के बारे में जानकारी दी गई है.

Test Lab के कोटा और कीमत के प्लान के बारे में जानकारी के लिए, इस्तेमाल, कोटा, और कीमत देखें.

मुख्य सिद्धांत

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

डिवाइस × टेस्ट एक्ज़ीक्यूशन = टेस्ट मैट्रिक्स

डिवाइस
फ़ोन, टैबलेट या पहना जाने वाला डिवाइस जैसे किसी फ़िज़िकल या वर्चुअल डिवाइस (सिर्फ़ Android) पर टेस्ट किया जाता है. टेस्ट मैट्रिक्स में मौजूद डिवाइसों की पहचान, डिवाइस मॉडल, ओएस वर्शन, स्क्रीन ओरिएंटेशन, और स्थान-भाषा (इसे भौगोलिक और भाषा की सेटिंग भी कहा जाता है) के हिसाब से की जाती है.
टेस्ट, टेस्ट एक्ज़ीक्यूशन
किसी डिवाइस पर टेस्ट (या टेस्ट केस का सेट) चलाया जाना है. हर डिवाइस पर एक टेस्ट चलाया जा सकता है. इसके अलावा, टेस्ट को शेयर करके अलग-अलग डिवाइसों पर टेस्ट केस चलाए जा सकते हैं.
टेस्ट मैट्रिक्स
इसमें टेस्ट के एक्ज़ीक्यूशन के स्टेटस और नतीजे शामिल होते हैं. अगर मैट्रिक्स में कोई भी टेस्ट एक्ज़ीक्यूशन पूरा नहीं होता है, तो पूरी मैट्रिक्स फ़ेल हो जाती है.

पहला चरण: Test Lab पर अपलोड करने के लिए, टेस्ट तैयार करना

टेस्ट के उपलब्ध टाइप

Test Lab की मदद से, ये टेस्ट किए जा सकते हैं. ध्यान दें कि सभी तरह के टेस्ट, फ़िज़िकल डिवाइसों पर 45 मिनट और वर्चुअल डिवाइसों पर 60 मिनट तक ही चलाए जा सकते हैं. अगर कोई अपवाद नहीं पकड़ा जाता है, तो टेस्ट फ़ेल हो जाएगा.

  • इंस्ट्रुमेंटेशन टेस्ट या इंस्ट्रुमेंटेड यूनिट टेस्ट: यह एक ऐसा टेस्ट होता है जिसे आपने Espresso या UI Automator फ़्रेमवर्क का इस्तेमाल करके लिखा है. इस टेस्ट की मदद से, AndroidJUnitRunnerAPIs का इस्तेमाल करके, ऐप्लिकेशन की स्थिति के बारे में साफ़ तौर पर दावे किए जा सकते हैं. इससे यह पुष्टि की जा सकती है कि ऐप्लिकेशन सही तरीके से काम कर रहा है या नहीं.

  • रोबो टेस्ट: यह एक ऑटोमेटेड टेस्ट होता है. इसमें आपके ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) का विश्लेषण किया जाता है. इसके बाद, उपयोगकर्ता की गतिविधियों को सिम्युलेट करके, यूआई को व्यवस्थित तरीके से एक्सप्लोर किया जाता है. इसके लिए, आपको कोई कोड लिखने की ज़रूरत नहीं होती. ज़्यादा जानकारी के लिए, रोबो टेस्ट के बारे में जानकारी पर जाएं.

  • गेम लूप टेस्ट: यह एक ऐसा टेस्ट है जिसमें "डेमो मोड" का इस्तेमाल किया जाता है. इससे गेमिंग ऐप्लिकेशन में, खिलाड़ी की कार्रवाइयों को सिम्युलेट किया जा सकता है. यह पुष्टि करने का तेज़ और बेहतर तरीका है कि आपका गेम उपयोगकर्ताओं के लिए सही तरीके से काम कर रहा है. गेम लूप टेस्ट चलाने पर, ये काम किए जा सकते हैं:

    • अपने गेम इंजन के हिसाब से टेस्ट लिखना

    • अलग-अलग यूज़र इंटरफ़ेस (यूआई) या टेस्टिंग फ़्रेमवर्क के लिए, एक ही कोड लिखने से बचें

    • एक ही टेस्ट को कई बार चलाने के लिए, एक से ज़्यादा लूप बनाएं. हालांकि, यह ज़रूरी नहीं है (ज़्यादा जानने के लिए, गेम लूप टेस्ट के बारे में जानकारी पर जाएं). लेबल का इस्तेमाल करके भी लूप व्यवस्थित किए जा सकते हैं. इससे आपको उन्हें ट्रैक करने और खास लूप को फिर से चलाने में मदद मिलती है.

    Test Lab की मदद से इस टेस्ट को चलाने के निर्देशों के लिए, गेम लूप टेस्ट चलाना लेख पढ़ें.

टेस्ट चलाने के लिए टूल

टेस्ट चलाने के लिए, इनमें से कोई टूल चुना जा सकता है:

  • पहली बार इस्तेमाल करने वालों के लिए सुझाव: Firebase कंसोल की मदद से, ऐप्लिकेशन अपलोड किया जा सकता है. साथ ही, वेब ब्राउज़र से टेस्टिंग शुरू की जा सकती है. इस टूल का इस्तेमाल करके जांच करने के निर्देश पाने के लिए, Firebase कंसोल की मदद से जांच करें पर जाएं.

  • Android Studio इंटिग्रेशन की मदद से, डेवलपमेंट एनवायरमेंट से बाहर निकले बिना अपने ऐप्लिकेशन को टेस्ट किया जा सकता है. इस टूल का इस्तेमाल करके टेस्ट चलाने के निर्देशों के लिए, Android Studio के साथ टेस्ट करना लेख पढ़ें.

  • gcloud कमांड लाइन इंटरफ़ेस की मदद से, कमांड लाइन से इंटरैक्टिव तरीके से टेस्ट चलाए जा सकते हैं. साथ ही, यह स्क्रिप्टिंग के लिए भी सही है. इसका इस्तेमाल, अपने-आप होने वाली बिल्ड और टेस्टिंग प्रोसेस के हिस्से के तौर पर किया जा सकता है. इस टूल का इस्तेमाल करके टेस्ट चलाने के निर्देशों के लिए, gcloud CLI की मदद से टेस्ट करना लेख पढ़ें.

अल्फ़ा या बीटा चैनल का इस्तेमाल करके, Play Store पर अपने ऐप्लिकेशन की APK फ़ाइलें अपलोड और पब्लिश करने पर, Test Lab की मदद से बिना किसी शुल्क के अपने ऐप्लिकेशन की जांच की जा सकती है. ज़्यादा जानकारी के लिए, समस्याओं का पता लगाने के लिए, प्री-लॉन्च रिपोर्ट का इस्तेमाल करना और रोबो टेस्ट लेख पढ़ें.

दूसरा चरण: टेस्ट करने के लिए डिवाइस चुनना

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

तीसरा चरण: टेस्ट के नतीजों की समीक्षा करना

आपने जांच शुरू करने के लिए कोई भी तरीका चुना हो, जांच के सभी नतीजों को Test Lab मैनेज करता है. इन्हें ऑनलाइन देखा जा सकता है.

टेस्ट के नतीजे की खास जानकारी अपने-आप सेव हो जाती है. इसे Firebase कंसोल में देखा जा सकता है. इसमें आपकी जांच के लिए सबसे काम का डेटा होता है. जैसे, टेस्ट केस के हिसाब से वीडियो, स्क्रीनशॉट, पास, फ़ेल या फ़्लेकी नतीजे देने वाली जांचों की संख्या वगैरह.

टेस्ट के रॉ नतीजे में टेस्ट लॉग और ऐप्लिकेशन के काम न करने की जानकारी होती है. यह Google Cloud बकेट में अपने-आप सेव हो जाती है. अगर आपने कोई बकेट तय की है, तो स्टोरेज का शुल्क आपको चुकाना होगा. अगर आपने कोई बकेट तय नहीं की है, तो Test Lab आपके लिए एक बकेट बनाता है. इसके लिए, आपसे कोई शुल्क नहीं लिया जाता.

ज़्यादा जानकारी के लिए, Firebase Test Lab के नतीजे देखें लेख पढ़ें.

Android Studio से टेस्ट शुरू करने पर, आपको डेवलपमेंट एनवायरमेंट में भी टेस्ट के नतीजे दिखेंगे.

डिवाइस का स्टोरेज खाली करना

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

Test Lab के इस्तेमाल किए गए वर्चुअल डिवाइसों के लिए, डिवाइस इंस्टेंस का इस्तेमाल होने के बाद उन्हें मिटा दिया जाता है. ऐसा इसलिए किया जाता है, ताकि हर टेस्ट रन में नए वर्चुअल डिवाइस इंस्टेंस का इस्तेमाल किया जा सके.


Test Lab और Google Play services

Test Lab डिवाइसों में आम तौर पर, Google Play services SDK का नया वर्शन इस्तेमाल किया जाता है. हालांकि, SDK का नया वर्शन रिलीज़ होने के बाद, कुछ डिवाइसों को अपडेट होने में कुछ दिन लग सकते हैं. ध्यान दें कि कुछ डिवाइसों पर, आपको इस सुविधा के साथ काम करने से जुड़ी समस्याएं आ सकती हैं.

टेस्ट डिवाइसों को निजी बैकएंड सर्वर ऐक्सेस करने की अनुमति देना

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

मोबाइल ऐडवर्टाइज़िंग

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

इस समस्या को कम करने के लिए:

  • अगर तीसरे पक्ष की डिजिटल विज्ञापन कंपनियों का इस्तेमाल किया जाता है या उनके साथ काम किया जाता है (उदाहरण के लिए, विज्ञापन नेटवर्क या मांग-पक्ष के प्लैटफ़ॉर्म), तो हमारा सुझाव है कि ऐप्लिकेशन डेवलप करने और उसकी टेस्टिंग के दौरान, असली विज्ञापनों के बजाय टेस्ट विज्ञापनों का इस्तेमाल करें.

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

Test Lab डिवाइसों के इस्तेमाल किए गए आईपी पते

Test Lab डिवाइसों से जनरेट होने वाला सभी नेटवर्क ट्रैफ़िक, यहां दिए गए आईपी पते के ब्लॉक से आता है. gcloud सीएलआई में gcloud beta firebase test ip-blocks list कमांड का इस्तेमाल करके भी इस सूची को ऐक्सेस किया जा सकता है. इस सूची को साल में एक बार अपडेट किया जाता है.

प्लैटफ़ॉर्म और डिवाइस का टाइप सीआईडीआर आईपी पता ब्लॉक
Android और iOS के फ़िज़िकल डिवाइस, Arm वर्चुअल डिवाइस

70.32.128.0/19 (फ़रवरी 2022 में जोड़ा गया)

108.177.6.0/23

108.177.18.192/26 (फ़रवरी 2022 में जोड़ा गया)

108.177.29.64/27 (फ़रवरी 2022 में बढ़ाया गया)

108.177.31.160/27 (added 02-2022)

199.36.156.8/29 (फ़रवरी 2022 में जोड़ा गया)

199.36.156.16/28 (फ़रवरी 2022 में जोड़ा गया)

209.85.131.0/27 (फ़रवरी 2022 में जोड़ा गया)

2001:4860:1008::/48 (फ़रवरी 2022 में जोड़ा गया)

2001:4860:1018::/48 (फ़रवरी 2022 में जोड़ा गया)

2001:4860:1019::/48 (फ़रवरी 2022 में जोड़ा गया)

2001:4860:1020::/48 (फ़रवरी 2022 में जोड़ा गया)

2001:4860:1022::/48 (फ़रवरी 2022 में जोड़ा गया)

70.32.128.48/28 (अप्रैल 2024 में जोड़ा गया)

Android वर्चुअल डिवाइस (नॉन-आर्म)

34.68.194.64/29 (added 11-2019)

34.69.234.64/29 (नवंबर 2019 में जोड़ा गया)

34.73.34.72/29 (नवंबर 2019 में जोड़ा गया)

34.73.178.72/29 (added 11-2019)

34.74.10.72/29 (added 02-2022)

34.136.2.136/29 (फ़रवरी 2022 में जोड़ा गया)

34.136.50.136/29 (फ़रवरी 2022 में जोड़ा गया)

34.145.234.144/29 (फ़रवरी 2022 में जोड़ा गया)

35.192.160.56/29

35.196.166.80/29

35.196.169.240/29

35.203.128.0/28

35.234.176.160/28

35.243.2.0/27 (जुलाई 2019 में जोड़ा गया)

35.245.243.240/29 (फ़रवरी 2022 में जोड़ा गया)

199.192.115.0/30

199.192.115.8/30

199.192.115.16/29

डिवाइस के आईपी-ब्लॉक अब इस्तेमाल नहीं किए जा रहे हैं

74.125.122.32/29 (removed 02-2022)

216.239.44.24/29 (फ़रवरी 2022 में हटाया गया)