ऐप्लिकेशन टेस्टिंग एजेंट, टेस्ट केस जनरेट करने, मैनेज करने, और लागू करने वाला एजेंट है. यह Firebase में Gemini की मदद से काम करता है. टेस्ट के लक्ष्यों को नैचुरल लैंग्वेज में तय किया जाता है. इसके बाद, एजेंट एआई का इस्तेमाल करके आपके ऐप्लिकेशन को समझता है और उसे नेविगेट करता है. साथ ही, उपयोगकर्ता के इंटरैक्शन का सिम्युलेट करता है और टेस्ट के बारे में पूरी जानकारी देता है.
App Testing एजेंट आपके डेटा का इस्तेमाल कैसे करता है
ऐप्लिकेशन टेस्टिंग एजेंट की सुविधा, Firebase में Gemini देता है. इस पर भी वही शर्तें लागू होती हैं. Firebase में Gemini आपके डेटा का इस्तेमाल कैसे करता है, इस बारे में ज़्यादा जानने के लिए, Firebase में Gemini आपके डेटा का इस्तेमाल कैसे करता है लेख पढ़ें.
शुरू करने से पहले
अगर आपने अब तक अपने ऐप्लिकेशन को Firebase के साथ रजिस्टर नहीं किया है, तो ऐसा करें.
अगर आपको Firebase के किसी अन्य प्रॉडक्ट का इस्तेमाल नहीं करना है, तो आपको सिर्फ़ एक प्रोजेक्ट बनाना होगा और अपने ऐप्लिकेशन को रजिस्टर करना होगा. आपको अपने ऐप्लिकेशन में कोई एसडीके टूल जोड़ने की ज़रूरत नहीं है. हालांकि, अगर आपको आने वाले समय में अन्य प्रॉडक्ट का इस्तेमाल करना है, तो Firebase कंसोल का इस्तेमाल करके Firebase जोड़ें में दिए गए सभी चरणों को पूरा करना न भूलें.
टेस्ट केस बनाना
एआई की मदद से टेस्ट चलाने के लिए, App Testing एजेंट, नैचुरल लैंग्वेज में लिखे गए आपके टेस्ट केस का इस्तेमाल करता है. इससे आपके ऐप्लिकेशन के ख़िलाफ़ टेस्ट किए जाते हैं.
हर टेस्ट केस को चरणों में बांटा जाता है. इन चरणों को क्रम से लागू किया जाएगा. चरणों की मदद से, अपने टेस्ट केस को कई फ़ेज़ में बांटा जा सकता है. हर फ़ेज़ में अपना दावा होता है. एजेंट, किसी एक चरण के दौरान कई कार्रवाइयां कर सकता है.
टेस्ट केस बनाने के दो तरीके हैं: YAML फ़ाइल का इस्तेमाल करके या Firebase कंसोल का इस्तेमाल करके. YAML फ़ाइलों की मदद से, टेस्ट केस मैनेज किए जा सकते हैं. आम तौर पर, इन्हें वर्शन वाले सोर्स कोड रिपॉज़िटरी में मैनेज किया जाता है. इसके अलावा, Firebase कंसोल आपके टेस्ट केस को 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 पेज खोलें और यह तरीका अपनाएं:
- टेस्ट केस टैब पर, नया टेस्ट केस पर क्लिक करें. अगर आपको अपना टेस्ट केस नहीं बनाना है, तो दिए गए उदाहरण टेस्ट केस में बदलाव करें या उसका इस्तेमाल करें.
- टेस्ट केस जोड़ें डायलॉग में, टेस्ट केस को कोई नाम दें. इसका इस्तेमाल टेस्ट की पहचान करने के लिए किया जाता है. हालांकि, एजेंट इसे अनदेखा कर देता है.
- (ज़रूरी नहीं) ज़रूरी शर्तें पूरी करने वाला टेस्ट केस चुनें. इसमें मुख्य टेस्ट से पहले चलाने के लिए, सेटअप के चरण शामिल होते हैं. अगर ज़रूरी शर्तें पूरी न होने पर किया गया टेस्ट फ़ेल हो जाता है, तो पूरे टेस्ट को फ़ेल के तौर पर मार्क किया जाएगा. ज़रूरी शर्तें पूरी करने वाले टेस्ट और मुख्य टेस्ट के चरणों और नतीजों को, टेस्ट के नतीजों में एक साथ दिखाया जाएगा.
- एक और चरण जोड़ें बटन पर क्लिक करके, अपने टेस्ट को कई चरणों में बांटें.
- हर चरण को एक लक्ष्य दें. इससे यह पता चलेगा कि ऐप्लिकेशन की टेस्टिंग करने वाले एजेंट को उस चरण के दौरान क्या करना चाहिए.
- (ज़रूरी नहीं) सुझाव जोड़ें, ताकि ऐप्लिकेशन की जांच करने वाले एजेंट को उस चरण के दौरान आपके ऐप्लिकेशन को समझने और उसे इस्तेमाल करने में मदद मिल सके.
- फ़ाइनल स्क्रीन असर्शन जोड़ें, ताकि ऐप्लिकेशन की टेस्टिंग करने वाला एजेंट यह तय कर सके कि चरण कब पूरा हुआ. इस दावे में सिर्फ़ स्क्रीन पर दिखने वाले कॉन्टेंट के बारे में जानकारी होनी चाहिए.
- टेस्ट को पसंद के मुताबिक बनाने के बाद, सेव करें पर क्लिक करें.
टेस्ट केस का उदाहरण
यहां App Testing एजेंट का इस्तेमाल करके, टेस्ट केस बनाने का उदाहरण दिया गया है:
जांच का टाइटल |
होम पेज लोड |
लक्ष्य |
होम पेज लोड करना |
संकेत |
ऑनबोर्डिंग की किसी भी स्क्रीन को छोड़ें. किसी भी पॉप-अप को खारिज करें. साइन इन न करें. |
फ़ाइनल स्क्रीन असर्शन |
स्क्रीन पर ऐप्लिकेशन का मुख्य होम पेज दिख रहा हो, सभी इमेज लोड हो गई हों, और कोई गड़बड़ी न दिख रही हो. |
टेस्ट चलाना
टेस्ट को चलाने का तरीका, टेस्ट केस बनाने और उन्हें मैनेज करने के तरीके पर निर्भर करता है. अगर YAML फ़ाइलों का इस्तेमाल करके टेस्ट केस तय किए जाते हैं, तो Firebase CLI का इस्तेमाल करके उन टेस्ट को चलाया जाएगा. अगर आपने App Distribution कंसोल में अपने टेस्ट केस बनाए हैं, तो उन्हें कंसोल से या App Distribution के किसी एक सीएलआई टूल से चलाया जा सकता है.
YAML फ़ाइलों का इस्तेमाल करना
YAML फ़ाइलों में तय किए गए टेस्ट केस, Firebase CLI का इस्तेमाल करके लागू किए जा सकते हैं.
- Firebase CLI का नया वर्शन इंस्टॉल करें या उसे अपडेट करें. हमारा सुझाव है कि आप अपने ओएस के लिए, सीएलआई का स्टैंडअलोन बाइनरी डाउनलोड करें.
- साइन इन करें और जांच करें कि आपके पास अपने प्रोजेक्ट ऐक्सेस करने की अनुमति है. ध्यान दें कि अगर सीआई एनवायरमेंट में Firebase CLI का इस्तेमाल किया जा रहा है, तो सेवा खाते से पुष्टि की जा सकती है. इसके अलावा, login:ci का इस्तेमाल करके भी पुष्टि की जा सकती है.
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 कंसोल में, सामान्य सेटिंग पेज पर ऐप्लिकेशन आईडी मिल सकता है.
|
--test-dir
|
उस डायरेक्ट्री का पाथ जिसमें टेस्ट केस की YAML फ़ाइलें मौजूद हैं. यह कमांड, इस डायरेक्ट्री में बार-बार खोज करेगी. इसलिए, फ़ाइलों को सबडायरेक्ट्री में व्यवस्थित किया जा सकता है. अगर इसे सेट नहीं किया गया है, तो डिफ़ॉल्ट रूप से "./tests" का इस्तेमाल किया जाता है. |
--test-devices या --test-devices-file
|
जिन डिवाइसों पर टेस्ट किए जाने हैं. टेस्ट डिवाइसों को, डिवाइस की खास जानकारी की सेमीकोलन से अलग की गई सूची के तौर पर तय किया जा सकता है: --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 CLI का इस्तेमाल करके, उपलब्ध डिवाइस मॉडल देखे जा सकते हैं. |
--test-username
|
टेस्ट के दौरान अपने-आप लॉगिन होने के लिए इस्तेमाल किया जाने वाला उपयोगकर्ता नाम. |
--test-password या --test-password-file
|
यह पासवर्ड, टेस्ट के दौरान अपने-आप लॉगिन करने के लिए इस्तेमाल किया जाता है. इसके अलावा, पासवर्ड वाली सामान्य टेक्स्ट फ़ाइल का पाथ भी दिया जा सकता है: --test-password-file: "/path/to/test-password.txt"
|
--test-non-blocking
|
अगर यह विकल्प सेट किया जाता है, तो कमांड टेस्ट शुरू कर देगी. इसके बाद, टेस्ट पूरा होने का इंतज़ार करने के बजाय, तुरंत वापस आ जाएगी. टेस्ट के नतीजे देखने के लिए, Firebase कंसोल पर जाएं. अगर यह फ़्लैग सेट नहीं किया जाता है, तो टेस्ट पूरे होने तक कमांड ब्लॉक हो जाएगी. साथ ही, अगर कोई भी टेस्ट पूरा नहीं होता है, तो यह फ़ेल होने के कोड के साथ बंद हो जाएगी. |
--test-file-pattern
|
रेगुलर एक्सप्रेशन पैटर्न. सिर्फ़ उन फ़ाइलों में मौजूद टेस्ट को एक्ज़ीक्यूट किया जाएगा जो इस पैटर्न से मेल खाती हैं. |
--test-name-pattern
|
रेगुलर एक्सप्रेशन पैटर्न. सिर्फ़ उन टेस्ट को एक्ज़ीक्यूट किया जाएगा जिनके डिसप्ले नेम, इस पैटर्न से मेल खाते हैं. |
/path/to/app/binary
|
ज़रूरी नहीं: आपके ऐप्लिकेशन के बाइनरी का पाथ. अगर इसे शामिल नहीं किया जाता है, तो एजेंट, App Distribution पर अपलोड किए गए आखिरी वर्शन का इस्तेमाल करेगा. यह वर्शन, बताए गए ऐप्लिकेशन के लिए होगा. |
App Distribution कंसोल का इस्तेमाल करना
App Distribution में सेव किए गए टेस्ट केस चलाने के लिए, Firebase कंसोल, Firebase CLI या App Distribution के Gradle या fastlane प्लगिन का इस्तेमाल किया जा सकता है.
YAML फ़ाइलों की मदद से, टेस्ट केस इंपोर्ट और एक्सपोर्ट करना
YAML फ़ाइलों से टेस्ट केस इंपोर्ट करने की सुविधा तब काम आती है, जब आपको Firebase कंसोल के बाहर टेस्ट केस मैनेज करने हों. टेस्ट केस को एक्सपोर्ट करने से, उन्हें एक प्रोजेक्ट से दूसरे प्रोजेक्ट में ले जाने में भी मदद मिल सकती है. एलएलएम का इस्तेमाल, मौजूदा टेस्ट केस को बेहतर बनाने या नए टेस्ट केस बनाने के लिए किया जा सकता है. Firebase कंसोल में मौजूद टेस्ट केस पेज से, टेस्ट केस इंपोर्ट और एक्सपोर्ट किए जा सकते हैं. इसके अलावा, Firebase CLI का इस्तेमाल करके प्रोग्राम के हिसाब से भी ऐसा किया जा सकता है. YAML टेस्ट केस के उदाहरण के लिए, YAML टेस्ट केस बनाएं देखें.
टेस्ट के नतीजे देखना
टेस्ट के नतीजे देखने के लिए, रिलीज़ के ऐप्लिकेशन टेस्टिंग एजेंट टैब में जाकर, रिलीज़ पेज पर जाएं. जानकारी देखें बटन पर क्लिक करने से, जांच के नतीजों का डायलॉग बॉक्स खुलेगा. इसमें आपको समस्याएं, ऐप्लिकेशन के स्क्रीनशॉट, और जांच के दौरान Gemini की ओर से की गई कार्रवाइयां दिखेंगी.
अगर किसी टेस्ट में रीप्ले किए गए ऐक्शन शामिल हैं, तो एआई की मदद से किए गए टेस्ट का ओरिजनल रन देखा जा सकता है या कैश मेमोरी मिटाई जा सकती है.
जांच के नतीजों के बारे में ज़्यादा जानने के लिए, इस टेबल का इस्तेमाल करें:
| आइकॉन | नाम | ब्यौरा |
|---|---|---|
| स्पार्क | एआई ऐक्शन | इससे पता चलता है कि ऐप्लिकेशन की टेस्टिंग करने वाले एजेंट ने, कोई कार्रवाई करने या चरण को खत्म करने का फ़ैसला लेने के लिए Gemini का इस्तेमाल किया है. |
| replay | कार्रवाई फिर से की गई | इससे पता चलता है कि ऐप्लिकेशन टेस्टिंग एजेंट ने टेस्ट के पिछले सफल रन से किसी कार्रवाई को फिर से चलाया है. |
| स्पार्क | एआई का दावा | इससे पता चलता है कि App Testing एजेंट ने Gemini का इस्तेमाल करके, फ़ाइनल स्क्रीन के दावे की पुष्टि की है. ऐसा तब किया गया, जब उसी टेस्ट के पिछले रन की कार्रवाइयों को फिर से चलाया गया. |
टेस्ट के नतीजों को डीबग करना
अगर जांच के नतीजे आपकी उम्मीद के मुताबिक नहीं हैं, तो जांच के नतीजों वाले पेज पर जाकर, जानकारी देखें में मौजूद एजेंट व्यू दिखाएं टॉगल का इस्तेमाल करके, जांच की गड़बड़ी ठीक की जा सकती है. एजेंट व्यू में, आपको स्क्रीन पर मौजूद वे एलिमेंट दिखते हैं जिन्हें ऐप्लिकेशन की जांच करने वाले एजेंट ने ऐप्लिकेशन की सुलभता से जुड़ी जानकारी का इस्तेमाल करते समय पता लगाया था. अगर आपको यह देखना है कि एजेंट को क्या जानकारी दिखी, तो कार्रवाई वाले ओवरफ़्लो मेन्यू से उस जानकारी को डाउनलोड किया जा सकता है.
टेस्ट के नतीजों के पेज पर मौजूद, आर्टफ़ैक्ट देखें बटन का इस्तेमाल करके भी, टेस्ट के नतीजों से जुड़े सभी वीडियो, लॉग, और अन्य Cloud आर्टफ़ैक्ट देखे जा सकते हैं.
पहले से मालूम समस्याएं और सीमाएं
App Testing एजेंट की झलक की कुछ सीमाएं हैं:
- एआई की मदद से किए जाने वाले टेस्ट में, पांच मिनट का टाइम आउट होता है. टेस्ट शुरू होने के बाद, उसे तय समय में पूरा करना ज़रूरी है. अगर ऐसा नहीं होता है, तो टेस्ट समय से पहले खत्म हो जाएगा और इसे टेस्ट के फ़ेल होने के तौर पर गिना जाएगा.
- ऐप्लिकेशन की टेस्टिंग करने वाला एजेंट, आपके ऐप्लिकेशन को टेस्ट करने के लिए जनरेटिव एआई का इस्तेमाल करता है. इसलिए, वह कभी-कभी एक ही निर्देश का पालन करते हुए अलग-अलग कार्रवाइयां करेगा.
- ऐप्लिकेशन की टेस्टिंग करने वाला एजेंट, सिर्फ़ ये कार्रवाइयां कर सकता है: टैप करना, टेक्स्ट डालना, ऊपर/नीचे/बाएं/दाएं स्वाइप करना, दबाकर रखना, खींचकर छोड़ना, वापस जाना, और इंतज़ार करना.
- ऐप्लिकेशन टेस्टिंग एजेंट को ऐसे टेस्ट को पूरा करने में समस्या आ रही है जिनमें सिर्फ़ एक चरण होता है और उसे पूरा करने के लिए कई कार्रवाइयां करनी पड़ती हैं. यह तब बेहतर तरीके से काम करता है, जब मुश्किल टास्क को छोटे-छोटे कई चरणों में बांटा जाता है.
- कभी-कभी App Testing एजेंट, स्क्रीन से बाहर मौजूद अन्य एलिमेंट को दिखाने के लिए स्क्रोल नहीं करेगा. ऐसा अक्सर तब होता है, जब स्क्रोल करने की सुविधा के बारे में कोई विज़ुअल इंडिकेटर नहीं होता. इसके बजाय, "hints" फ़ील्ड का इस्तेमाल करके स्क्रोल करने का सुझाव दिया जा सकता है.
- कभी-कभी App Testing एजेंट को गिनती करने में समस्या आती है. उदाहरण के लिए, किसी कार्रवाई को तय संख्या में पूरा करना.
- अगर
FLAG_SECUREचालू है, तो ऐप्लिकेशन टेस्टिंग एजेंट आपके ऐप्लिकेशन पर नेविगेट नहीं कर सकता. उसे आपके ऐप्लिकेशन के स्क्रीनशॉट के बजाय, सिर्फ़ एक खाली स्क्रीन दिखेगी.
टेस्टिंग के लिए कोटा
झलक के दौरान, एआई की मदद से किए जाने वाले टेस्ट, बिना किसी शुल्क के उपलब्ध कराए जाएंगे. हालांकि, इसके लिए कोटा तय किया गया है. डिफ़ॉल्ट रूप से, हर Firebase प्रोजेक्ट के लिए, हर महीने 200 टेस्ट किए जा सकते हैं.
ध्यान दें कि अगर आपको एक से ज़्यादा टेस्ट केस चलाने हैं या एक ही टेस्ट केस को कई डिवाइसों पर चलाना है, तो इसे कई टेस्ट माना जाएगा. उदाहरण के लिए, अगर दो डिवाइसों पर दो टेस्ट केस चलाए जाते हैं, तो इसे कुल चार टेस्ट माना जाएगा.
डिफ़ॉल्ट सीमा से ज़्यादा कोटा पाने के लिए, इस्तेमाल के उदाहरण के साथ Firebase की सहायता टीम से संपर्क करें.