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

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

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

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

रोबो स्क्रिप्ट के ये फ़ायदे हैं:

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

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

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

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

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

रोबो स्क्रिप्ट की ज़्यादा ऐडवांस सुविधाओं का इस्तेमाल करके, ये काम किए जा सकते हैं:

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

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

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

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

  1. Android Studio खोलें और Tools -> 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> की जगह, लोकल फ़ाइल सिस्टम में मौजूद Robo स्क्रिप्ट फ़ाइल का पाथ डालें. स्थानीय रोबो टेस्ट चलाने के निर्देशों का पालन करें.

gcloud सीएलआई टेस्ट इनवोकेशन में रोबो स्क्रिप्ट के बारे में बताना

gcloud सीएलआई टेस्ट इनवोकेशन में Robo स्क्रिप्ट तय करने के लिए, इस gcloud सीएलआई फ़्लैग का इस्तेमाल करें:

--robo-script = <robo-script-path>

<robo-script-path> को लोकल फ़ाइल सिस्टम में मौजूद Robo स्क्रिप्ट फ़ाइल के पाथ से बदलें. इसके अलावा, gs:// नोटेशन का इस्तेमाल करके, Cloud Storage में मौजूद Robo स्क्रिप्ट फ़ाइल के पाथ से भी बदला जा सकता है. उदाहरण के लिए:

gcloud firebase test android run --app = <path_to_app_apk_file> --robo-script = <robo-script-path>

अगले चरण