Firebase टेस्ट लैब के नतीजों का विश्लेषण करना

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 प्रोजेक्ट से जुड़े अन्य ऐप्लिकेशन के लिए टेस्ट मैट्रिक्स की सूची देखने के लिए, ऐप्लिकेशन के नाम (नीचे लाल बॉक्स में दिखाया गया है) पर क्लिक किया जा सकता है.

टेस्ट मैट्रिक्स की सूची वाले पेज का उदाहरण टेस्ट मैट्रिक्स की सूची

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

रोबो टेस्ट के नतीजों को समझना

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

रोबो टेस्ट के नतीजों के वीडियो का उदाहरण

रोबो टेस्ट के नतीजे

किसी एक टेस्ट के नतीजों को समझना

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

टेस्ट के नतीजों के पेज का उदाहरण टेस्ट के नतीजों को लागू करना

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

पार्टिशन किए गए इंस्ट्रूमेंटेशन टेस्ट के नतीजे

इंस्ट्रुमेंट किए गए टेस्ट के नतीजों को समझने में आपकी मदद करने के लिए, Test Lab हर टेस्ट को उसकी ज़्यादा जानकारी वाले रिपोर्ट पेज में अलग करता है. इसमें स्टैक ट्रेस, लॉग, और वीडियो शामिल होते हैं. यह सुविधा, Android Orchestrator का इस्तेमाल करने पर भी काम करती है और न करने पर भी.

टेस्टकेस के नतीजों के पेज का उदाहरण टेस्ट केस के नतीजे

सुलभता से जुड़े नतीजों को समझना

रोबो टेस्ट, Android Accessibility Scanner का इस्तेमाल करके, आपके ऐप्लिकेशन में सुलभता से जुड़ी समस्याओं का पता लगाते हैं. ध्यान दें कि अपने डिवाइस पर भी स्कैन किया जा सकता है. Robo टेस्ट के सुलभता से जुड़े नतीजों की समीक्षा करने और उन्हें समझने के बारे में निर्देश पाने के लिए, Accessibility Scanner का इस्तेमाल शुरू करना पर जाएं.

अपने ऐप्लिकेशन की सुलभता को बेहतर बनाने के बारे में सामान्य जानकारी पाने के लिए, Android डेवलपर के लिए सुलभता दस्तावेज़ पर जाएं.

परफ़ॉर्मेंस मेट्रिक

फ़िज़िकल डिवाइसों पर किए गए टेस्ट से भी परफ़ॉर्मेंस मेट्रिक मिलती हैं:

मेट्रिकडिवाइस का ज़रूरी कॉन्फ़िगरेशन
ऐप्लिकेशन स्टार्टअप समयAPI 19+
CPU उपयोगAPI 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 कमांड-लाइन विकल्प का इस्तेमाल करें.