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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

टेस्ट लैब में रोबो स्क्रिप्ट चलाएं

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

  1. Firebase कंसोल में टेस्ट लैब पेज खोलें.

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

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

स्थानीय रोबो टेस्ट के लिए, रोबो स्क्रिप्ट तैयार करें

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

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

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

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

gcloud सीएलआई टेस्ट शुरू करने के दौरान रोबो स्क्रिप्ट तय करने के लिए, यहां दिए गए gcloud सीएलआई फ़्लैग इस्तेमाल करें:

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

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

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

अगले चरण