Firebase Test Lab की मदद से, कई तरह के डिवाइसों और कॉन्फ़िगरेशन पर अपने ऐप्लिकेशन की क्वालिटी की जांच की जा सकती है. इस गाइड में, Test Lab के मुख्य सिद्धांतों, iOS के लिए उपलब्ध सुविधाओं, और टेस्टिंग शुरू करने के निर्देशों के बारे में खास जानकारी दी गई है.
Test Lab के कोटा और कीमत के प्लान के बारे में जानकारी पाने के लिए, इस्तेमाल, कोटा, और कीमत देखें.
मुख्य कॉन्सेप्ट और शब्दावली
जब चुने गए डिवाइसों और कॉन्फ़िगरेशन के लिए, कोई टेस्ट या टेस्ट केस का सेट चलाया जाता है, तो Test Lab आपके ऐप्लिकेशन के लिए टेस्ट को बैच में चलाता है. इसके बाद, नतीजों को जांच के मैट्रिक्स के तौर पर दिखाता है.
डिवाइस × जांच करना = जांच का मैट्रिक्स
- डिवाइस
- कोई फ़िज़िकल या वर्चुअल डिवाइस (सिर्फ़ Android) जिस पर टेस्ट चलाया जाता है. जैसे, फ़ोन, टैबलेट या पहने जाने वाला डिवाइस. जांच के मैट्रिक्स में मौजूद डिवाइसों की पहचान, डिवाइस के मॉडल, ओएस वर्शन, स्क्रीन ओरिएंटेशन, और स्थान-भाषा (इसे भौगोलिक और भाषा की सेटिंग भी कहा जाता है) से की जाती है.
- जांच, जांच करना
- किसी डिवाइस पर चलाया जाने वाला टेस्ट (या टेस्ट केस का सेट). हर डिवाइस पर एक टेस्ट चलाया जा सकता है. इसके अलावा, टेस्ट को अलग-अलग हिस्सों में बांटकर, उसके टेस्ट केस को अलग-अलग डिवाइसों पर चलाया जा सकता है.
- जांच का मैट्रिक्स
- इसमें, टेस्ट एक्ज़ीक्यूशन की स्थितियां और टेस्ट के नतीजे शामिल होते हैं. अगर किसी मैट्रिक्स में कोई भी टेस्ट एक्ज़ीक्यूशन फ़ेल हो जाता है, तो पूरा मैट्रिक्स फ़ेल हो जाता है.
पहला चरण: Test Lab पर अपलोड करने के लिए, टेस्ट तैयार करना
Test Lab की मदद से, ये टेस्ट किए जा सकते हैं. ध्यान दें कि सभी तरह के टेस्ट, फ़िज़िकल डिवाइसों पर ज़्यादा से ज़्यादा 45 मिनट तक चल सकते हैं. साथ ही, किसी भी तरह की गड़बड़ी होने पर टेस्ट फ़ेल हो जाएगा.
XCTest (इसमें XCUITest भी शामिल हैं): यह एक यूनिट टेस्ट है, जिसे XCTest फ़्रेमवर्क का इस्तेमाल करके लिखा जाता है. Test Lab के साथ चलाने के लिए, XCTest में बदलाव करने के निर्देश पाने के लिए, XCTest बनाएं पर जाएं.
रोबो टेस्ट: यह अपने-आप होने वाला टेस्ट है, जो आपके ऐप्लिकेशन के यूज़र इंटरफ़ेस (यूआई) का विश्लेषण करता है. इसके बाद, उपयोगकर्ता की गतिविधियों को सिम्युलेट करके, व्यवस्थित तरीके से उसकी जांच करता है. इसके लिए, आपको कोई कोड लिखने की ज़रूरत नहीं होती. ज़्यादा जानकारी के लिए, रोबो टेस्ट के बारे में जानकारी पर जाएं.
गेम लूप टेस्ट: यह एक ऐसा टेस्ट है जो गेमिंग ऐप्लिकेशन में, खिलाड़ी की कार्रवाइयों को सिम्युलेट करने के लिए "डेमो मोड" का इस्तेमाल करता है. यह एक तेज़ और स्केलेबल तरीका है, जिससे यह पुष्टि की जा सकती है कि आपका गेम उपयोगकर्ताओं के लिए अच्छा परफ़ॉर्म कर रहा है. गेम लूप टेस्ट चलाने का विकल्प चुनने पर, ये काम किए जा सकते हैं:
अपने गेम इंजन के लिए नेटिव टेस्ट लिखें.
अलग-अलग यूज़र इंटरफ़ेस (यूआई) या टेस्टिंग फ़्रेमवर्क के लिए, एक ही कोड लिखने से बचें.
आपके पास एक ही टेस्ट में चलाने के लिए, कई लूप बनाने का विकल्प होता है. लेबल का इस्तेमाल करके, लूप को व्यवस्थित भी किया जा सकता है. इससे उन्हें ट्रैक किया जा सकता है और खास लूप को फिर से चलाया जा सकता है.
Test Lab में टेस्ट चलाने के तरीके जानने के लिए, गेम लूप टेस्ट चलाएं पर जाएं.
दूसरा चरण: टेस्ट करने के लिए कोई टूल चुनें
टेस्ट चलाने के लिए, इनमें से कोई टूल चुना जा सकता है:
Firebase console की मदद से, ऐप्लिकेशन को कहीं से भी अपलोड किया जा सकता है और उसकी टेस्टिंग शुरू की जा सकती है. इस टूल को इस्तेमाल करने के निर्देशों के लिए, Firebase कंसोल की मदद से टेस्ट करना देखें.
gcloud कमांड लाइन इंटरफ़ेस (सीएलआई) की मदद से, कमांड लाइन से इंटरैक्टिव तरीके से टेस्ट चलाए जा सकते हैं. साथ ही, यह ऑटोमेटेड बिल्ड और टेस्टिंग प्रोसेस के हिस्से के तौर पर स्क्रिप्टिंग के लिए भी सही है. इस टूल को इस्तेमाल करने के निर्देशों के लिए, gcloud सीएलआई की मदद से टेस्ट करना लेख पढ़ें.
असली डिवाइसों पर टेस्ट करने से पहले, सिम्युलेटर पर लोकल तौर पर टेस्ट करें, ताकि यह पक्का किया जा सके कि यह उम्मीद के मुताबिक काम कर रहा है. निर्देशों के लिए, लोकल लेवल पर टेस्ट करना देखें.
तीसरा चरण: टेस्टिंग के लिए डिवाइसों की जानकारी देना
Test Lab की मदद से, Google के डेटा सेंटर में होस्ट किए गए iOS डिवाइसों और मॉडल की अलग-अलग रेंज पर, अपने ऐप्लिकेशन की जांच की जा सकती है. ज़्यादा जानने के लिए, उपलब्ध डिवाइस देखें.
चौथा चरण: टेस्ट के नतीजों की समीक्षा करना
टेस्ट शुरू करने का तरीका चाहे जो भी हो, आपके सभी टेस्ट के नतीजे Test Lab मैनेज करता है. इन्हें ऑनलाइन देखा जा सकता है.
टेस्ट के नतीजे की खास जानकारी अपने-आप सेव हो जाती है. इसे Firebase कंसोल में देखा जा सकता है. इसमें आपके टेस्ट से जुड़ा सबसे काम का डेटा होता है. जैसे, टेस्ट केस के हिसाब से वीडियो, स्क्रीनशॉट, पास या फ़ेल हुए टेस्ट की संख्या, टेस्ट के ऐसे नतीजे जो कभी पास तो कभी फ़ेल हुए, और अन्य जानकारी.
टेस्ट के रॉ नतीजों में, टेस्ट लॉग और ऐप्लिकेशन के क्रैश होने की जानकारी शामिल होती है. यह जानकारी, Google Cloud बकेट में अपने-आप सेव हो जाती है. अगर आपने कोई बकेट तय की है, तो स्टोरेज की लागत के लिए आप ज़िम्मेदार होंगे. अगर आपने कोई बकेट नहीं चुनी है, तो Test Lab आपके लिए बिना किसी शुल्क के एक बकेट बना देता है.
ज़्यादा जानकारी के लिए, Firebase Test Lab के नतीजों का विश्लेषण करना लेख पढ़ें.
डिवाइस का स्टोरेज खाली करना
Google आपके ऐप्लिकेशन के डेटा की सुरक्षा को बहुत गंभीरता से लेता है. हम हर टेस्ट रन के बाद, फ़िज़िकल डिवाइसों के लिए ऐप्लिकेशन का डेटा हटाने और सिस्टम सेटिंग रीसेट करने के लिए, इंडस्ट्री स्टैंडर्ड के सबसे सही तरीकों का पालन करते हैं. इससे यह पक्का किया जाता है कि वे नए टेस्ट चलाने के लिए तैयार हैं. जिन डिवाइसों को कस्टम रिकवरी इमेज के साथ फ़्लैश किया जा सकता है उनके लिए, हम एक कदम और आगे बढ़ते हैं. हम टेस्ट रन के बीच में इन डिवाइसों को फ़्लैश करते हैं.
Test Lab के इस्तेमाल किए जाने वाले वर्चुअल डिवाइसों के लिए, डिवाइस इंस्टेंस इस्तेमाल होने के बाद मिटा दिए जाते हैं. इससे हर टेस्ट रन के लिए, एक नया वर्चुअल डिवाइस इंस्टेंस इस्तेमाल किया जाता है.
Test Lab डिवाइसों को निजी बैकएंड सर्वर ऐक्सेस करने की अनुमति देना
कुछ मोबाइल ऐप्लिकेशन को टेस्टिंग के दौरान सही तरीके से काम करने के लिए, निजी बैकएंड सेवाओं के साथ कम्यूनिकेट करना पड़ता है. अगर आपके बैकएंड सर्वर, फ़ायरवॉल के नियमों से सुरक्षित हैं, तो 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 में हटाया गया) |