इस दस्तावेज़ में रोबो स्क्रिप्ट का इस्तेमाल करने का तरीका बताया गया है. ये स्क्रिप्ट, मोबाइल ऐप्लिकेशन के लिए मैन्युअल तरीके से किए जाने वाले QA टास्क को ऑटोमेट करती हैं. साथ ही, इनसे कंटीन्यूअस इंटिग्रेशन (सीआई) और लॉन्च से पहले की टेस्टिंग की रणनीतियां लागू की जा सकती हैं. उदाहरण के लिए, रोबो स्क्रिप्ट का इस्तेमाल करके, सामान्य उपयोगकर्ता अनुभव की जांच की जा सकती है. इसके अलावा, उपयोगकर्ता इंटरफ़ेस (यूआई) के लिए, उपयोगकर्ता नाम और पासवर्ड जैसे इनपुट दिए जा सकते हैं. रोबो स्क्रिप्ट, रोबो टेस्ट की एक सुविधा है.
रोबो स्क्रिप्ट की मदद से, अपने ऐप्लिकेशन में किसी वर्कफ़्लो को रिकॉर्ड किया जा सकता है. इसके बाद, उस रिकॉर्डिंग को Firebase कंसोल पर अपलोड करके, रोबो टेस्ट में चलाया जा सकता है. जब अटैच की गई स्क्रिप्ट के साथ कोई रोबो टेस्ट चलाया जाता है, तो रोबो पहले, स्क्रिप्ट में पहले से तय की गई कार्रवाइयां करता है. इसके बाद, ऐप्लिकेशन को हमेशा की तरह एक्सप्लोर करता है.
रोबो स्क्रिप्ट, रोबो टेस्ट
को टेस्ट इंजन के तौर पर इस्तेमाल करती हैं. सबसे बुनियादी तौर पर, रोबो स्क्रिप्ट में यूआई की कार्रवाइयों का क्रम होता है. जैसे, 'उपयोगकर्ता नाम' टेक्स्ट डालें और फिर ठीक है बटन पर टैप करें. रोबो स्क्रिप्ट में, किसी एलिमेंट के दिखने का इंतज़ार करना, किसी एलिमेंट में किसी खास जगह पर टैप करना, और Android Debug Bridge (adb) शेल कमांड को लागू करना जैसी कार्रवाइयां भी शामिल की जा सकती हैं.
रोबो स्क्रिप्ट के, टेस्टिंग के पारंपरिक फ़्रेमवर्क की तुलना में ये फ़ायदे हैं:
| क्षमता | ब्यौरा |
| बहुत मज़बूत | रोबो स्क्रिप्ट, ऐप्लिकेशन के अलग-अलग वर्शन के स्ट्रक्चर और व्यवहार में होने वाले बड़े अंतरों को बर्दाश्त कर सकती हैं. साथ ही, ऐप्लिकेशन में होने वाली गड़बड़ियों को भी बर्दाश्त कर सकती हैं. |
| Open-ended | रोबो स्क्रिप्ट के पूरा होने के बाद, सामान्य रोबो टेस्ट, ऐप्लिकेशन की टेस्टिंग जारी रख सकता है. टेस्टिंग जारी रखने के इस तरीके से, कई अहम इस्तेमाल के उदाहरणों को लागू किया जा सकता है. उदाहरण के लिए, रोबो स्क्रिप्ट का इस्तेमाल करके, साइन-इन के कस्टम फ़्लो को पूरा करके, किसी ऐप्लिकेशन को किसी खास स्थिति में लाया जा सकता है. |
| रिकॉर्ड करने योग्य | रोबो स्क्रिप्ट को मैन्युअल तरीके से कोड करने की ज़रूरत नहीं होती. इन्हें Android Studio में मौजूद रोबो स्क्रिप्ट रिकॉर्डर का इस्तेमाल करके रिकॉर्ड किया जा सकता है. आम तौर पर, रोबो स्क्रिप्ट बनाने या उनमें बदलाव करने के लिए, मोबाइल डेवलपमेंट की जानकारी होना ज़रूरी नहीं है. |
| सुविधा के मुताबिक | रोबो स्क्रिप्ट, गेम में इस्तेमाल होने वाले नॉन-नेटिव यूआई एलिमेंट के साथ इंटरैक्ट कर सकती हैं. |
रोबो स्क्रिप्ट, रोबो टेस्ट के दौरान कुछ शर्तों के आधार पर ट्रिगर होती हैं. इससे उपयोगकर्ता, रोबो के व्यवहार को बेहतर बना सकते हैं. आम तौर पर, ऐसा ज़्यादा कवरेज पाने या किसी खास फ़ंक्शन को टारगेट करने के लिए किया जाता है. टेस्टिंग के पारंपरिक फ़्रेमवर्क के उलट, रोबो स्क्रिप्ट इन चीज़ों के साथ काम करती हैं:
- ट्रिगर करने की अलग-अलग शर्तें. उदाहरण के लिए, किसी खास ऐप्लिकेशन पैकेज का नाम चालू (या बंद) होना या स्क्रीन पर कोई खास एलिमेंट दिखना (या न दिखना).
- एक्ज़ीक्यूशन कंट्रोल. उदाहरण के लिए, ज़्यादा से ज़्यादा एक्ज़ीक्यूशन की संख्या, प्राथमिकता, क्रॉल का काम का चरण.
- कार्रवाई के ऐसे टाइप जो आम तौर पर इस्तेमाल नहीं किए जाते (शर्त के आधार पर, एलिमेंट को अनदेखा करना, स्क्रीन बंद करना).
हमारा सुझाव है कि जब भी हो सके, रोबो स्क्रिप्ट का इस्तेमाल करें, क्योंकि इन्हें आसानी से मैनेज किया जा सकता है. उदाहरण के लिए, रोबो स्क्रिप्ट का इस्तेमाल इन कामों के लिए किया जा सकता है:
- ऐप्लिकेशन के मुख्य फ़ंक्शन तक पहुंचने के लिए, अहम वर्कफ़्लो पर नेविगेट करना. उदाहरण के लिए, साइन-इन करना, पहली बार लॉन्च होने के बाद ऐप्लिकेशन की स्थिति सेट अप करना, और नए उपयोगकर्ता को रजिस्टर करना.
- रोबो टेस्ट के समय का ज़्यादा से ज़्यादा फ़ायदा पाने के लिए, रोबो को ऐप्लिकेशन के किसी खास हिस्से पर फ़ोकस करना. रोबो स्क्रिप्ट, रोबो टेस्ट को ऐप्लिकेशन के काम के हिस्से तक पहुंचने में मदद करती है. यहां रोबो टेस्ट, पूरी तरह से ऑटोमेटेड क्रॉल को फिर से शुरू करता है.
- किसी ऐप्लिकेशन को किसी खास स्थिति या स्क्रीन पर लाना, ताकि उसका विश्लेषण किया जा सके. उदाहरण के लिए, ऐप्लिकेशन में मौजूद मैसेज, निजता नीति या गेम के किसी खास लेवल का विश्लेषण करना.
- शुरू से आखिर तक इंस्ट्रूमेंटेशन टेस्ट करना. इसमें रोबो स्क्रिप्ट पूरी होने के बाद, रोबो टेस्ट पूरी तरह से ऑटोमेटेड क्रॉल को फिर से शुरू कर सकता है या नहीं भी कर सकता है.
रोबो स्क्रिप्ट की ज़्यादा ऐडवांस सुविधाओं का इस्तेमाल इन कामों के लिए करें:
- रोबो के, टेस्ट किए जा रहे ऐप्लिकेशन को क्रॉल करने से पहले या क्रॉल पूरा होने के बाद कार्रवाइयां करना. उदाहरण के लिए, क्रॉल से पहले, टेस्ट किए जा रहे ऐप्लिकेशन का डेटा साफ़ करना या डिवाइस की सेटिंग बदलना.
- क्रॉल के दौरान, रोबो के व्यवहार के पहलुओं में बदलाव करना. खास तौर पर:
- रोबो को कुछ यूआई विजेट या ऐप्लिकेशन स्क्रीन को अनदेखा करने के लिए कहना.
- रोबो को किसी खास स्क्रीन से वापस आने पर, कस्टम कार्रवाई करने के लिए कहना.
- रोबो को क्रॉल के दौरान, किसी खास ऐप्लिकेशन स्क्रीन पर पहुंचने पर, खास कार्रवाइयां करने के लिए कहना.
- रोबो के क्रॉल करने के तरीके को पूरी तरह से अपनी ज़रूरत के मुताबिक बनाना. उदाहरण के लिए, शर्त के आधार पर और बिना शर्त वाली कार्रवाइयों के कॉम्बिनेशन का इस्तेमाल करके, टेस्ट किए जा रहे ऐप्लिकेशन को क्रॉल के दौरान बैकग्राउंड में रखना. साथ ही, डिवाइस में बदलाव करना और रास्ते में दिखने वाले किसी भी पॉप-अप डायलॉग को खारिज करना.
ध्यान रखें कि रोबो स्क्रिप्ट, सभी तरह के टेस्ट की जगह नहीं लेती हैं. आपको अपने ऐप्लिकेशन में, लो-लेवल लॉजिक से जुड़ी गड़बड़ियों को पकड़ने के लिए, यूनिट टेस्ट की ज़रूरत होती है. इन टेस्ट के लिए, आम तौर पर Android या iOS एनवायरमेंट की ज़रूरत नहीं होती. हमारा सुझाव है कि रोबो स्क्रिप्ट टेस्ट के साथ, टारगेट किए गए इंस्ट्रूमेंटेशन टेस्ट भी करें. इनमें कारोबारी नियमों के बारे में खास और विस्तृत दावे किए जा सकते हैं. इन्हें कोड में सबसे अच्छी तरह से दिखाया जा सकता है.
Android Studio में Test Lab का इस्तेमाल करके, रोबो स्क्रिप्ट रिकॉर्ड करना
Android Studio में मौजूद रोबो स्क्रिप्ट रिकॉर्डर की मदद से, अपने डिवाइस पर ऐप्लिकेशन के साथ सीधे इंटरैक्ट करके, रोबो स्क्रिप्ट रिकॉर्ड की जा सकती हैं. Android Studio में Firebase टूल की मदद से, रोबो स्क्रिप्टिंग शुरू करने के लिए, यह तरीका अपनाएं:
Android Studio खोलें टूल -> Firebase चुनें.
Firebase पैनल में, रोबो स्क्रिप्ट रिकॉर्ड करें और इसका इस्तेमाल रोबो टेस्ट को गाइड करने के लिए करें पर क्लिक करें.
रोबो स्क्रिप्ट रिकॉर्ड करें पर क्लिक करें. डायलॉग बॉक्स, डिप्लॉयमेंट टारगेट चुनें दिखता है.
वह डिवाइस चुनें जिसमें आपको रोबो स्क्रिप्ट रिकॉर्ड करनी है.
डिवाइस में रोबो स्क्रिप्ट रिकॉर्ड करने के बाद, फ़ाइल को अपनी पसंद की जगह पर JSON फ़ाइल के तौर पर सेव करें.
Test Lab पेज को Firebase कंसोल में खोलें और JSON स्क्रिप्ट फ़ाइल और ऐप्लिकेशन APK अपलोड करें.
जारी रखें बटन पर क्लिक करें. आपको डिवाइस और एपीआई लेवल चुनने के लिए कहा जाता है. टेस्ट स्क्रिप्ट पूरी होने के बाद, Test Lab जनरेट करता है टेस्ट रिपोर्ट.
(ज़रूरी नहीं) टेस्ट रिपोर्ट और वीडियो का लॉगकैट कॉपी करने या डाउनलोड करने के लिए, सोर्स फ़ाइलें देखें पर क्लिक करें.
डिफ़ॉल्ट रूप से, रोबो स्क्रिप्ट की मज़बूती के लिए बने मैकेनिज़्म, इसे जल्द फ़ेल होने से बचाते हैं.
अगर आपने strict एक्ज़ीक्यूशन मोड चुना है और रोबो स्क्रिप्ट किसी भी समय फ़ेल हो जाती है, तो
Test Lab स्क्रिप्ट के सभी अगले चरण छोड़ देता है और सामान्य
रोबो क्रॉल फिर से शुरू कर देता है. आम तौर पर, रोबो स्क्रिप्ट इसलिए फ़ेल हो जाती हैं, क्योंकि रोबो को स्क्रीन पर ज़रूरी एलिमेंट नहीं मिल पाता. फ़ेल होने से बचने के लिए, पक्का करें कि आपके ऐप्लिकेशन का नेविगेशन अनुमान के मुताबिक हो और आपकी स्क्रीन, तय क्रम में दिखें.
Test Lab में रोबो स्क्रिप्ट चलाना
Test Lab में रोबो स्क्रिप्ट चलाने के लिए, यह तरीका अपनाएं:
Test Lab पेज को Firebase कंसोल में खोलें.
ऐप्लिकेशन APK या AAB फ़ील्ड में, ऐप्लिकेशन का APK या AAB अपलोड करें.
रोबो स्क्रिप्ट (ज़रूरी नहीं) फ़ील्ड में, रिकॉर्ड की गई या मैन्युअल तरीके से बनाई गई रोबो स्क्रिप्ट फ़ाइल अपलोड करें.
स्थानीय रोबो टेस्ट रन के लिए, रोबो स्क्रिप्ट देना
स्थानीय रोबो टेस्ट रन के लिए, रोबो स्क्रिप्ट देने के लिए, रोबो टेस्ट के इस विकल्प का इस्तेमाल करें:
--robo-script-file <robo-script-path>
<robo-script-path> को लोकल
फ़ाइल सिस्टम में मौजूद, अपनी रोबो स्क्रिप्ट फ़ाइल के पाथ से बदलें. स्थानीय रोबो टेस्ट
रन के लिए दिए गए निर्देशों का पालन करें.
gcloud सीएलआई टेस्ट इनवोकेशन में, रोबो स्क्रिप्ट तय करना
gcloud सीएलआई टेस्ट इनवोकेशन में, रोबो स्क्रिप्ट तय करने के लिए, gcloud सीएलआई के इस फ़्लैग का इस्तेमाल करें:
--robo-script = <robo-script-path>
<robo-script-path> को लोकल
फ़ाइल सिस्टम में मौजूद, अपनी रोबो स्क्रिप्ट फ़ाइल के पाथ या Cloud Storage नोटेशन का इस्तेमाल करके, Cloud Storage में मौजूद पाथ से बदलें.gs:// उदाहरण के लिए:
gcloud firebase test android run --app = <path_to_app_apk_file> --robo-script = <robo-script-path>
अगले चरण
- रोबो स्क्रिप्ट के स्ट्रक्चर, क्षमताओं, इस्तेमाल, और कार्रवाइयों के बारे में जानने के लिए, रोबो स्क्रिप्ट रेफ़रंस गाइड देखें.
- रोबो टेस्ट चलाएं.