Firebase Test Lab की मदद से, कई तरह के डिवाइसों और कॉन्फ़िगरेशन पर अपने ऐप्लिकेशन की जांच की जा सकती है. इस गाइड में, आपको Test Lab के Android प्रॉडक्ट और सेवाओं के बारे में जानकारी मिलेगी. साथ ही, उन्हें लागू करने का तरीका भी बताया गया है.
Test Lab के कोटा और कीमत के प्लान के बारे में जानकारी पाने के लिए, इस्तेमाल, कोटा, और कीमत देखें.
मुख्य सिद्धांत
जब चुने गए डिवाइसों और कॉन्फ़िगरेशन के लिए, कोई टेस्ट या टेस्ट केस का सेट चलाया जाता है, तो Test Lab आपके ऐप्लिकेशन के लिए टेस्ट को बैच में चलाता है. इसके बाद, नतीजों को जांच के मैट्रिक्स के तौर पर दिखाता है.
डिवाइस × जांच करना = जांच का मैट्रिक्स
- डिवाइस
- कोई फ़िज़िकल या वर्चुअल डिवाइस (सिर्फ़ Android) जिस पर टेस्ट चलाया जाता है. जैसे, फ़ोन, टैबलेट या पहने जाने वाला डिवाइस. जांच के मैट्रिक्स में मौजूद डिवाइसों की पहचान, डिवाइस के मॉडल, ओएस वर्शन, स्क्रीन ओरिएंटेशन, और स्थान-भाषा (इसे भौगोलिक और भाषा की सेटिंग भी कहा जाता है) से की जाती है.
- जांच, जांच करना
- किसी डिवाइस पर चलाया जाने वाला टेस्ट (या टेस्ट केस का सेट). हर डिवाइस पर एक टेस्ट चलाया जा सकता है. इसके अलावा, टेस्ट को अलग-अलग हिस्सों में बांटकर, उसके टेस्ट केस को अलग-अलग डिवाइसों पर चलाया जा सकता है.
- जांच का मैट्रिक्स
- इसमें, टेस्ट एक्ज़ीक्यूशन की स्थितियां और टेस्ट के नतीजे शामिल होते हैं. अगर किसी मैट्रिक्स में कोई भी टेस्ट एक्ज़ीक्यूशन फ़ेल हो जाता है, तो पूरा मैट्रिक्स फ़ेल हो जाता है.
पहला चरण: Test Lab पर अपलोड करने के लिए, टेस्ट तैयार करना
उपलब्ध टेस्ट टाइप
Test Lab की मदद से, ये टेस्ट किए जा सकते हैं. ध्यान दें कि सभी तरह के टेस्ट, फ़िज़िकल डिवाइसों पर 45 मिनट और वर्चुअल डिवाइसों पर 60 मिनट तक ही चलाए जा सकते हैं. अगर कोई अपवाद नहीं पकड़ा जाता है, तो टेस्ट फ़ेल हो जाएगा.
इंस्ट्रुमेंटेशन टेस्ट या इंस्ट्रुमेंटेड यूनिट टेस्ट: यह एक ऐसा टेस्ट है जिसे आपने Espresso या UI Automator फ़्रेमवर्क का इस्तेमाल करके लिखा है. इस टेस्ट की मदद से, अपने ऐप्लिकेशन की स्थिति के बारे में साफ़ तौर पर दावे किए जा सकते हैं. इससे, AndroidJUnitRunnerAPIs का इस्तेमाल करके, यह पुष्टि की जा सकती है कि ऐप्लिकेशन सही तरीके से काम कर रहा है या नहीं.
Test Lab में टेस्ट चलाने के लिए, उसे तैयार करने का तरीका जानने के लिए, इंस्ट्रुमेंटेशन टेस्ट चलाएं पर जाएं.
इंस्ट्रुमेंटेशन टेस्ट बनाने के तरीके के बारे में जानने के लिए, Android Developers का दस्तावेज़ पढ़ें.
रोबो टेस्ट: यह अपने-आप होने वाला टेस्ट है, जो आपके ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) का विश्लेषण करता है. इसके बाद, उपयोगकर्ता की गतिविधियों को सिम्युलेट करके, व्यवस्थित तरीके से उसकी जांच करता है. इसके लिए, आपको कोई कोड लिखने की ज़रूरत नहीं होती. ज़्यादा जानकारी के लिए, रोबो टेस्ट के बारे में जानकारी पर जाएं.
गेम लूप टेस्ट: यह एक ऐसा टेस्ट है जो गेमिंग ऐप्लिकेशन में, खिलाड़ी की कार्रवाइयों को सिम्युलेट करने के लिए "डेमो मोड" का इस्तेमाल करता है. यह एक तेज़ और स्केलेबल तरीका है, जिससे यह पुष्टि की जा सकती है कि आपका गेम उपयोगकर्ताओं के लिए अच्छा परफ़ॉर्म कर रहा है. गेम लूप टेस्ट चलाने का विकल्प चुनने पर, ये काम किए जा सकते हैं:
अपने गेम इंजन के लिए नेटिव टेस्ट लिखना
अलग-अलग यूज़र इंटरफ़ेस (यूआई) या टेस्टिंग फ़्रेमवर्क के लिए, एक ही कोड लिखने से बचें
एक ही टेस्ट में कई लूप चलाए जा सकते हैं. इसके बारे में ज़्यादा जानने के लिए, गेम लूप टेस्ट के बारे में जानकारी पर जाएं. लेबल का इस्तेमाल करके, लूप को व्यवस्थित भी किया जा सकता है. इससे उन्हें ट्रैक किया जा सकता है और खास लूप को फिर से चलाया जा सकता है.
Test Lab के साथ इस टेस्ट को चलाने के निर्देशों के लिए, गेम लूप टेस्ट चलाएं देखें.
टेस्ट चलाने के लिए टूल
टेस्ट चलाने के लिए, इनमें से कोई टूल चुना जा सकता है:
पहली बार इस्तेमाल करने वाले उपयोगकर्ताओं के लिए सुझाव: Firebase कंसोल की मदद से, वेब ब्राउज़र से ऐप्लिकेशन अपलोड किया जा सकता है और टेस्टिंग शुरू की जा सकती है. इस टूल का इस्तेमाल करके टेस्ट चलाने के निर्देशों के लिए, Firebase कंसोल की मदद से टेस्ट करना देखें.
Android Studio इंटिग्रेशन की मदद से, डेवलपमेंट एनवायरमेंट को छोड़े बिना ही ऐप्लिकेशन की जांच की जा सकती है. इस टूल का इस्तेमाल करके टेस्ट चलाने के निर्देशों के लिए, Android Studio की मदद से टेस्ट करना देखें.
gcloud कमांड लाइन इंटरफ़ेस की मदद से, कमांड लाइन से इंटरैक्टिव तरीके से टेस्ट चलाए जा सकते हैं. साथ ही, यह ऑटोमेटेड बिल्ड और टेस्टिंग प्रोसेस के हिस्से के तौर पर स्क्रिप्टिंग के लिए भी सही है. इस टूल का इस्तेमाल करके टेस्ट चलाने के निर्देशों के लिए, gcloud सीएलआई की मदद से टेस्ट करना देखें.
ऐप्लिकेशन को बिना किसी शुल्क के Test Lab की मदद से भी टेस्ट किया जा सकता है. इसके लिए, ऐप्लिकेशन की APK फ़ाइलों को ऐल्फ़ा या बीटा चैनल का इस्तेमाल करके, Play Store पर अपलोड और पब्लिश करना होगा. ज़्यादा जानकारी के लिए, समस्याओं का पता लगाने के लिए प्री-लॉन्च रिपोर्ट इस्तेमाल करना और रोबो टेस्ट देखें.
दूसरा चरण: टेस्टिंग के लिए डिवाइस चुनें
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 (फ़रवरी 2022 में जोड़ा गया) 199.36.156.8/29 (फ़रवरी 2022 में जोड़ा गया) 199.36.156.16/28 (फ़रवरी 2022 में जोड़ा गया) 209.85.131.0/27 (02-2022 में जोड़ा गया) 2001:4860:1008::/48 (फ़रवरी 2022 में जोड़ा गया) 2001:4860:1018::/48 (फ़रवरी 2022 में जोड़ा गया) (02-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 में जोड़ा गया) 108.177.25.128/27 (मई 2026 में जोड़ा गया) 108.177.26.128/26 (मई 2026 में जोड़ा गया) 108.177.29.192/26 (मई 2026 में जोड़ा गया) 172.217.120.64/26 (मई 2026 में जोड़ा गया) 172.217.120.128/26 (मई 2026 में जोड़ा गया) 2001:4860:1037::/48 (मई 2026 में जोड़ा गया) 2001:4860:1038::/48 (मई 2026 में जोड़ा गया) 2001:4860:103a::/48 (मई 2026 में जोड़ा गया) |
| Android वर्चुअल डिवाइस (नॉन-Arm) |
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 में हटाया गया) |