ऐप्लिकेशन टेस्टिंग एजेंट, टेस्ट केस जनरेट करने, उन्हें मैनेज करने, और उन्हें लागू करने वाला एजेंट है. यह Firebase में Gemini की मदद से काम करता है. आपको टेस्ट के लक्ष्यों को नैचुरल लैंग्वेज में तय करना होता है. इसके बाद, एजेंट एआई का इस्तेमाल करके आपके ऐप्लिकेशन को समझता है और उसे नेविगेट करता है. साथ ही, उपयोगकर्ता के इंटरैक्शन को सिम्युलेट करता है और टेस्ट के नतीजों की पूरी जानकारी देता है.
ऐप्लिकेशन टेस्टिंग एजेंट आपके डेटा का इस्तेमाल कैसे करता है
ऐप्लिकेशन टेस्टिंग एजेंट की सुविधा, Firebase में Gemini की ओर से दी जाती है. इस पर भी वही शर्तें लागू होती हैं. Firebase में Gemini आपके डेटा का इस्तेमाल कैसे करता है, इस बारे में ज़्यादा जानने के लिए, Firebase में Gemini आपके डेटा का इस्तेमाल कैसे करता है लेख पढ़ें.
शुरू करने से पहले
अगर आपने अब तक ऐसा नहीं किया है, तो अपने ऐप्लिकेशन को Firebase के साथ रजिस्टर करें.
अगर Firebase के किसी अन्य प्रॉडक्ट का इस्तेमाल नहीं किया जा रहा है, तो आपको सिर्फ़ एक प्रोजेक्ट बनाना होगा और अपना ऐप्लिकेशन रजिस्टर करना होगा. आपको अपने ऐप्लिकेशन में कोई एसडीके जोड़ने की ज़रूरत नहीं है. हालांकि, अगर आपको आने वाले समय में अन्य प्रॉडक्ट इस्तेमाल करने हैं, तो Firebase कंसोल का इस्तेमाल करके Firebase जोड़ें में दिए गए सभी चरणों को पूरा करें.
टेस्ट केस बनाना
एआई की मदद से टेस्ट चलाने के लिए, ऐप्लिकेशन टेस्टिंग एजेंट आपकी नैचुरल लैंग्वेज वाले टेस्ट केस का इस्तेमाल करता है. इससे आपके ऐप्लिकेशन की जांच की जाती है.
हर टेस्ट केस को अलग-अलग चरणों में बांटा जाता है. इन्हें क्रम से पूरा किया जाएगा. चरणों की मदद से, अपने टेस्ट केस को अलग-अलग फ़ेज़ में बांटा जा सकता है. हर फ़ेज़ का अपना दावा होता है. एजेंट, किसी एक चरण के दौरान कई कार्रवाइयां कर सकता है.
टेस्ट केस बनाने के दो तरीके हैं: 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 पेज खोलें और यह तरीका अपनाएं:
- टेस्ट केस टैब पर, नया टेस्ट केस पर क्लिक करें. अगर आपको अपना टेस्ट केस नहीं बनाना है, तो यहां दिए गए उदाहरण के तौर पर दिए गए टेस्ट केस में बदलाव करें या उसका इस्तेमाल करें.
- टेस्ट केस जोड़ें डायलॉग बॉक्स में, टेस्ट केस को कोई नाम दें. इसका इस्तेमाल, टेस्ट की पहचान करने के लिए किया जाता है. हालांकि, एजेंट इसे अनदेखा कर देता है.
- (ज़रूरी नहीं) कोई ऐसा ज़रूरी टेस्ट केस चुनें जिसमें मुख्य टेस्ट से पहले, सेट-अप करने के चरण शामिल हों. अगर ज़रूरी शर्त वाला टेस्ट फ़ेल हो जाता है, तो पूरे टेस्ट को फ़ेल के तौर पर मार्क कर दिया जाएगा. टेस्ट के नतीजों में, ज़रूरी शर्तों और मुख्य टेस्ट के चरण और नतीजे एक साथ दिखाए जाएंगे.
- कोई दूसरा चरण जोड़ें बटन पर क्लिक करके, अपने टेस्ट को कई चरणों में बांटें.
- हर चरण के लिए एक लक्ष्य तय करें. इससे यह पता चलता है कि उस चरण के दौरान, ऐप्लिकेशन टेस्टिंग एजेंट को क्या करना चाहिए.
- (ज़रूरी नहीं) ज़्यादा जानकारी देने के लिए, कोई हिंट जोड़ें. इससे ऐप्लिकेशन टेस्टिंग एजेंट को उस चरण के दौरान, आपके ऐप्लिकेशन को समझने और उसमें नेविगेट करने में मदद मिलेगी.
- फ़ाइनल स्क्रीन असर्शन जोड़ें, ताकि ऐप्लिकेशन टेस्टिंग एजेंट को यह पता चल सके कि चरण कब पूरा हुआ. यह दावा सिर्फ़ स्क्रीन पर दिखने वाले कॉन्टेंट के बारे में होना चाहिए.
- टेस्ट को अपनी ज़रूरत के मुताबिक बनाने के बाद, सेव करें पर क्लिक करें.
टेस्ट केस का उदाहरण
यहां ऐप्लिकेशन टेस्टिंग एजेंट का इस्तेमाल करके, टेस्ट केस बनाने का उदाहरण दिया गया है:
जांच का टाइटल |
होम पेज लोड |
लक्ष्य |
होम पेज लोड करना |
संकेत |
शामिल होने की प्रोसेस से जुड़ी स्क्रीन को स्किप करें. सभी पॉप-अप खारिज करें. साइन इन न करें. |
फ़ाइनल स्क्रीन पर दावा |
ऐप्लिकेशन का मुख्य होम पेज स्क्रीन पर दिख रहा है, सभी इमेज लोड हो गई हैं, और कोई गड़बड़ी नहीं दिख रही है. |
टेस्ट चलाना
टेस्ट चलाने का तरीका इस बात पर निर्भर करता है कि टेस्ट केस कैसे बनाए और मैनेज किए जाते हैं. अगर YAML फ़ाइलों का इस्तेमाल करके टेस्ट केस तय किए जाते हैं, तो उन टेस्ट को Firebase सीएलआई का इस्तेमाल करके चलाया जाएगा. अगर आपने 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 सीएलआई का इस्तेमाल करके, उपलब्ध डिवाइस मॉडल देखे जा सकते हैं. |
--test-username
|
टेस्ट के दौरान, अपने-आप लॉगिन होने के लिए इस्तेमाल किया जाने वाला उपयोगकर्ता नाम. |
--test-password या --test-password-file
|
टेस्ट के दौरान, अपने-आप लॉगिन होने की सुविधा के लिए इस्तेमाल किया जाने वाला पासवर्ड. इसके अलावा, पासवर्ड वाली सादे टेक्स्ट की फ़ाइल का पाथ भी दिया जा सकता है: --test-password-file: "/path/to/test-password.txt"
|
--test-non-blocking
|
अगर यह सेट है, तो कमांड टेस्ट शुरू कर देगा और फिर उनके पूरा होने का इंतज़ार करने के बजाय तुरंत वापस आ जाएगा. टेस्ट के नतीजे देखने के लिए, Firebase कंसोल पर जाएं. अगर यह फ़्लैग सेट नहीं है, तो टेस्ट पूरे होने तक कमांड ब्लॉक रहेगा. साथ ही, अगर कोई टेस्ट फ़ेल होता है, तो यह फ़ेलियर कोड के साथ बंद हो जाएगा. |
--results-bucket
|
Google Cloud Storage (GCS) की कस्टम बकेट, जहां टेस्ट के नतीजे सेव किए जाते हैं. इसे खाली छोड़ने पर, डिफ़ॉल्ट बकेट का इस्तेमाल किया जाता है. बकेट का मालिकाना हक, बिलिंग की सुविधा वाले प्रोजेक्ट के पास होना चाहिए. साथ ही, बकेट तय करने पर, इस्तेमाल किए गए स्टोरेज के लिए बिलिंग शुल्क लागू होते हैं. |
--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 की ओर से की गई कार्रवाइयां, ऐप्लिकेशन के स्क्रीनशॉट, और कोई भी समस्या दिखेगी.
अगर किसी टेस्ट में फिर से चलाए गए ऐक्शन शामिल हैं, तो एआई की मदद से चलाए गए ओरिजनल टेस्ट को देखा जा सकता है या कैश मेमोरी को मिटाया जा सकता है.
जांच के नतीजों के बारे में ज़्यादा जानने के लिए, इस टेबल का इस्तेमाल करें:
| आइकॉन | नाम | ब्यौरा |
|---|---|---|
| spark | एआई ऐक्शन | इससे पता चलता है कि ऐप्लिकेशन टेस्टिंग एजेंट ने Gemini का इस्तेमाल करके, कोई कार्रवाई करने या चरण को खत्म करने का फ़ैसला लिया. |
| replay | फिर से की गई कार्रवाई | इससे पता चलता है कि ऐप्लिकेशन टेस्टिंग एजेंट ने, टेस्ट के पिछले सफल रन की किसी कार्रवाई को फिर से चलाया. |
| spark | एआई का इस्तेमाल किए जाने की पुष्टि | इससे पता चलता है कि ऐप्लिकेशन टेस्टिंग एजेंट ने Gemini का इस्तेमाल करके, फ़ाइनल स्क्रीन पर किए गए दावे की पुष्टि की. ऐसा उसी टेस्ट के पिछले सफल रन की कार्रवाइयों को फिर से चलाने के बाद किया गया. |
जांच के नतीजों को डीबग करना
अगर टेस्ट के नतीजे आपकी उम्मीद के मुताबिक नहीं हैं, तो टेस्ट को डीबग किया जा सकता है. इसके लिए, टेस्ट के नतीजों वाले पेज पर जानकारी देखें में जाकर, एजेंट व्यू दिखाएं टॉगल का इस्तेमाल करें. एजेंट व्यू में, आपको स्क्रीन पर मौजूद वे एलिमेंट दिखते हैं जिनका पता ऐप्लिकेशन टेस्टिंग एजेंट ने ऐप्लिकेशन की सुलभता जानकारी का इस्तेमाल करके लगाया था. अगर आपको यह देखना है कि एजेंट ने क्या देखा, तो ऐक्शन ओवरफ़्लो मेन्यू से वह जानकारी डाउनलोड की जा सकती है.
टेस्ट के नतीजों वाले पेज पर मौजूद, आर्टफ़ैक्ट देखें बटन का इस्तेमाल करके भी, टेस्ट के नतीजों से जुड़े सभी वीडियो, लॉग, और अन्य क्लाउड आर्टफ़ैक्ट देखे जा सकते हैं.
आम तौर पर होने वाली समस्याएं और सीमाएं
ऐप्लिकेशन टेस्टिंग एजेंट की झलक में कुछ सीमाएं हैं:
- एआई की मदद से किए जाने वाले टेस्ट के लिए, पांच मिनट का टाइम आउट होता है. टेस्ट शुरू होने के बाद, उसे तय समयसीमा के अंदर पूरा होना चाहिए. ऐसा न होने पर, टेस्ट समय से पहले खत्म हो जाएगा और उसे टेस्ट फ़ेलियर के तौर पर गिना जाएगा.
- ऐप्लिकेशन टेस्टिंग एजेंट, आपके ऐप्लिकेशन की जांच करने के लिए जनरेटिव एआई का इस्तेमाल करता है. इसलिए, यह कभी-कभी एक ही निर्देश का पालन करते हुए भी अलग-अलग कार्रवाइयां करेगा.
- ऐप्लिकेशन टेस्टिंग एजेंट सिर्फ़ ये कार्रवाइयां कर सकता है: टैप करना, टेक्स्ट डालना, ऊपर/नीचे/बाएं/दाएं स्वाइप करना, दबाकर रखना, खींचना और छोड़ना, वापस जाना, और इंतज़ार करना.
- ऐप्लिकेशन टेस्टिंग एजेंट को ऐसे टेस्ट चलाने में समस्या होती है जिनमें सिर्फ़ एक चरण होता है, लेकिन उसे पूरा करने के लिए कई कार्रवाइयां करनी पड़ती हैं. यह तब बेहतर तरीके से काम करता है, जब मुश्किल टास्क को कई छोटे-छोटे चरणों में बांट दिया जाता है.
- कभी-कभी ऐप्लिकेशन टेस्टिंग एजेंट, स्क्रीन पर मौजूद अन्य एलिमेंट को दिखाने के लिए स्क्रोल नहीं करता. ऐसा अक्सर तब होता है, जब स्क्रोल करने की सुविधा का कोई विज़ुअल इंडिकेशन न हो. इसके बजाय, स्क्रोल करने का सुझाव देने के लिए, "hints" फ़ील्ड का इस्तेमाल किया जा सकता है.
- कभी-कभी ऐप्लिकेशन टेस्टिंग एजेंट को गिनती करने में समस्या आती है. उदाहरण के लिए, किसी कार्रवाई को तय संख्या में करना.
- अगर
FLAG_SECUREचालू है, तो ऐप्लिकेशन टेस्टिंग एजेंट आपके ऐप्लिकेशन को नेविगेट नहीं कर सकता. आपके ऐप्लिकेशन के स्क्रीनशॉट के बजाय, उसे सिर्फ़ खाली स्क्रीन दिखेगी.
टेस्टिंग कोटा
झलक के दौरान, एआई की मदद से टेस्ट जनरेट करने की सुविधा बिना किसी शुल्क के उपलब्ध होगी. हालांकि, इसके लिए कोटा तय किया गया है. डिफ़ॉल्ट रूप से, हर Firebase प्रोजेक्ट के लिए, हर महीने 200 टेस्ट किए जा सकते हैं.
ध्यान दें कि अगर आपको एक से ज़्यादा टेस्ट केस चलाने हैं या एक ही टेस्ट केस को कई डिवाइसों पर चलाना है, तो इसे कई टेस्ट माना जाएगा. उदाहरण के लिए, अगर दो डिवाइसों पर दो टेस्ट केस चलाए जाते हैं, तो इसे कुल चार टेस्ट के तौर पर गिना जाता है.
डिफ़ॉल्ट सीमा से ज़्यादा कोटा बढ़ाने के लिए, Firebase की सहायता टीम से संपर्क करें. साथ ही, उन्हें बताएं कि आपको कोटा बढ़ाने की ज़रूरत क्यों है.