هنگام اجرای تستهای سمت دستگاه (برای مثال، ابزار دقیق، تستهای UI Automator)، جمعآوریکنندههای سمت میزبان ممکن است ایدهآل نباشند زیرا همگامسازی جمعآوری معیارها با تستی که روی دستگاه اجرا میشود دشوار است. برای مثال، یک اسکرینشات که به صورت غیرهمزمان گرفته شده است، احتمالاً صفحه مورد نظر را از دست میدهد و بیفایده است.
برای برآورده کردن این موارد استفاده، یک نسخه سمت دستگاه از جمعکنندههای ما وجود دارد و میتواند در هر ابزار AndroidJUnitRunner مورد استفاده قرار گیرد. BaseMetricListener میتواند برای گزارش خودکار معیارهایی که به روشی کاملاً سازگار با خط لوله گزارشدهی Tradefed جمعآوری میشوند، پیادهسازی شود.
این کتابخانه از خود Tradefed جدا شده است و میتواند بدون Tradefed مورد استفاده قرار گیرد.
اگر از اجراکنندهی AndroidJUnitTest از Tradefed استفاده میکنید، میتوانید گزینهی خط فرمان زیر را برای اجرای کالکتور به همراه تستهایتان مشخص کنید:
--device-listeners android.device.collectors.ScreenshotListener
LOCAL_STATIC_JAVA_LIBRARIES += collector-device-lib
پیادهسازی
هنگام پیادهسازی روی کلاس پایه BaseMetricListener ، میتوانید انتخاب کنید که چه زمانی میخواهید معیارهای خود را در طول چرخه عمر ابزار دقیق جمعآوری کنید:
- وقتی یک اجرای آزمایشی شروع میشود:
onTestRunStart - وقتی یک مورد آزمایشی شروع میشود:
onTestStart - وقتی یک مورد آزمایشی پایان مییابد:
onTestEnd - وقتی یک مورد آزمایشی با شکست مواجه میشود:
onTestFail - وقتی یک اجرای آزمایشی پایان مییابد:
onTestRunEnd
تعامل
جمعآوری معیارها در سمت دستگاه به صورت همزمان با اجرای خود ابزار دقیق انجام میشود و معیارها به نتایج ابزار دقیق بازگردانده شده و توسط Tradefed تجزیه میشوند تا به عنوان بخشی از فراخوانی گزارش شوند.