रोबो स्क्रिप्ट चलाना (Android)

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

रोबो स्क्रिप्ट की मदद से, अपने ऐप्लिकेशन में किसी वर्कफ़्लो को रिकॉर्ड किया जाता है. इसके बाद, उस रिकॉर्डिंग को Firebase कंसोल पर अपलोड किया जाता है, ताकि उसे रोबो टेस्ट में चलाया जा सके. जब अटैच की गई स्क्रिप्ट के साथ कोई रोबो टेस्ट चलाया जाता है, तो रोबो पहले, आपकी स्क्रिप्ट से पहले की कार्रवाइयां करता है और फिर ऐप्लिकेशन को हमेशा की तरह एक्सप्लोर करता है.

रोबो स्क्रिप्ट, जांच करने वाले इंजन के तौर पर रोबो टेस्ट का इस्तेमाल करती हैं. सबसे बुनियादी रूप में, रोबो स्क्रिप्ट में यूज़र इंटरफ़ेस (यूआई) ऐक्शन का क्रम होता है. जैसे, 'उपयोगकर्ता नाम' टेक्स्ट डालें और फिर ठीक है बटन पर टैप करें. रोबो स्क्रिप्ट में, किसी एलिमेंट के दिखने का इंतज़ार करना, एलिमेंट के किसी खास हिस्से पर टैप करना, और Android डीबग ब्रिज (adb) के शेल कमांड चलाना जैसी कार्रवाइयां भी शामिल की जा सकती हैं.

रोबो स्क्रिप्ट के ये फ़ायदे हैं, जो टेस्टिंग के पारंपरिक फ़्रेमवर्क के मुकाबले बेहतर हैं:

क्षमता जानकारी
काफ़ी मज़बूत रोबो स्क्रिप्ट, ऐप्लिकेशन के वर्शन और ऐप्लिकेशन के काम करने के तरीके के बीच, स्ट्रक्चर और व्यवहार में काफ़ी अंतर को बर्दाश्त कर सकती हैं.
Open-ended रोबो स्क्रिप्ट पूरी होने के बाद, बेस रोबो टेस्ट की प्रोसेस शुरू हो जाती है और ऐप्लिकेशन की जांच जारी रहती है. जांच जारी रखने के इस तरीके से, कई मुख्य इस्तेमाल के उदाहरणों को पूरा किया जा सकता है. उदाहरण के लिए, कस्टम साइन-इन फ़्लो का इस्तेमाल करके, किसी ऐप्लिकेशन को किसी खास स्थिति में लाने के लिए, रोबो स्क्रिप्ट का इस्तेमाल किया जा सकता है.
रिकॉर्ड करने लायक आपको रोबो स्क्रिप्ट को मैन्युअल तरीके से कोड करने की ज़रूरत नहीं है. इन्हें Android Studio में, रोबो स्क्रिप्ट रिकॉर्ड करने वाले टूल का इस्तेमाल करके रिकॉर्ड किया जा सकता है. आम तौर पर, रोबो स्क्रिप्ट बनाने या उनमें बदलाव करने के लिए, मोबाइल डेवलपमेंट के बारे में कोई जानकारी होना ज़रूरी नहीं है.
सुविधा के मुताबिक रोबो स्क्रिप्ट, गेम में आम तौर पर इस्तेमाल होने वाले ऐसे यूज़र इंटरफ़ेस (यूआई) एलिमेंट के साथ इंटरैक्ट कर सकती हैं जो नेटिव नहीं हैं.

रोबो टेस्ट के दौरान, रोबो स्क्रिप्ट कुछ शर्तों के हिसाब से ट्रिगर होती हैं. इससे उपयोगकर्ता, रोबो के व्यवहार को बेहतर बना सकते हैं. आम तौर पर, ऐसा ज़्यादा कवरेज पाने या किसी खास फ़ंक्शन को टारगेट करने के लिए किया जाता है. पारंपरिक टेस्टिंग फ़्रेमवर्क के मुकाबले, रोबो स्क्रिप्ट इनके साथ काम करती हैं:

  • ट्रिगर करने की अलग-अलग शर्तें. उदाहरण के लिए, किसी खास ऐप्लिकेशन पैकेज का नाम चालू है (या नहीं) या स्क्रीन पर कोई खास एलिमेंट दिख रहा है (या नहीं).
  • एक्सीक्यूशन कंट्रोल, जैसे कि एक्सीक्यूशन की ज़्यादा से ज़्यादा संख्या, प्राथमिकता, और काम का क्रॉल चरण.
  • कार्रवाई के असामान्य टाइप (शर्त के मुताबिक, एलिमेंट को अनदेखा करने वाले, स्क्रीन बंद करने वाले).

हमारा सुझाव है कि आप जब भी हो सके, रोबो स्क्रिप्ट का इस्तेमाल करें. ऐसा इसलिए, क्योंकि इन्हें आसानी से मैनेज किया जा सकता है. उदाहरण के लिए, रोबो स्क्रिप्ट का इस्तेमाल करके ये काम किए जा सकते हैं:

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

इन कामों के लिए, रोबो स्क्रिप्ट की बेहतर सुविधाओं का इस्तेमाल करें:

  • जांचे जा रहे ऐप्लिकेशन को क्रॉल करने से पहले या क्रॉल पूरा होने के बाद कार्रवाइयां करें. उदाहरण के लिए, क्रॉल करने से पहले जांचे जा रहे ऐप्लिकेशन का डेटा मिटाएं या डिवाइस की सेटिंग बदलें.
  • क्रॉल के दौरान रोबो के व्यवहार के पहलुओं में बदलाव करना. खास तौर पर:
    • Robo को कुछ यूज़र इंटरफ़ेस (यूआई) विजेट या ऐप्लिकेशन स्क्रीन को अनदेखा करने के लिए कहें.
    • किसी खास स्क्रीन से बैकट्रैक करते समय, रोबो को करने के लिए कोई कस्टम ऐक्शन दें.
    • जब भी क्रॉल के दौरान किसी ऐप्लिकेशन की स्क्रीन दिखे, तो रोबो को खास कार्रवाइयां करने के लिए कहें.
  • रोबोट को क्रॉल करने का तरीका पूरी तरह से पसंद के मुताबिक बनाएं. उदाहरण के लिए, जांचे जा रहे ऐप्लिकेशन को क्रॉल के दौरान बैकग्राउंड में रखने के लिए, शर्तों के साथ और बिना शर्तों के कार्रवाइयों के कॉम्बिनेशन का इस्तेमाल करें. साथ ही, डिवाइस में बदलाव करें और क्रॉल के दौरान दिखने वाले पॉप-अप डायलॉग को खारिज करें.

ध्यान रखें कि रोबो स्क्रिप्ट, सभी तरह के टेस्ट की जगह नहीं लेती हैं. हालांकि, आपको अपने ऐप्लिकेशन में कम-लेवल के लॉजिक बग का पता लगाने के लिए, अब भी यूनिट टेस्ट की ज़रूरत होगी. आम तौर पर, इन टेस्ट के लिए Android या iOS एनवायरमेंट की ज़रूरत नहीं होती. हमारा सुझाव है कि आप रोबो स्क्रिप्ट टेस्ट के साथ टारगेट किए गए इंस्ट्रूमेंटेशन टेस्ट का इस्तेमाल करें. इनमें कारोबार के लॉजिक के बारे में खास और ज़्यादा जानकारी वाले दावे किए जा सकते हैं. ये दावे कोड में सबसे सही तरीके से दिखाए जा सकते हैं.

Android Studio में Test Lab का इस्तेमाल करके रोबो स्क्रिप्ट रिकॉर्ड करना

Android Studio में मौजूद रोबो स्क्रिप्ट रिकॉर्डर की मदद से, अपने डिवाइस पर ऐप्लिकेशन के साथ सीधे इंटरैक्ट करके रोबो स्क्रिप्ट रिकॉर्ड की जा सकती हैं. Android Studio में Firebase टूल की मदद से, रोबो स्क्रिप्टिंग शुरू करने के लिए, इन निर्देशों का पालन करें:

  1. Android Studio खोलें और टूल -> Firebase चुनें.

  2. Firebase पैनल में, रोबो स्क्रिप्ट रिकॉर्ड करें और रोबो टेस्ट को गाइड करने के लिए इसका इस्तेमाल करें पर क्लिक करें.

  3. रोबो स्क्रिप्ट रिकॉर्ड करें पर क्लिक करें. 'डिप्लॉयमेंट टारगेट चुनें' डायलॉग बॉक्स दिखता है.

  4. वह डिवाइस चुनें जिसमें आपको रोबो स्क्रिप्ट रिकॉर्ड करनी है.

  5. डिवाइस में रोबो स्क्रिप्ट रिकॉर्ड करने के बाद, फ़ाइल को अपनी पसंद की जगह पर JSON फ़ाइल के तौर पर सेव करें.

  6. Firebase कंसोल में Test Lab पेज खोलें और JSON स्क्रिप्ट फ़ाइल और ऐप्लिकेशन का APK अपलोड करें.

  7. जारी रखें बटन पर क्लिक करें. आपसे डिवाइस और एपीआई लेवल चुनने के लिए कहा जाएगा. टेस्ट स्क्रिप्ट पूरी होने के बाद, Test Lab टेस्ट रिपोर्ट जनरेट करता है.

  8. (ज़रूरी नहीं) जांच की रिपोर्ट और वीडियो का लॉगकैट कॉपी करने या डाउनलोड करने के लिए, सोर्स फ़ाइलें देखें पर क्लिक करें.

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

Test Lab में रोबो स्क्रिप्ट चलाना

Test Lab में रोबो स्क्रिप्ट चलाने के लिए, इन निर्देशों का पालन करें:

  1. Firebase कंसोल में Test Lab पेज खोलें.

  2. ऐप्लिकेशन का APK या AAB फ़ील्ड में, ऐप्लिकेशन का APK या AAB अपलोड करें.

  3. रिकॉर्ड की गई या मैन्युअल तरीके से बनाई गई रोबो स्क्रिप्ट फ़ाइल को रोबो स्क्रिप्ट (ज़रूरी नहीं) फ़ील्ड में अपलोड करें.

स्थानीय रोबो टेस्ट रन के लिए रोबो स्क्रिप्ट देना

किसी स्थानीय रोबो टेस्ट रन में रोबो स्क्रिप्ट देने के लिए, रोबो टेस्ट के इस विकल्प का इस्तेमाल करें:

--robo-script-file <robo-script-path>

<robo-script-path> को लोकल फ़ाइल सिस्टम में मौजूद अपनी रोबो स्क्रिप्ट फ़ाइल के पाथ से बदलें. स्थानीय रोबो टेस्ट चलाने के लिए दिए गए निर्देशों का पालन करें.

gcloud सीएलआई टेस्ट के लिए रोबो स्क्रिप्ट तय करना

gcloud सीएलआई टेस्ट के लिए रोबो स्क्रिप्ट तय करने के लिए, यहां दिए गए 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>

अगले चरण