ডিভাইস-সাইড মেট্রিক্স সংগ্রাহক

ডিভাইস-সাইড টেস্ট (যেমন, ইন্সট্রুমেন্টেশন, UI অটোমেটর টেস্ট) চালানোর সময় হোস্ট-সাইড কালেক্টর আদর্শ নাও হতে পারে, কারণ ডিভাইসে চলমান কোনো টেস্টের সাথে মেট্রিক সংগ্রহকে সিঙ্ক্রোনাইজ করা কঠিন। উদাহরণস্বরূপ, অ্যাসিঙ্ক্রোনাসভাবে নেওয়া একটি স্ক্রিনশটে কাঙ্ক্ষিত স্ক্রিনটি বাদ পড়ার এবং সেটি অকেজো হয়ে যাওয়ার সম্ভাবনা থাকে।

এইসব ব্যবহারের চাহিদা মেটাতে, আমাদের কালেক্টরগুলোর একটি ডিভাইস-সাইড সংস্করণ রয়েছে এবং এটি যেকোনো AndroidJUnitRunner ইন্সট্রুমেন্টেশনে ব্যবহার করা যেতে পারে। Tradefed রিপোর্টিং পাইপলাইনের সাথে সম্পূর্ণ সামঞ্জস্যপূর্ণ উপায়ে সংগৃহীত মেট্রিকগুলো স্বয়ংক্রিয়ভাবে রিপোর্ট করার জন্য BaseMetricListener প্রয়োগ করা যেতে পারে।

এই লাইব্রেরিটি ট্রেডফেড থেকে পৃথক এবং ট্রেডফেড ছাড়াই ব্যবহার করা যায়।

আপনি যদি Tradefed-এর AndroidJUnitTest রানার ব্যবহার করেন, তাহলে আপনার টেস্টগুলোর সাথে কালেক্টরটি চালানোর জন্য নিম্নলিখিত কমান্ড লাইন অপশনটি নির্দিষ্ট করতে পারেন:

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

বাস্তবায়ন

বেস ক্লাস BaseMetricListener এর উপরে ইমপ্লিমেন্ট করার সময়, আপনি ইন্সট্রুমেন্টেশনের লাইফসাইকেল চলাকালীন কখন আপনার মেট্রিকগুলো সংগ্রহ করতে চান তা বেছে নিতে পারেন:

  • যখন একটি টেস্ট রান শুরু হয়: onTestRunStart
  • যখন একটি টেস্ট কেস শুরু হয়: onTestStart
  • যখন একটি টেস্ট কেস শেষ হয়: onTestEnd
  • যখন কোনো টেস্ট কেস ব্যর্থ হয়: onTestFail
  • যখন একটি টেস্ট রান শেষ হয়: onTestRunEnd

মিথস্ক্রিয়া

ডিভাইস প্রান্তে মেট্রিক সংগ্রহ স্বয়ং ইন্সট্রুমেন্টেশন সম্পাদনের সাথে একযোগে করা হয়, এবং মেট্রিকগুলো ইন্সট্রুমেন্টেশন ফলাফলে ফেরত পাঠানো হয় ও ইনভোকেশনের অংশ হিসেবে রিপোর্ট করার জন্য ট্রেডফেড দ্বারা পার্স করা হয়।