Firebase Test Lab का इस्तेमाल करके, अपने Android ऐप्लिकेशन पर टेस्ट चलाने के कई तरीके हैं. इनमें कमांड लाइन इंटरफ़ेस, Android Studio, Firebase कंसोल में मौजूद Test Lab यूज़र इंटरफ़ेस, और Testing API शामिल हैं. टेस्ट शुरू करने का तरीका चाहे जो भी हो, नतीजे उस Firebase प्रोजेक्ट में सेव किए जाते हैं जिसे आपने चुना है. ऊपर दिए गए किसी भी टूल के साथ-साथ, ToolResults API का इस्तेमाल करके भी नतीजों को एक्सप्लोर किया जा सकता है. इस पेज पर, टेस्ट के इन नतीजों की समीक्षा करने और उनका विश्लेषण करने का तरीका बताया गया है.
मुख्य सिद्धांत
Firebase कंसोल में, DevOps और यूज़र ऐक्टिविटी > Test Lab पर जाकर, पिछले सभी टेस्ट रन के नतीजे देखे जा सकते हैं. इस पेज पर, उन सभी ऐप्लिकेशन के टेस्ट रन के नतीजे दिखते हैं जिन्हें आपने Test Lab का इस्तेमाल करके अपने प्रोजेक्ट के साथ टेस्ट किया है.
टेस्ट के नतीजों की समीक्षा करने के लिए, आपको सबसे पहले इन तीन कॉन्सेप्ट को समझना होगा:
जब चुने गए डिवाइसों और कॉन्फ़िगरेशन के हिसाब से कोई टेस्ट या टेस्ट केस का सेट चलाया जाता है, तो Test Lab आपके ऐप्लिकेशन के लिए बैच में टेस्ट चलाता है. इसके बाद, नतीजों को टेस्ट मैट्रिक्स के तौर पर दिखाता है.
डिवाइस × टेस्ट एक्ज़ीक्यूशन = टेस्ट मैट्रिक्स
- डिवाइस
- फ़िज़िकल या वर्चुअल डिवाइस (सिर्फ़ Android), जिस पर आपको टेस्ट चलाना है. जैसे, फ़ोन, टैबलेट या पहना जाने वाला डिवाइस. टेस्ट मैट्रिक्स में डिवाइसों की पहचान, डिवाइस मॉडल, ओएस वर्शन, स्क्रीन ओरिएंटेशन, और स्थान-भाषा (इसे भौगोलिक और भाषा सेटिंग के तौर पर भी जाना जाता है) के हिसाब से की जाती है.
- टेस्ट, टेस्ट एक्ज़ीक्यूशन
- किसी डिवाइस पर टेस्ट (या टेस्ट केस का सेट) चलाया जाना है. हर डिवाइस पर एक टेस्ट चलाया जा सकता है. इसके अलावा, टेस्ट को अलग-अलग हिस्सों में बांटकर, उसके टेस्ट केस अलग-अलग डिवाइसों पर चलाए जा सकते हैं.
- टेस्ट मैट्रिक्स
- इसमें आपके टेस्ट के एक्ज़ीक्यूशन की स्थितियां और टेस्ट के नतीजे शामिल होते हैं. अगर मैट्रिक्स में कोई भी टेस्ट एक्ज़ीक्यूशन पूरा नहीं होता है, तो पूरी मैट्रिक्स फ़ेल हो जाती है.
यहां दिए गए सेक्शन में, जांच के नतीजों को ऐक्सेस करने का तरीका बताया गया है.
जांच के इतिहास के नतीजों को समझना
Test Lab को चुनकर, टेस्ट के नतीजों पर जाने पर आपको अब तक किए गए टेस्ट के नतीजे दिखते हैं.
टेस्टिंग के इतिहास को ऐप्लिकेशन के हिसाब से ग्रुप किया जाता है. हर ऐप्लिकेशन के लिए, सिर्फ़ पांच सबसे नई टेस्ट मैट्रिक्स दिखाई जाती हैं. अगर ज़्यादा मैट्रिक्स उपलब्ध हैं, तो ऐप्लिकेशन की टेस्ट सूची में सबसे नीचे मौजूद सभी मैट्रिक्स लिंक पर क्लिक करके, उस ऐप्लिकेशन के लिए पूरी सूची देखी जा सकती है.
टेस्ट मैट्रिक्स के नतीजों को समझना
Test Lab यूज़र इंटरफ़ेस (यूआई) के ज़रिए टेस्ट शुरू करने पर, आपको एक ऐसे पेज पर रीडायरेक्ट किया जाता है जहां टेस्ट मैट्रिक्स देखी जा सकती है. साथ ही, टेस्ट के नतीजों को देखने के लिए, किसी टेस्ट के एक्ज़ीक्यूशन पर क्लिक किया जा सकता है. Android Studio और gcloud कमांड, टेस्ट मैट्रिक्स के नतीजों वाले पेज का यूआरएल भी उपलब्ध कराती हैं.
आम तौर पर, टेस्ट मैट्रिक्स में एक दर्जन या उससे ज़्यादा डिवाइसों पर टेस्ट किया जाता है. हर टेस्ट के नतीजे अलग-अलग हो सकते हैं. टेस्ट मैट्रिक्स में किसी भी टेस्ट को लागू करने के संभावित नतीजों में ये शामिल हैं:
- पास किया गया
: कोई गड़बड़ी नहीं हुई. - नहीं हो सका
: कम से कम एक गड़बड़ी हुई. - कोई नतीजा नहीं मिला
: टेस्ट के नतीजे साफ़ तौर पर नहीं मिले. ऐसा शायद Test Lab गड़बड़ी की वजह से हुआ. - छोड़ा गया
: मैट्रिक्स में, जांच के कुछ चरणों के लिए चुनी गई डाइमेंशन वैल्यू काम नहीं कर रही थीं. ऐसा तब होता है, जब आपके चुने गए डिवाइस, Android API के उन लेवल के साथ काम नहीं करते हैं जिन्हें आपने चुना है.
अपने Firebase प्रोजेक्ट में मौजूद किसी ऐप्लिकेशन के लिए, सभी टेस्ट मैट्रिक्स के एग्रीगेट किए गए टेस्ट के नतीजे देखने के लिए, ऐप्लिकेशन के नाम पर क्लिक करें. यहां दिए गए उदाहरण में दिखाया गया है कि ऐप्लिकेशन का नाम कहां दिखता है:
सिर्फ़ चार टेस्ट के नतीजों वाला, टेस्ट मैट्रिक्स के नतीजों का पेज

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

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

किसी एक टेस्ट के नतीजों को समझना
टेस्ट मैट्रिक्स के नतीजों वाले पेज पर, किसी टेस्ट के नतीजे देखने के लिए, उस टेस्ट पर क्लिक करें.
टेस्ट के नतीजों के पेज का उदाहरण

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

सुलभता से जुड़े नतीजों को समझना
रोबो टेस्ट, Android Accessibility Scanner का इस्तेमाल करके, आपके ऐप्लिकेशन में सुलभता से जुड़ी समस्याओं का पता लगाते हैं. ध्यान दें कि अपने डिवाइस पर भी स्कैन किया जा सकता है. Robo टेस्ट के सुलभता से जुड़े नतीजों की समीक्षा करने और उन्हें समझने के बारे में निर्देश पाने के लिए, Accessibility Scanner का इस्तेमाल शुरू करना पर जाएं.
अपने ऐप्लिकेशन की सुलभता को बेहतर बनाने के बारे में सामान्य जानकारी पाने के लिए, Android डेवलपर के लिए सुलभता दस्तावेज़ पर जाएं.
परफ़ॉर्मेंस मेट्रिक
फ़िज़िकल डिवाइसों पर किए गए टेस्ट से भी परफ़ॉर्मेंस मेट्रिक मिलती हैं:
| मेट्रिक | डिवाइस का ज़रूरी कॉन्फ़िगरेशन |
|---|---|
| ऐप्लिकेशन स्टार्टअप समय | API 19+ |
| CPU उपयोग | एपीआई 21 और इसके बाद के वर्शन |
| मेमोरी का इस्तेमाल | |
| नेटवर्क पर की जाने वाली गतिविधि | |
| फ़्रेम प्रति सेकंड | एपीआई 21+ और इसमें SurfaceView शामिल है |
टेस्ट के बारे में ज़्यादा जानकारी वाले नतीजे
टेस्ट चलाने के बाद, टेस्ट के नतीजों की ज़्यादा जानकारी 90 दिनों तक उपलब्ध रहती है. इसे Google Cloud Storage बकेट में सेव किया जाता है. हालांकि, यह Firebase कंसोल में भी दिखती है. टेस्ट के नतीजों की ज़्यादा जानकारी देखने के लिए, टेस्ट के नतीजों वाले पेज पर टेस्ट के नतीजे पर क्लिक करें. इसके बाद, Cloud Storage बकेट में जाकर टेस्ट के नतीजों की ज़्यादा जानकारी देखी जा सकती है. टेस्ट के नतीजों की ज़्यादा जानकारी उपलब्ध न होने पर भी, यह देखा जा सकता है कि कौनसे टेस्ट पास हुए या फ़ेल हुए.
अगर आपको टेस्ट के नतीजों की ज़्यादा जानकारी को 90 दिनों से ज़्यादा समय तक सेव रखना है, तो --results-bucket gcloud कमांड-लाइन विकल्प का इस्तेमाल करके, इन नतीजों को अपने मालिकाना हक वाले Cloud Storage बकेट में भेजें. इसके बाद, उम्र सेटिंग सेट करके यह तय किया जा सकता है कि नतीजे आपके Cloud Storage बकेट में कितने समय तक सेव रहेंगे. उम्र सेटिंग बदलने के तरीके के बारे में जानने के लिए, लाइफ़साइकल की शर्तें देखें.
अगर टेस्ट चलाते समय आपको does not have storage.objects.create access to the Google Cloud Storage object. Permission 'storage.objects.create' denied on resource (or it may not exist).. गड़बड़ी का मैसेज मिलता है, तो हो सकता है कि टेस्ट चलाने वाले प्रिंसिपल के पास प्रोजेक्ट के लिए सही अनुमति न हो. डिफ़ॉल्ट रूप से, Firebase आपके लिए Google Cloud Storage में एक बकेट बनाता है. हालांकि, इसके लिए ज़रूरी है कि टेस्ट चलाने वाले प्रिंसिपल के पास "roles/editor" की भूमिका हो. यह एक अनुमति वाली भूमिका है. अगर प्रिंसिपल को यह भूमिका नहीं दी जा सकती, तो --results-bucket gcloud कमांड-लाइन विकल्प का इस्तेमाल करें.