ऐप्लिकेशन टेस्टिंग एजेंट (Android)

App Testing एजेंट, टेस्ट केस जनरेट करने, मैनेज करने, और उन्हें लागू करने वाला एजेंट है. यह Firebase में Gemini की मदद से काम करता है. टेस्ट के लक्ष्यों को सामान्य भाषा में तय किया जाता है. इसके बाद, एजेंट एआई का इस्तेमाल करके आपके ऐप्लिकेशन को समझता है और उसे नेविगेट करता है. साथ ही, उपयोगकर्ता के इंटरैक्शन का सिम्युलेशन करता है और टेस्ट के बारे में पूरी जानकारी देता है.

App Testing एजेंट आपके डेटा का इस्तेमाल कैसे करता है

ऐप्लिकेशन टेस्टिंग एजेंट की सुविधा, Firebase में Gemini देता है. इस पर भी वही नियम लागू होते हैं. Firebase में Gemini आपके डेटा का इस्तेमाल कैसे करता है, इस बारे में ज़्यादा जानने के लिए, Firebase में Gemini आपके डेटा का इस्तेमाल कैसे करता है लेख पढ़ें.

शुरू करने से पहले

अगर आपने अब तक अपने ऐप्लिकेशन को Firebase के साथ रजिस्टर नहीं किया है, तो ऐसा करें.

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

टेस्ट केस बनाना

एआई की मदद से टेस्ट चलाने के लिए, App Testing एजेंट आपके नैचुरल लैंग्वेज टेस्ट केस का इस्तेमाल करता है. इससे आपके ऐप्लिकेशन के ख़िलाफ़ टेस्ट किए जाते हैं.

हर टेस्ट केस को चरणों में बांटा जाता है. इन चरणों को क्रम से लागू किया जाएगा. चरणों की मदद से, अपने टेस्ट केस को कई फ़ेज़ में बांटा जा सकता है. हर फ़ेज़ का अपना दावा होता है. एजेंट, किसी एक चरण के दौरान कई कार्रवाइयां कर सकता है.

टेस्ट केस बनाने के दो तरीके हैं: YAML फ़ाइल का इस्तेमाल करके या Firebase कंसोल का इस्तेमाल करके. YAML फ़ाइलों की मदद से, टेस्ट केस मैनेज किए जा सकते हैं. आम तौर पर, इन्हें वर्शन वाले सोर्स कोड रिपॉज़िटरी में मैनेज किया जाता है. इसके अलावा, Firebase console आपके टेस्ट केस को दूर से ही सेव कर सकती है. साथ ही, यह App Distribution के डेटा को भी सेव कर सकती है.

YAML फ़ाइलों का इस्तेमाल करना

यहां दिए गए उदाहरण में, ऐसी YAML फ़ाइल दिखाई गई है जिसमें दो टेस्ट केस तय किए गए हैं:

tests:
- displayName: Login as guest
  id: login-as-guest
  steps:
  - goal: Log in as a guest
    finalScreenAssertion: The home screen is visible
- displayName: View biography card birth date
  prerequisiteTestCaseId: login-as-guest
  steps:
  - goal: Open the article on "Bob Dylan"
    hint: Use the search function to find it
    finalScreenAssertion: >-
      The article is opened and the title "Bob Dylan" is visible.
  - goal: Find Bob Dylan's birthday in the article
    hint: >-
      Look for the "Born" section in the infobox on the right side of the page.
    finalScreenAssertion: >-
      The text "May 24, 1941" is visible on the screen.

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

App Distribution कंसोल का इस्तेमाल करना

इसके अलावा, Firebase कंसोल में जाकर भी टेस्ट केस बनाए और मैनेज किए जा सकते हैं. टेस्ट केस बनाने के लिए, Firebase कंसोल का App Distribution पेज खोलें और यह तरीका अपनाएं:

  1. टेस्ट केस टैब पर, नया टेस्ट केस पर क्लिक करें. अगर आपको अपना टेस्ट केस नहीं बनाना है, तो दिए गए टेस्ट केस के उदाहरण में बदलाव किया जा सकता है या उसका इस्तेमाल किया जा सकता है.
  2. टेस्ट केस जोड़ें डायलॉग में, टेस्ट केस को कोई नाम दें. इसका इस्तेमाल टेस्ट की पहचान करने के लिए किया जाता है. हालांकि, एजेंट इसे अनदेखा कर देता है.
  3. (ज़रूरी नहीं) ज़रूरी शर्तें पूरी करने वाला टेस्ट केस चुनें. इसमें मुख्य टेस्ट से पहले चलाने के लिए, सेटअप के चरण शामिल होते हैं. अगर ज़रूरी शर्तें पूरी न होने पर किया जाने वाला टेस्ट फ़ेल हो जाता है, तो पूरे टेस्ट को फ़ेल के तौर पर मार्क किया जाएगा. ज़रूरी शर्तें पूरी करने वाले टेस्ट और मुख्य टेस्ट के चरणों और नतीजों को, टेस्ट के नतीजों में एक साथ दिखाया जाएगा.
  4. एक और चरण जोड़ें बटन पर क्लिक करके, अपने टेस्ट को कई चरणों में बांटें.
  5. हर चरण को एक लक्ष्य दें. इससे यह पता चलेगा कि ऐप्लिकेशन की टेस्टिंग करने वाले एजेंट को उस चरण के दौरान क्या करना चाहिए.
  6. (ज़रूरी नहीं) सुझाव जोड़ें, ताकि ऐप्लिकेशन की टेस्टिंग करने वाले एजेंट को ज़्यादा जानकारी मिल सके. इससे उसे उस चरण के दौरान, आपके ऐप्लिकेशन को समझने और उसे इस्तेमाल करने में मदद मिलेगी.
  7. फ़ाइनल स्क्रीन असर्शन जोड़ें, ताकि ऐप्लिकेशन की टेस्टिंग करने वाला एजेंट यह तय कर सके कि चरण कब पूरा हुआ. इस दावे में सिर्फ़ स्क्रीन पर दिखने वाले कॉन्टेंट के बारे में जानकारी होनी चाहिए.
  8. टेस्ट को पसंद के मुताबिक बनाने के बाद, सेव करें पर क्लिक करें.

टेस्ट केस का उदाहरण

यहां App Testing एजेंट का इस्तेमाल करके, टेस्ट केस बनाने का उदाहरण दिया गया है:

जांच का टाइटल

होम पेज लोड

लक्ष्य

होम पेज लोड करना

संकेत

ऑनबोर्डिंग की किसी भी स्क्रीन पर जाएं. किसी भी पॉप-अप को खारिज करें. साइन इन न करें.

फ़ाइनल स्क्रीन असर्शन

स्क्रीन पर ऐप्लिकेशन का मुख्य होम पेज दिख रहा हो, सभी इमेज लोड हो गई हों, और कोई गड़बड़ी न दिख रही हो.

टेस्ट चलाना

टेस्ट को चलाने का तरीका, टेस्ट केस बनाने और उन्हें मैनेज करने के तरीके पर निर्भर करता है. अगर YAML फ़ाइलों का इस्तेमाल करके टेस्ट केस तय किए जाते हैं, तो Firebase CLI का इस्तेमाल करके उन टेस्ट को चलाया जाएगा. अगर आपने App Distribution कंसोल में टेस्ट केस बनाए हैं, तो उन्हें कंसोल से या App Distribution के किसी एक सीएलआई टूल से चलाया जा सकता है.

YAML फ़ाइलों का इस्तेमाल करना

YAML फ़ाइलों में तय किए गए टेस्ट केस, Firebase CLI का इस्तेमाल करके लागू किए जा सकते हैं.

  1. Firebase CLI का नया वर्शन इंस्टॉल करें या उसे अपडेट करें. हमारा सुझाव है कि आप अपने ओएस के लिए, सीएलआई का स्टैंडअलोन बाइनरी डाउनलोड करें.
  2. साइन इन करें और जांच करें कि आपके पास अपने प्रोजेक्ट ऐक्सेस करने की अनुमति है या नहीं. ध्यान दें कि अगर सीआई एनवायरमेंट में Firebase CLI का इस्तेमाल किया जा रहा है, तो सेवा खाते से भी पुष्टि की जा सकती है. इसके अलावा, login:ci का इस्तेमाल करके भी पुष्टि की जा सकती है.
  3. apptesting:execute कमांड चलाएं. उदाहरण के लिए:

    firebase apptesting:execute \
      --app=1:1234567890:android:0a1b2c3d4e5f67890 \
      --test-dir=./mytests \
      ./app/build/outputs/apk/debug/app-debug.apk
    
apptesting:execute [options] [/path/to/app/binary]
--app

ज़रूरी है: आपके ऐप्लिकेशन का Firebase ऐप्लिकेशन आईडी. आपको Firebase कंसोल में, सामान्य सेटिंग पेज पर ऐप्लिकेशन आईडी मिल सकता है.

--app 1:1234567890:android:0a1b2c3d4e5f67890

--test-dir

उस डायरेक्ट्री का पाथ जिसमें टेस्ट केस की YAML फ़ाइलें मौजूद हैं. यह कमांड, इस डायरेक्ट्री में बार-बार खोज करेगी. इसलिए, फ़ाइलों को सबडायरेक्ट्री में व्यवस्थित किया जा सकता है. अगर यह सेट नहीं है, तो डिफ़ॉल्ट रूप से "./tests" का इस्तेमाल किया जाता है.

--test-devices या
--test-devices-file

टेस्ट डिवाइस, जिन पर आपको App Testing एजेंट की सुविधा के ज़रिए बिल्ड डिस्ट्रिब्यूट करने हैं.

टेस्ट डिवाइसों को सेमीकोलन से अलग की गई सूची के तौर पर तय किया जा सकता है:

--test-devices "model=tokay,version=36,locale=en,orientation=portrait;model=b0q,version=33,locale=en,orientation=portrait"

इसके अलावा, सादे टेक्स्ट वाली किसी ऐसी फ़ाइल का पाथ भी दिया जा सकता है जिसमें सेमीकोलन से अलग किए गए टेस्ट डिवाइसों की सूची मौजूद हो:

--test-devices-file "/path/to/test-devices.txt"

gcloud सीएलआई का इस्तेमाल करके, उपलब्ध डिवाइस मॉडल देखे जा सकते हैं.

--test-non-blocking

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

--test-file-pattern

रेगुलर एक्सप्रेशन पैटर्न. सिर्फ़ उन फ़ाइलों में मौजूद टेस्ट को एक्ज़ीक्यूट किया जाएगा जो इस पैटर्न से मेल खाती हैं.

--test-name-pattern

रेगुलर एक्सप्रेशन पैटर्न. सिर्फ़ उन टेस्ट को लागू किया जाएगा जिनके डिसप्ले नेम, इस पैटर्न से मेल खाते हैं.

/path/to/app/binary

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

App Distribution कंसोल का इस्तेमाल करना

App Distribution में सेव किए गए टेस्ट केस चलाने के लिए, Firebase कंसोल, Firebase CLI या App Distribution के Gradle या fastlane प्लगिन का इस्तेमाल किया जा सकता है.

YAML फ़ाइलों की मदद से, टेस्ट केस इंपोर्ट और एक्सपोर्ट करना

अगर आपको Firebase कंसोल के बाहर टेस्ट केस मैनेज करने हैं, तो YAML फ़ाइलों से टेस्ट केस इंपोर्ट करना फ़ायदेमंद होता है. टेस्ट केस को एक्सपोर्ट करने से, उन्हें एक प्रोजेक्ट से दूसरे प्रोजेक्ट में ले जाने में भी मदद मिलती है. एलएलएम का इस्तेमाल, मौजूदा टेस्ट केस को बेहतर बनाने या नए टेस्ट केस बनाने के लिए किया जा सकता है. Firebase कंसोल में मौजूद टेस्ट केस पेज से, टेस्ट केस इंपोर्ट और एक्सपोर्ट किए जा सकते हैं. इसके अलावा, Firebase CLI का इस्तेमाल करके प्रोग्राम के हिसाब से भी ऐसा किया जा सकता है. YAML टेस्ट केस के उदाहरण के लिए, YAML टेस्ट केस बनाएं देखें.

टेस्ट के नतीजे देखना

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

अगर किसी टेस्ट में रीप्ले किए गए ऐक्शन शामिल हैं, तो एआई की मदद से किए गए टेस्ट का ओरिजनल रन देखा जा सकता है या कैश मेमोरी मिटाई जा सकती है.

जांच के नतीजों के बारे में ज़्यादा जानने के लिए, इस टेबल का इस्तेमाल करें:

आइकॉन नाम ब्यौरा
स्पार्क एआई ऐक्शन इससे पता चलता है कि App Testing एजेंट ने कोई कार्रवाई करने या चरण को खत्म करने का फ़ैसला करने के लिए, Gemini का इस्तेमाल किया है.
replay कार्रवाई फिर से की गई इससे पता चलता है कि ऐप्लिकेशन टेस्टिंग एजेंट ने टेस्ट के पिछले सफल रन से किसी कार्रवाई को फिर से चलाया है.
स्पार्क एआई का दावा इससे पता चलता है कि App Testing एजेंट ने Gemini का इस्तेमाल करके, फ़ाइनल स्क्रीन के दावे की पुष्टि की है. ऐसा तब किया गया, जब उसी टेस्ट के पिछले सफल रन से कार्रवाइयों को फिर से चलाया गया.

टेस्ट के नतीजों को डीबग करना

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

टेस्ट के नतीजों के लिए, सभी वीडियो, लॉग, और अन्य Cloud आर्टफ़ैक्ट देखने के लिए, टेस्ट के नतीजों वाले पेज पर मौजूद आर्टफ़ैक्ट देखें बटन का इस्तेमाल भी किया जा सकता है.

आम तौर पर होने वाली समस्याएं और सीमाएं

App Testing एजेंट की झलक की सुविधा में कुछ समस्याएं हैं:

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

टेस्टिंग कोटा

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

ध्यान दें कि अगर आपको एक से ज़्यादा टेस्ट केस चलाने हैं या एक ही टेस्ट केस को कई डिवाइसों पर चलाना है, तो इसे कई टेस्ट माना जाएगा. उदाहरण के लिए, अगर दो डिवाइसों पर दो टेस्ट केस चलाए जाते हैं, तो इसे कुल चार टेस्ट माना जाएगा.

डिफ़ॉल्ट सीमा से ज़्यादा कोटा पाने के लिए, इस्तेमाल के उदाहरण के साथ Firebase सहायता टीम से संपर्क करें.