Check out what’s new from Firebase at Google I/O 2022. Learn more

रोबो परीक्षणों के साथ शुरुआत करें

रोबो परीक्षण एक परीक्षण उपकरण है जो फायरबेस टेस्ट लैब के साथ एकीकृत है। रोबो परीक्षण आपके ऐप के यूआई की संरचना का विश्लेषण करता है और फिर उपयोगकर्ता गतिविधियों को स्वचालित रूप से अनुकरण करते हुए इसे व्यवस्थित रूप से एक्सप्लोर करता है। UI/एप्लिकेशन एक्सरसाइज मंकी टेस्ट के विपरीत, रोबो टेस्ट हमेशा समान उपयोगकर्ता गतिविधियों को उसी क्रम में अनुकरण करता है जब आप समान सेटिंग्स के साथ किसी विशिष्ट डिवाइस कॉन्फ़िगरेशन पर ऐप का परीक्षण करने के लिए इसका उपयोग करते हैं। यह आपको बग फिक्स को मान्य करने के लिए रोबो टेस्ट का उपयोग करने देता है और इस तरह से रिग्रेशन के लिए परीक्षण करता है जो यूआई/एप्लिकेशन एक्सरसाइजर मंकी टेस्ट के साथ परीक्षण करते समय संभव नहीं है।

रोबो परीक्षण लॉग फ़ाइलों को कैप्चर करता है, एनोटेट किए गए स्क्रीनशॉट की एक श्रृंखला को सहेजता है, और फिर उन स्क्रीनशॉट से एक वीडियो बनाता है जो आपको नकली उपयोगकर्ता संचालन दिखाता है जो उसने किया था। ये लॉग, स्क्रीनशॉट और वीडियो आपके ऐप के क्रैश होने के मूल कारण को निर्धारित करने में आपकी मदद कर सकते हैं, और आपके ऐप के UI के साथ समस्याओं को खोजने में भी आपकी मदद कर सकते हैं।

रोबो परीक्षण क्रॉल आँकड़े

आपके रोबो परीक्षण परिणामों की व्याख्या करने में आपकी सहायता के लिए, रोबो प्रत्येक परीक्षण क्रॉल के दौरान आंकड़े रिकॉर्ड करता है। परीक्षण लैब आपके परीक्षण के परिणाम पृष्ठ में रोबो टैब के शीर्ष पर आँकड़े प्रदर्शित करता है:

  • क्रियाएँ: क्रॉल के दौरान की गई क्रियाओं की कुल संख्या, जिसमें रोबो स्क्रिप्ट क्रियाएँ, मंकी क्रियाएँ और रोबो निर्देश शामिल हैं।
  • क्रियाएँ: क्रॉल के दौरान कवर की गई विशिष्ट गतिविधियों की संख्या।
  • स्क्रीन: क्रॉल के दौरान देखी गई अलग-अलग स्क्रीन की संख्या।

टेस्ट लैब क्रॉल ग्राफ़ के रूप में रोबो क्रॉल का दृश्य प्रतिनिधित्व बनाने के लिए आँकड़ों का भी उपयोग करता है। ग्राफ़ में इसके नोड्स के रूप में स्क्रीन और किनारों के रूप में कार्य होते हैं। स्क्रीन के बीच किनारों का अनुसरण करके, आप इस बात का अंदाजा लगा सकते हैं कि रोबो ने आपके ऐप को पूरे क्रॉल में कैसे पार किया।

रोबो परीक्षण समयबाह्य

आपके ऐप्लिकेशन के UI की जटिलता के आधार पर, UI इंटरैक्शन के संपूर्ण सेट को पूरा करने के लिए Robo परीक्षण में पांच मिनट या उससे अधिक समय लग सकता है। हम अनुशंसा करते हैं कि अधिकांश ऐप्स के लिए परीक्षण टाइमआउट कम से कम 120 सेकंड (2 मिनट) और मध्यम रूप से जटिल ऐप्स के लिए 300 सेकंड (5 मिनट) पर सेट करें। एंड्रॉइड स्टूडियो और फायरबेस कंसोल से चलने वाले परीक्षणों के लिए टाइमआउट के लिए डिफ़ॉल्ट मान 300 सेकंड (5 मिनट) और gcloud कमांड लाइन से चलने वाले परीक्षणों के लिए 900 सेकंड (15 मिनट) है।

ऐप स्टार्ट-अप टाइमआउट त्रुटियां

यदि आपका ऐप शुरू होने में लंबा समय लेता है, तो रोबो एक त्रुटि दे सकता है, और आपके ऐप को क्रॉल नहीं कर पाएगा। यह केवल बहुत लंबे स्टार्ट-अप समय के मामलों में होता है, और इसे केवल आपके ऐप को तेजी से शुरू करने के लिए संशोधित करके ही हल किया जा सकता है।

रोबो स्क्रिप्ट के साथ अधिक नियंत्रण

कभी-कभी आपको अपने परीक्षणों पर अधिक नियंत्रण की आवश्यकता होती है। उदाहरण के लिए, हो सकता है कि आप एक सामान्य उपयोगकर्ता यात्रा का परीक्षण करना चाहें या उपयोगकर्ता नाम और पासवर्ड जैसे विशिष्ट UI इनपुट प्रदान करना चाहें। रोबो स्क्रिप्ट मदद कर सकती है।

रोबो स्क्रिप्ट के साथ, आप अपने ऐप में वर्कफ़्लो के माध्यम से चलते हुए खुद को रिकॉर्ड करते हैं, फिर उस रिकॉर्डिंग को रोबो परीक्षणों में चलाने के लिए फायरबेस कंसोल पर अपलोड करते हैं। जब आप संलग्न स्क्रिप्ट के साथ रोबो परीक्षण चलाते हैं, तो रोबो पहले आपकी पूर्व-लिखित क्रियाओं के माध्यम से कदम उठाता है और फिर हमेशा की तरह ऐप को एक्सप्लोर करने के लिए आगे बढ़ता है।

Android Studio में Firebase टूल के ज़रिए रोबो स्क्रिप्टिंग के साथ शुरुआत करें:

  1. एंड्रॉइड स्टूडियो खोलें।
  2. मुख्य मेनू में, टूल्स > फायरबेस चुनें।
  3. टेस्ट लैब चुनें और रिकॉर्ड रोबो स्क्रिप्ट पर क्लिक करें और रोबो टेस्ट को गाइड करने के लिए इसका इस्तेमाल करें
  4. अपनी रोबो स्क्रिप्ट को रिकॉर्ड करने के लिए टूल के बाकी चरणों का पालन करें।
  5. उस रोबो स्क्रिप्ट को टेस्ट लैब में अपलोड करें और अपना टेस्ट शुरू करें।

रोबो स्क्रिप्ट त्रुटियाँ

यदि कोई रोबो स्क्रिप्ट किसी भी समय विफल हो जाती है, तो टेस्ट लैब स्क्रिप्ट में आगे के सभी चरणों को छोड़ देता है, और नियमित रोबो क्रॉल को फिर से शुरू करता है। अक्सर, रोबो स्क्रिप्ट विफल हो जाती है क्योंकि टेस्ट लैब स्क्रीन पर एक आवश्यक तत्व खोजने में सक्षम नहीं है। विफलताओं से बचने के लिए, सुनिश्चित करें कि आपका ऐप नेविगेशन अनुमानित है और आपकी स्क्रीन कुछ गैर-निर्धारक क्रम में नहीं दिखाई दे रही हैं।

रोबो परीक्षण और गैर-Android UI विजेट

रोबो परीक्षण सीधे Android UI विजेट पर कार्रवाई करने के लिए Android API का उपयोग करते हैं। इससे परीक्षणों को स्वचालित रूप से आपके UI का पता लगाने में मदद मिलती है, लेकिन इसका मतलब यह भी है कि उन्हें स्क्रीन पर परीक्षण चलाने के लिए एक Android UI पदानुक्रम निकालने में सक्षम होना चाहिए।

यदि आपके ऐप की कोई स्क्रीन Android UI विजेट का उपयोग नहीं करती है, तो रोबो परीक्षण उस स्क्रीन का परीक्षण करने के लिए बंदर क्रियाओं पर वापस आते हैं। अधिक व्यवस्थित रोबो कार्रवाइयों के विपरीत, मंकी एक्शन डिवाइस की स्क्रीन पर अर्ध-यादृच्छिक स्थानों पर केवल टैप ईवेंट का अनुकरण करता है।

Android UI विजेट का उपयोग नहीं करने वाली स्क्रीन का बेहतर परीक्षण करने के लिए, आप Firebase टेस्ट लैब गेम लूप टेस्ट के माध्यम से मंकी एक्शन के मनमाने टैप को स्क्रिप्टेड टैप और इंटरैक्शन के सेट से बदल सकते हैं।

Google Play के साथ एकीकरण

जब आप अल्फा या बीटा चैनल का उपयोग करके अपने ऐप की एपीके फ़ाइल अपलोड और प्रकाशित करते हैं तो आप Google Play कंसोल में रोबो परीक्षण का उपयोग कर सकते हैं। रोबो परीक्षण विभिन्न भौगोलिक स्थानों से लोकप्रिय भौतिक उपकरणों के एक सेट पर चलता है, जो विभिन्न रूप कारकों और हार्डवेयर कॉन्फ़िगरेशन में परीक्षण कवरेज प्रदान करता है। अधिक जानने के लिए, समस्याओं की पहचान करने के लिए लॉन्च-पूर्व रिपोर्ट का उपयोग करें देखें।

परीक्षण खाता साइन-इन और पूर्वनिर्धारित पाठ इनपुट

रोबो परीक्षण परीक्षण खाता साइन-इन का समर्थन करता है, और आपको अपने ऐप में फ़ील्ड में पूर्वनिर्धारित पाठ दर्ज करने की भी अनुमति देता है। कस्टम साइन-इन और अन्य पूर्वनिर्धारित टेक्स्ट इनपुट के लिए, रोबो टेस्ट आपके ऐप में EditText फ़ील्ड में टेक्स्ट दर्ज कर सकता है। प्रत्येक स्ट्रिंग के लिए, आपको Android संसाधन नाम का उपयोग करके EditText फ़ील्ड की पहचान करने की आवश्यकता है। अधिक जानने के लिए, संसाधनों तक पहुंच देखें।

साइन इन करें

साइन-इन का समर्थन करने के लिए रोबो परीक्षण में दो परस्पर-अनन्य विधियां हैं:

  • कस्टम साइन-इन: यदि आप टेस्ट अकाउंट क्रेडेंशियल प्रदान करते हैं, तो आपको रोबो टेस्ट को यह बताना होगा कि उन्हें कहां दर्ज करना है, और वे क्रेडेंशियल भी प्रदान करें।
  • स्वचालित साइन-इन: यदि आपके ऐप में एक साइन-इन स्क्रीन है जो प्रमाणीकरण के लिए Google खाते का उपयोग करती है, तो रोबो परीक्षण एक Google परीक्षण खाते का उपयोग करता है, जब तक कि आप कस्टम साइन-इन के लिए परीक्षण खाता क्रेडेंशियल प्रदान नहीं करते हैं।

कस्टम साइन-इन के लिए परीक्षण खाता क्रेडेंशियल प्रदान करने के लिए, निम्न कार्य करें:

  1. आयाम चुनें पृष्ठ पर, अतिरिक्त विकल्प चुनें.
  2. टेस्ट अकाउंट क्रेडेंशियल्स (वैकल्पिक) के तहत, उपयोगकर्ता नाम और पासवर्ड संसाधन नाम और परीक्षण खाते के लिए उपयोगकर्ता नाम और पासवर्ड दर्ज करें।

पूर्वनिर्धारित पाठ इनपुट

आप अपने ऐप द्वारा उपयोग किए जाने वाले अन्य टेक्स्ट फ़ील्ड के लिए कस्टम इनपुट टेक्स्ट प्रदान कर सकते हैं। अतिरिक्त फ़ील्ड के लिए टेक्स्ट इनपुट प्रदान करने के लिए, निम्न कार्य करें:

  1. आयाम चुनें पृष्ठ पर, अतिरिक्त विकल्प चुनें.
  2. अतिरिक्त फ़ील्ड (वैकल्पिक) के अंतर्गत, एक या अधिक संसाधन नाम दर्ज करें, और संबंधित टेक्स्ट फ़ील्ड में दर्ज करने के लिए स्ट्रिंग्स दर्ज करें।

पूर्वनिर्धारित पाठ इनपुट त्रुटियाँ

रोबो एक एंड्रॉइड संसाधन नाम के साथ EditText फ़ील्ड की खोज करता है जो आपूर्ति की गई नियमित अभिव्यक्ति से मेल खाता है। यदि रोबो को मेल खाने वाली फ़ील्ड नहीं मिलती है, तो यह आपके टेक्स्ट को इनपुट नहीं करता है, लेकिन अन्यथा हमेशा की तरह अपना क्रॉल जारी रखता है।

आप परीक्षण के लिए अपने ऐप द्वारा समर्थित अधिकतम तीन डीप लिंक प्रदान कर सकते हैं। आपके ऐप को Android ACTION_VIEW के रूप में डीप लिंक जारी किए गए हैं। इसलिए, प्रत्येक लिंक को आपके ऐप में एक इंटेंट फ़िल्टर से मेल खाना चाहिए।

यदि एक या अधिक डीप लिंक प्रदान किए जाते हैं, तो ऐप को पहले सामान्य रूप से लॉन्च किया जाता है ( ACTION_MAIN आशय का उपयोग करके) और निर्दिष्ट टाइमआउट तक क्रॉल किया जाता है। मुख्य क्रॉल के बाद, प्रत्येक डीप लिंक को अतिरिक्त 30 सेकंड के लिए क्रॉल किया जाता है।

यदि रोबो को आपके डीप लिंक से मेल खाने वाली कोई गतिविधि नहीं मिलती है, तो टेस्ट लैब लिंक को अनदेखा कर देता है। डीप लिंक की समस्याएं आमतौर पर आपके ऐप में दिए गए डीप लिंक और इसकी परिभाषा के बीच विसंगति का परिणाम होती हैं। टाइपो या अन्य विसंगतियों के लिए प्रदान किए गए यूआरएल और अपने ऐप दोनों की जांच करें।

ऐप लाइसेंसिंग समर्थन

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

ज्ञात पहलु

रोबो परीक्षण की वर्तमान में निम्नलिखित ज्ञात सीमाएँ हैं:

  • यूआई ढांचे का समर्थन । रोबो परीक्षण केवल उन ऐप्स के साथ संगत है जो एंड्रॉइड यूआई फ्रेमवर्क से यूआई तत्वों का उपयोग करते हैं ( View और ViewGroup ऑब्जेक्ट्स सहित, लेकिन WebView ऑब्जेक्ट्स को छोड़कर)। यदि आप अन्य UI फ़्रेमवर्क का उपयोग करने वाले ऐप्स का उपयोग करने के लिए रोबो परीक्षण का उपयोग करते हैं, जिसमें यूनिटी गेम इंजन का उपयोग करने वाले ऐप्स भी शामिल हैं, तो परीक्षण पहली स्क्रीन से आगे की खोज किए बिना बाहर निकल सकता है।
  • साइन-इन कैप्चा । रोबो परीक्षण साइन-इन स्क्रीन को बायपास नहीं कर सकता है जिसके लिए साइन इन करने के लिए क्रेडेंशियल दर्ज करने से परे अतिरिक्त उपयोगकर्ता कार्रवाई की आवश्यकता होती है (जैसे कैप्चा पूरा करना)।