Firebase Test Lab की मदद से, अलग-अलग डिवाइसों और कॉन्फ़िगरेशन पर अपने ऐप्लिकेशन की जांच की जा सकती है. शुरू करने के लिए बनी इस गाइड में, Test Lab को लागू करने का तरीका बताया गया है. साथ ही, इसमें Android के लिए Test Lab's की सुविधाओं के बारे में भी जानकारी दी गई है.
Test Lab के कोटा और कीमत प्लान के बारे में जानने के लिए, इस्तेमाल, कोटा, और कीमत देखें.
मुख्य सिद्धांत
जब चुने गए डिवाइसों और कॉन्फ़िगरेशन के हिसाब से, कोई टेस्ट या टेस्ट केस का सेट चलाया जाता है, तो Test Lab आपके ऐप्लिकेशन के लिए बैच में टेस्ट चलाता है. इसके बाद, नतीजों को टेस्ट मैट्रिक्स के तौर पर दिखाता है.
डिवाइस × टेस्ट के तरीके = टेस्ट मैट्रिक्स
- डिवाइस
- कोई फ़िज़िकल या वर्चुअल डिवाइस (सिर्फ़ Android), जिस पर टेस्ट चलाया जाता है. जैसे, फ़ोन, टैबलेट या Wear OS डिवाइस. टेस्ट मैट्रिक्स में मौजूद डिवाइसों की पहचान, डिवाइस मॉडल, ओएस वर्शन, स्क्रीन ओरिएंटेशन, और स्थानीय भाषा (इसे भौगोलिक सेटिंग और भाषा सेटिंग भी कहा जाता है) के हिसाब से की जाती है.
- टेस्ट, टेस्ट का तरीका
- किसी डिवाइस पर चलाया जाने वाला टेस्ट (या टेस्ट केस का सेट). हर डिवाइस पर एक टेस्ट चलाया जा सकता है. इसके अलावा, टेस्ट को अलग-अलग हिस्सों में बांटकर, उसके टेस्ट केस अलग-अलग डिवाइसों पर भी चलाए जा सकते हैं.
- टेस्ट मैट्रिक्स
- इसमें, टेस्ट के तरीकों की स्थितियां और नतीजे शामिल होते हैं. अगर मैट्रिक्स में मौजूद कोई टेस्ट का तरीका फ़ेल हो जाता है, तो पूरा मैट्रिक्स फ़ेल हो जाता है.
पहला चरण: Test Lab पर अपलोड करने के लिए, अपने टेस्ट की तैयारी करना
टेस्ट के उपलब्ध टाइप
Test Lab की मदद से, ये टेस्ट चलाए जा सकते हैं. ध्यान दें कि सभी तरह के टेस्ट, फ़िज़िकल डिवाइसों पर 45 मिनट और वर्चुअल डिवाइसों पर 60 मिनट तक ही चलाए जा सकते हैं. अनकैच किए गए किसी भी अपवाद की वजह से, टेस्ट फ़ेल हो जाएगा.
इंस्ट्रुमेंटेशन टेस्ट या इंस्ट्रुमेंटेड यूनिट टेस्ट: यह ऐसा टेस्ट है जिसे Espresso या UI Automator फ़्रेमवर्क का इस्तेमाल करके लिखा गया है. इस टेस्ट की मदद से, AndroidJUnitRunnerAPIsका इस्तेमाल करके, यह पुष्टि की जा सकती है कि आपका ऐप्लिकेशन सही तरीके से काम कर रहा है या नहीं. इसके लिए, ऐप्लिकेशन की स्थिति के बारे में साफ़ तौर पर दावे किए जा सकते हैं.
Test Lab में टेस्ट चलाने के लिए, उसे तैयार करने का तरीका जानने के लिए, इंस्ट्रुमेंटेशन टेस्ट चलाना लेख पढ़ें.Test Lab
इंस्ट्रुमेंटेशन टेस्ट बनाने का तरीका जानने के लिए, Android Developers का दस्तावेज़ देखें.
Robo टेस्ट: यह एक ऑटोमेटेड टेस्ट है, जो आपके ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) का विश्लेषण करता है. इसके बाद, उपयोगकर्ता की गतिविधियों को सिम्युलेट करके, व्यवस्थित तरीके से यूआई को एक्सप्लोर करता है. इसके लिए, आपको कोई कोड लिखने की ज़रूरत नहीं होती. ज़्यादा जानकारी के लिए, Robo टेस्ट के बारे में लेख पढ़ें.
गेम लूप टेस्ट: यह एक ऐसा टेस्ट है जो गेमिंग ऐप्लिकेशन में, प्लेयर की गतिविधियों को सिम्युलेट करने के लिए "डेमो मोड" का इस्तेमाल करता है. यह पुष्टि करने का एक तेज़ और स्केलेबल तरीका है कि आपका गेम, उपयोगकर्ताओं के लिए अच्छी परफ़ॉर्मेंस दे रहा है. गेम लूप टेस्ट चलाने के लिए, ये काम किए जा सकते हैं:
अपने गेम इंजन के लिए, नेटिव टेस्ट लिखना
अलग-अलग यूज़र इंटरफ़ेस (यूआई) या टेस्टिंग फ़्रेमवर्क के लिए, एक ही कोड लिखने से बचना
एक टेस्ट के तरीके में, एक से ज़्यादा लूप बनाना (ज़्यादा जानने के लिए, गेम लूप टेस्ट के बारे में लेख पढ़ें). लूप को लेबल का इस्तेमाल करके भी व्यवस्थित किया जा सकता है, ताकि उन्हें ट्रैक किया जा सके और खास लूप को फिर से चलाया जा सके.
यह टेस्ट चलाने का तरीका जानने के लिए, गेम लूप टेस्ट चलाना लेख पढ़ें. Test Lab
टेस्ट चलाने के लिए टूल
टेस्ट चलाने के लिए, इनमें से कोई टूल चुना जा सकता है:
पहली बार इस्तेमाल करने वाले लोगों के लिए सुझाव: Firebase कंसोल की मदद से, ऐप्लिकेशन अपलोड किया जा सकता है और वेब ब्राउज़र से टेस्टिंग शुरू की जा सकती है. इस टूल का इस्तेमाल करके टेस्ट चलाने का तरीका जानने के लिए, कंसोल की मदद से टेस्ट करना लेख पढ़ें.Firebase
Android Studio के साथ इंटिग्रेशन की मदद से, डेवलपमेंट एनवायरमेंट से बाहर निकले बिना अपने ऐप्लिकेशन की जांच की जा सकती है. इस टूल का इस्तेमाल करके टेस्ट चलाने का तरीका जानने के लिए, Android Studio की मदद से टेस्ट करना लेख पढ़ें.
gcloud कमांड लाइन इंटरफ़ेस की मदद से, कमांड लाइन से इंटरैक्टिव तरीके से टेस्ट चलाए जा सकते हैं . साथ ही, यह ऑटोमेटेड बिल्ड और टेस्टिंग प्रोसेस के हिस्से के तौर पर स्क्रिप्टिंग के लिए भी सही है . इस टूल का इस्तेमाल करके टेस्ट चलाने का तरीका जानने के लिए, gcloud सीएलआई की मदद से टेस्ट करना लेख पढ़ें.
Play Store पर, अल्फ़ा या बीटा चैनल का इस्तेमाल करके, अपने ऐप्लिकेशन की APK फ़ाइलें अपलोड और पब्लिश करने पर, Test Lab की मदद से अपने ऐप्लिकेशन को बिना किसी शुल्क के टेस्ट किया जा सकता है. ज़्यादा जानकारी के लिए, समस्याओं का पता लगाने के लिए लॉन्च से पहले की रिपोर्ट और Robo टेस्ट का इस्तेमाल करना लेख पढ़ें.
दूसरा चरण: टेस्टिंग के लिए डिवाइस चुनना
Test Lab Google के डेटा सेंटर में इंस्टॉल और चालू किए गए, Android डिवाइसों के कई मेक और मॉडल पर टेस्टिंग की सुविधा देता है. Test Lab में मौजूद डिवाइसों पर टेस्टिंग करने से, उन समस्याओं का पता लगाया जा सकता है जो Android Studio में एम्युलेटर का इस्तेमाल करके अपने ऐप्लिकेशन की जांच करते समय नहीं दिखती हैं.Test Lab ज़्यादा जानने के लिए, उपलब्ध डिवाइस देखें.
तीसरा चरण: टेस्ट के नतीजों की समीक्षा करना
टेस्ट शुरू करने के तरीके से कोई फ़र्क़ नहीं पड़ता. आपके सभी टेस्ट के नतीजों को 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's के फ़िज़िकल और वर्चुअल डिवाइसों को ऐक्सेस करने की अनुमति दी जा सकती है. इसके लिए, अपने फ़ायरवॉल के ज़रिए रूट खोलने के लिए, नीचे दिए गए आईपी पते के ब्लॉक का इस्तेमाल करें.
मोबाइल ऐडवर्टाइज़िंग
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 (फ़रवरी 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 में जोड़ा गया) 2001:4860:101d::/48 (अक्टूबर 2025 में जोड़ा गया) 2001:4860:101e::/48 (अक्टूबर 2025 में जोड़ा गया) 2001:4860:1031::/48 (अक्टूबर 2025 में जोड़ा गया) 70.32.128.48/28 (अप्रैल 2024 में जोड़ा गया) 70.32.150.192/27 (सितंबर 2025 में जोड़ा गया) 108.177.6.0/27 (सितंबर 2025 में जोड़ा गया) 108.177.24.160/27 (सितंबर 2025 में जोड़ा गया) 108.177.29.0/27 (सितंबर 2025 में जोड़ा गया) |
| Android वर्चुअल डिवाइस (नॉन-आर्म) |
34.68.194.64/29 (नवंबर 2019 में जोड़ा गया) 34.69.234.64/29 (नवंबर 2019 में जोड़ा गया) 34.73.34.72/29 (नवंबर 2019 में जोड़ा गया) 34.73.178.72/29 (नवंबर 2019 में जोड़ा गया) 34.74.10.72/29 (फ़रवरी 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 (फ़रवरी 2022 में हटाया गया) 216.239.44.24/29 (फ़रवरी 2022 में हटाया गया) |