होस्ट-ड्रिवन मेट्रिक कलेक्टर, होस्ट पर चलते हैं, न कि डिवाइस पर. वे टारगेट की जा रही मेट्रिक इकट्ठा करने के लिए, होस्ट की तरफ़ से डिवाइस के साथ इंटरैक्ट करते हैं.
मेट्रिक कलेक्टर का डिज़ाइन
सभी कलेक्टर को मिलने वाली बेस क्लास BaseDeviceMetricCollector
होती है. इसकी मदद से, शेयर की जाने वाली एक जैसी बुनियादी सुविधाएं मिलती हैं:
- फ़िल्टर करना
- बंद करना
- टेस्ट केस बनाम टेस्ट रन करके डेटा इकट्ठा करना
कलेक्टर, नतीजे की जानकारी देने वाले मॉडल का पालन करते हैं, क्योंकि वे होस्ट पर टेस्ट के साथ सिंक होते हैं. दूसरे शब्दों में, अगर टेस्ट होस्ट-ड्रिवन हैं, तो टेस्ट के अगले चरण पर जाने से पहले कलेक्टर को चलाया जाता है.
उदाहरण के लिए, अगर कलेक्टर testEnded
पर लागू होता है, तो testStart
के साथ अगले टेस्ट पर जाने से पहले, कलेक्टर लागू होते हैं.
होस्ट-ड्रिवन मेट्रिक कलेक्टर लागू करना
बुनियादी क्लास BaseDeviceMetricCollector
के आधार पर इसे लागू करते समय, आपके पास यह तय करने का विकल्प होता है कि लाइफ़साइकल के दौरान मेट्रिक को कब इकट्ठा किया जाए:
- टेस्ट रन कब शुरू होता है:
onTestRunStart
- टेस्ट केस शुरू होने पर:
onTestStart
- टेस्ट केस खत्म होने पर:
onTestEnd
- टेस्ट रन खत्म होने पर:
onTestRunEnd
एसिंक्रोनस कलेक्शन करना
सिंक्रोनस तरीकों के अलावा, TF एक बेस क्लास भी उपलब्ध कराता है. इसे लागू करने पर, समय-समय पर एसिंक्रोनस तरीके से डेटा इकट्ठा किया जाता है. इसे ScheduledDeviceMetricCollector
कहा जाता है. इसमें collect
का एक ऐसा तरीका लागू किया जाता है जो समय-समय पर चलता रहता है.
विकल्पों के हिसाब से, इस अवधि को अपनी पसंद के मुताबिक बनाया जा सकता है.
एक्सएमएल कॉन्फ़िगरेशन
ऑब्जेक्ट टैग metrics_collector
है. उदाहरण के लिए:
<metrics_collector class="com.android.tradefed.device.metric.AtraceCollector">
<option name="categories" value="freq"/>
</metrics_collector>
सुझाव
कलेक्टर की मौजूदा सूची देखें, ताकि यह पक्का किया जा सके कि आपने डुप्लीकेट डेटा इकट्ठा न किया हो. हम यह पक्का करने की कोशिश करते हैं कि डेटा को ज़्यादा से ज़्यादा बार इस्तेमाल किया जा सके. इसलिए, हर कलेक्टर को एक ही तरह का डेटा इकट्ठा करने की अनुमति दी जाती है. इससे टेस्ट के दौरान, अलग-अलग कलेक्टर को ज़्यादा आसानी से मिलाया और मैच किया जा सकता है.