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

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

इस्तेमाल के इन उदाहरणों को पूरा करने के लिए, हमारे कलेक्टर का डिवाइस-साइड वर्शन मौजूद है और इसका इस्तेमाल किसी भी 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 की मदद से पार्स किया जाता है, ताकि उन्हें ट्रिगर करने के हिस्से के तौर पर रिपोर्ट किया जा सके.