इस दस्तावेज़ में रोबो स्क्रिप्ट इस्तेमाल करने का तरीका बताया गया है. ये ऐसे टेस्ट होते हैं जो मोबाइल ऐप्लिकेशन के लिए, मैन्युअल तरीके से किए जाने वाले QA टास्क को ऑटोमेट करते हैं. साथ ही, लगातार इंटिग्रेशन (सीआई) और प्री-लॉन्च टेस्टिंग की रणनीतियों को चालू करते हैं. उदाहरण के लिए, रोबो स्क्रिप्ट का इस्तेमाल करके, उपयोगकर्ता के सामान्य अनुभव की जांच की जा सकती है या यूज़र इंटरफ़ेस (यूआई) में खास इनपुट दिया जा सकता है, जैसे कि उपयोगकर्ता नाम और पासवर्ड. रोबो स्क्रिप्ट, रोबो टेस्ट की एक सुविधा है.
रोबो स्क्रिप्ट की मदद से, अपने ऐप्लिकेशन में किसी वर्कफ़्लो को पूरा करते हुए खुद को रिकॉर्ड किया जा सकता है. इसके बाद, उस रिकॉर्डिंग को Firebase कंसोल पर अपलोड किया जा सकता है, ताकि उसे रोबो टेस्ट में चलाया जा सके. जब अटैच की गई स्क्रिप्ट के साथ कोई रोबो टेस्ट चलाया जाता है, तो रोबो पहले, आपकी स्क्रिप्ट से पहले की कार्रवाइयां करता है और फिर ऐप्लिकेशन को हमेशा की तरह एक्सप्लोर करता है.
रोबो स्क्रिप्ट, टेस्ट इंजन के तौर पर रोबो टेस्ट का इस्तेमाल करती हैं. सबसे बुनियादी फ़ॉर्म में, रोबो स्क्रिप्ट में यूज़र इंटरफ़ेस (यूआई) से जुड़ी कार्रवाइयों का क्रम शामिल होता है. जैसे, 'उपयोगकर्ता नाम' टेक्स्ट डालें और फिर ठीक है बटन पर टैप करें. रोबो स्क्रिप्ट में, किसी एलिमेंट के दिखने का इंतज़ार करने, किसी एलिमेंट के अंदर किसी खास पॉइंट पर टैप करने, और Android डीबग ब्रिज (adb) शेल कमांड को लागू करने जैसी कार्रवाइयां भी शामिल हो सकती हैं.
टेस्टिंग के लिए इस्तेमाल होने वाले पारंपरिक फ़्रेमवर्क की तुलना में, रोबो स्क्रिप्ट के ये फ़ायदे हैं:
| Capability | ब्यौरा |
| बेहतरीन सुरक्षा | रोबो स्क्रिप्ट, ऐप्लिकेशन के वर्शन और ऐप्लिकेशन की अस्थिरता के बीच के स्ट्रक्चर और व्यवहार के अंतर को सहन कर सकती हैं. |
| Open-ended | रोबो स्क्रिप्ट पूरी होने के बाद, बेस रोबो टेस्ट, ऐप्लिकेशन की जांच जारी रख सकता है. जांच जारी रखने के इस तरीके से, कई अहम इस्तेमाल के उदाहरणों को चालू किया जा सकता है. उदाहरण के लिए, रोबो स्क्रिप्ट का इस्तेमाल करके, किसी ऐप्लिकेशन को खास स्थिति में लाया जा सकता है. इसके लिए, आपको कस्टम साइन-इन फ़्लो का इस्तेमाल करना होगा. |
| रिकॉर्ड किया जा सकता है | आपको रोबो स्क्रिप्ट को मैन्युअल तरीके से कोड करने की ज़रूरत नहीं है. इन्हें Android Studio में रोबो स्क्रिप्ट रिकॉर्डर का इस्तेमाल करके रिकॉर्ड किया जा सकता है. आम तौर पर, रोबो स्क्रिप्ट बनाने या उनमें बदलाव करने के लिए, मोबाइल डेवलपमेंट की जानकारी होना ज़रूरी नहीं है. |
| सुविधा के मुताबिक | रोबो स्क्रिप्ट, गेम में आम तौर पर इस्तेमाल होने वाले नॉन-नेटिव यूज़र इंटरफ़ेस (यूआई) एलिमेंट के साथ इंटरैक्ट कर सकती हैं. |
रोबो स्क्रिप्ट, रोबो टेस्ट के दौरान कुछ शर्तों के आधार पर ट्रिगर होती हैं. इससे उपयोगकर्ता, रोबो के व्यवहार को बेहतर बना सकते हैं. आम तौर पर, ऐसा ज़्यादा कवरेज पाने या किसी खास सुविधा को टारगेट करने के लिए किया जाता है. टेस्टिंग के पारंपरिक फ़्रेमवर्क के उलट, Robo स्क्रिप्ट में ये सुविधाएं काम करती हैं:
- ट्रिगर करने की अलग-अलग शर्तें. उदाहरण के लिए, किसी ऐप्लिकेशन पैकेज का नाम चालू होना (या न होना) या स्क्रीन पर कोई खास एलिमेंट दिखना (या न दिखना).
- एक्ज़ीक्यूशन कंट्रोल, जैसे कि एक्ज़ीक्यूशन की ज़्यादा से ज़्यादा संख्या, प्राथमिकता, और क्रॉल करने का सही चरण.
- कार्रवाई के ऐसे टाइप जो आम तौर पर इस्तेमाल नहीं किए जाते. जैसे, शर्त के हिसाब से कार्रवाई करना, एलिमेंट को अनदेखा करना, और स्क्रीन बंद करना.
हमारा सुझाव है कि जब भी संभव हो, रोबो स्क्रिप्ट का इस्तेमाल करें. ऐसा इसलिए, क्योंकि इन्हें आसानी से मैनेज किया जा सकता है. उदाहरण के लिए, रोबो स्क्रिप्ट का इस्तेमाल करके ये काम किए जा सकते हैं:
- ऐप्लिकेशन के मुख्य फ़ंक्शन को समझने के लिए, अहम वर्कफ़्लो को नेविगेट करें. उदाहरण के लिए, साइन-इन किया जा सकता है, पहली बार लॉन्च करने के बाद ऐप्लिकेशन की स्थिति सेट अप की जा सकती है, और नए उपयोगकर्ता को रजिस्टर किया जा सकता है.
- रोबो टेस्ट के लिए तय समय का ज़्यादा से ज़्यादा फ़ायदा पाने के लिए, रोबो को ऐप्लिकेशन के किसी खास हिस्से पर फ़ोकस करें. रोबो स्क्रिप्ट, रोबो टेस्ट को ऐप्लिकेशन के काम के हिस्से तक पहुंचने में मदद करती है. इसके बाद, रोबो टेस्ट पूरी तरह से ऑटोमेटेड क्रॉल को फिर से शुरू करता है.
- ऐप्लिकेशन को किसी खास स्थिति या स्क्रीन पर ले जाकर उसका विश्लेषण करना. उदाहरण के लिए, इन-ऐप्लिकेशन मैसेज, निजता नीति या गेम के किसी खास लेवल का विश्लेषण करना.
- शुरू से आखिर तक इंस्ट्रुमेंटेशन टेस्ट करें. इसमें रोबो टेस्ट का इस्तेमाल किया जा सकता है या नहीं. रोबो स्क्रिप्ट पूरी होने के बाद, पूरी तरह से ऑटोमेटेड क्रॉल फिर से शुरू हो जाता है.
Robo script की बेहतर सुविधाओं का इस्तेमाल करके, ये काम किए जा सकते हैं:
- जांच किए जा रहे ऐप्लिकेशन को क्रॉल करने से पहले या क्रॉल पूरा होने के बाद, Robo कार्रवाइयां करता है. उदाहरण के लिए, क्रॉल करने से पहले, जांच किए जा रहे ऐप्लिकेशन का डेटा मिटाना या डिवाइस की सेटिंग बदलना.
- क्रॉल के दौरान, Robo के व्यवहार के पहलुओं को बदलें. खास तौर पर:
- रोबो को कुछ यूज़र इंटरफ़ेस (यूआई) विजेट या ऐप्लिकेशन स्क्रीन को अनदेखा करने के लिए कहें.
- किसी खास स्क्रीन से बैकट्रैक करते समय, Robo को कोई कस्टम ऐक्शन करने के लिए कहें.
- क्रॉल के दौरान, जब भी ऐप्लिकेशन की कोई खास स्क्रीन दिखे, तब Robo को खास कार्रवाइयां करने के लिए कहें.
- Robo के क्रॉल करने के तरीके को अपनी पसंद के मुताबिक बनाएं. उदाहरण के लिए, क्रॉल के दौरान टेस्ट किए जा रहे ऐप्लिकेशन को बैकग्राउंड में रखने के लिए, शर्त के साथ और बिना शर्त वाली कार्रवाइयों के कॉम्बिनेशन का इस्तेमाल करें. साथ ही, डिवाइस में बदलाव करें और इस दौरान दिखने वाले किसी भी पॉप-अप डायलॉग को खारिज करें.
ध्यान रखें कि रोबो स्क्रिप्ट, हर तरह के टेस्ट की जगह नहीं ले सकतीं. आपको अब भी अपने ऐप्लिकेशन में लो-लेवल लॉजिक बग का पता लगाने के लिए, यूनिट टेस्ट की ज़रूरत होगी. आम तौर पर, इन टेस्ट के लिए Android या iOS एनवायरमेंट की ज़रूरत नहीं होती. हमारा सुझाव है कि आप Robo स्क्रिप्ट टेस्ट के साथ-साथ, टारगेट किए गए इंस्ट्रुमेंटेशन टेस्ट भी करें. इनमें कारोबारी नियमों के बारे में खास और ज़्यादा जानकारी वाले दावे हो सकते हैं. इन्हें कोड में सबसे बेहतर तरीके से दिखाया जाता है.
Android Studio में Test Lab का इस्तेमाल करके रोबो स्क्रिप्ट रिकॉर्ड करना
Android Studio में मौजूद रोबो स्क्रिप्ट रिकॉर्डर की मदद से, रोबो स्क्रिप्ट रिकॉर्ड की जा सकती हैं. इसके लिए, आपको अपने डिवाइस पर मौजूद ऐप्लिकेशन से सीधे इंटरैक्ट करना होगा. Android Studio में Firebase टूल की मदद से रोबो स्क्रिप्टिंग शुरू करने के लिए, यह तरीका अपनाएं:
Android Studio खोलें और Tools -> Firebase को चुनें.
Firebase पैनल में, रोबो स्क्रिप्ट रिकॉर्ड करें और रोबो टेस्ट को गाइड करने के लिए इसका इस्तेमाल करें पर क्लिक करें.
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>
अगले चरण
- रोबो स्क्रिप्ट के स्ट्रक्चर, क्षमताओं, इस्तेमाल, और कार्रवाइयों के बारे में जानने के लिए, रोबो स्क्रिप्ट की रेफ़रंस गाइड देखें.
- रोबो टेस्ट चलाएं.