डिवाइस-साइड मेट्रिक कलेक्टर

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

इस्तेमाल के इन उदाहरणों को पूरा करने के लिए, हमारे कलेक्टर का डिवाइस-साइड वर्शन मौजूद है. इसका इस्तेमाल किसी भी AndroidJUnitRunner इंस्ट्रुमेंटेशन में किया जा सकता है. BaseMetricListener को लागू किया जा सकता है, ताकि Tradefed रिपोर्टिंग पाइपलाइन के साथ पूरी तरह से काम करने वाली मेट्रिक अपने-आप रिपोर्ट की जा सकें.

यह लाइब्रेरी, Tradefed से अलग है और इसका इस्तेमाल Tradefed के बिना भी किया जा सकता है.

अगर Tradefed के AndroidJUnitTest रनर का इस्तेमाल किया जा रहा है, तो अपने कलेक्टर को टेस्ट के साथ चलाने के लिए, कमांड लाइन के इस विकल्प का इस्तेमाल करें:

  --device-listeners android.device.collectors.ScreenshotListener
  LOCAL_STATIC_JAVA_LIBRARIES += collector-device-lib

लागू करना

बेस क्लास BaseMetricListener के ऊपर लागू करते समय, यह चुना जा सकता है कि आपको इंस्ट्रुमेंटेशन के लाइफ़साइकल के दौरान अपनी मेट्रिक कब इकट्ठा करनी हैं:

  • टेस्ट रन शुरू होने पर: onTestRunStart
  • जब कोई टेस्ट केस शुरू होता है: onTestStart
  • टेस्ट केस खत्म होने पर: onTestEnd
  • टेस्ट केस फ़ेल होने पर: onTestFail
  • टेस्ट रन खत्म होने पर: onTestRunEnd

इंटरैक्शन

डिवाइस पर मेट्रिक इकट्ठा करने की प्रोसेस, इंस्ट्रुमेंटेशन के साथ-साथ होती है. साथ ही, मेट्रिक को इंस्ट्रुमेंटेशन के नतीजों में वापस भेज दिया जाता है. इसके बाद, Tradefed इन मेट्रिक को पार्स करता है, ताकि इन्हें इनवॉकेशन के हिस्से के तौर पर रिपोर्ट किया जा सके.