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

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

मुख्य सिद्धांत

Firebase कंसोल में, पहले चलाए गए सभी टेस्ट के नतीजे, DevOps और उपयोगकर्ता जुड़ाव > Test Lab पर जाकर देखे जा सकते हैं. इस पेज पर, Test Lab का इस्तेमाल करके, आपके प्रोजेक्ट के साथ टेस्ट किए गए ऐप्लिकेशन के टेस्ट रन के सभी नतीजे दिखते हैं.Test Lab

टेस्ट के नतीजों की समीक्षा करने के लिए, आपको सबसे पहले तीन सिद्धांतों को समझना होगा:

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

डिवाइस × टेस्ट रन = टेस्ट मैट्रिक्स

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

यहां दिए गए सेक्शन में, टेस्ट के नतीजों को देखने का तरीका बताया गया है.

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

Test Lab को चुनकर, टेस्ट के नतीजों पर जाने पर, आपको अब तक चलाए गए टेस्ट के नतीजे दिखते हैं.

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

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

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

आम तौर पर, टेस्ट मैट्रिक्स में करीब एक दर्जन अलग-अलग डिवाइसों पर टेस्ट चलाया जा सकता है. हर टेस्ट रन का नतीजा अलग-अलग हो सकता है. टेस्ट मैट्रिक्स में, किसी भी टेस्ट रन के संभावित नतीजे ये हो सकते हैं:

  • पास हुआ टेस्ट पास हो गया: कोई गड़बड़ी नहीं हुई.
  • फ़ेल हुआ टेस्ट पूरा नहीं हुआ: कम से कम एक गड़बड़ी हुई.
  • कोई नतीजा नहीं निकला टेस्ट पास हो गया: टेस्ट के नतीजे साफ़ तौर पर नहीं मिले. ऐसा में गड़बड़ी की वजह से हो सकता है.Test Lab
  • छोड़ा गया टेस्ट पास हो गया: मैट्रिक्स में, कुछ टेस्ट रन के लिए चुने गए डाइमेंशन की वैल्यू काम नहीं कर रही थीं. ऐसा तब होता है, जब चुने गए डिवाइस, चुने गए एक या एक से ज़्यादा Android API लेवल के साथ काम नहीं करते.

अपने Firebase प्रोजेक्ट में, किसी दिए गए ऐप्लिकेशन के लिए सभी टेस्ट मैट्रिक्स के इकट्ठा किए गए नतीजे देखने के लिए, ऐप्लिकेशन के नाम पर क्लिक करें. जैसे, यहां दिए गए उदाहरण में दिखाया गया है:

टेस्ट मैट्रिक्स के नतीजों वाले पेज का उदाहरण. इसमें सिर्फ़ चार टेस्ट रन के नतीजे दिख रहे हैं टेस्ट मैट्रिक्स के नतीजे

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

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

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

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

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

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

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

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

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

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

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

इंस्ट्रूमेंटेशन टेस्ट के अलग-अलग हिस्सों के नतीजे

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

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

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

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

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

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

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

मेट्रिकडिवाइस का ज़रूरी कॉन्फ़िगरेशन
ऐप्लिकेशन स्टार्टअप समयAPI 19 या इससे नया वर्शन
CPU उपयोगAPI 21 या इससे नया वर्शन
मेमोरी का इस्तेमाल
नेटवर्क पर की जाने वाली गतिविधि
फ़्रेम प्रति सेकंडAPI 21 या इससे नया वर्शन और इसमें SurfaceView शामिल है

टेस्ट के नतीजों की पूरी जानकारी

टेस्ट चलाने के 90 दिनों तक, टेस्ट के नतीजों की पूरी जानकारी उपलब्ध रहती है. यह जानकारी, Google Cloud Storage बकेट में सेव होती है. हालांकि, यह Firebase कंसोल में भी दिखती है. टेस्ट रन के नतीजों वाले पेज पर टेस्ट के नतीजे पर क्लिक करने पर, Cloud Storage बकेट में टेस्ट के नतीजों की पूरी जानकारी देखी जा सकती है. टेस्ट के नतीजों की पूरी जानकारी उपलब्ध न होने पर भी, यह देखा जा सकता है कि कौनसे टेस्ट पास हुए हैं या फ़ेल हुए हैं.

अगर आपको टेस्ट के नतीजों की पूरी जानकारी 90 दिनों से ज़्यादा समय तक सेव रखनी है, तो इन नतीजों को अपनी Cloud Storage बकेट में भेजा जा सकता है. इसके लिए, --results-bucket gcloud कमांड-लाइन विकल्प का इस्तेमाल करें. इसके बाद, उम्र सेटिंग सेट करके यह तय किया जा सकता है कि नतीजे आपके 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 कमांड-लाइन विकल्प का इस्तेमाल किया जा सकता है.