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