डिवाइस-साइड टेस्ट (उदाहरण के लिए, इंस्ट्रूमेंटेशन, यूज़र इंटरफ़ेस (यूआई) ऑटोमेटर टेस्ट) चलाते समय, होस्ट-साइड कलेक्टर सही नहीं हो सकते. ऐसा इसलिए, क्योंकि डिवाइस पर चल रहे टेस्ट के साथ मेट्रिक कलेक्शन को सिंक करना मुश्किल होता है. उदाहरण के लिए, एसिंक्रोनस तरीके से लिया गया स्क्रीनशॉट, शायद ही आपकी ज़रूरत के मुताबिक हो और आपके काम का न हो.
इन इस्तेमाल के उदाहरणों को पूरा करने के लिए, हमारे कलेक्टर का डिवाइस-साइड वर्शन मौजूद है. इसका इस्तेमाल किसी भी 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 उन्हें पार्स करता है, ताकि उन्हें इनवोकेशन के हिस्से के तौर पर रिपोर्ट किया जा सके.