OmniLab ATS ابزاری آزمایشی است که توسعهدهندگان و مهندسان آزمایش Android میتوانند از آن برای بهکارگیری میانای کاربر برای اجرای مجموعههای آزمایشی استاندارد Android، مانند مجموعه آزمایش سازگاری Android (CTS)، استفاده کنند. این ابزار بهعنوان میانای وب برای چارچوبهای آزمایشی مختلف، مانند Trade Federation (TF) و Google Mobly، عمل میکند و به شما امکان میدهد آزمونهای سازگاری و آزمونهای چنددستگاهی را با حداقل راهاندازی روی مجموعهای از دستگاههای آزمایشی اجرا کنید، و همچنین برنامهای برای اجرای مداوم آزمونها ایجاد کنید.
مقدمهای بر OmniLab ATS 2.0
OmniLab ATS 2.0 زیرساخت اجرای آزمون زیربنایی را از Trade Federation به OmniLab انتقال میدهد. این تغییر باعث ایجاد یک پسای قویتر و کارآمدتر میشود، درحالیکه میانای کاربر و گردش کار OmniLab ATS 1.0 را حفظ میکند.
مزایای کلیدی OmniLab ATS 2.0:
- زیرساخت مدرنشده: از پلاتفرم OmniLab برای بهبود پایداری و عملکرد استفاده میکند.
- انتقال یکپارچه: هیچ تغییری در واسط کاربر وب یا گردشهای کار اجرای تست اصلی ایجاد نمیشود.
- آماده برای آینده: با زیرساخت آزمایش یکپارچه Google هماهنگ است و امکان پذیرش سریعتر ویژگیهای جدید را فراهم میکند.
OmniLab ATS 2.0 شامل ویژگیهای جدیدی مانند بهروزرسانیهای انبوه طرح آزمایشی، تخصیص پیشرفته دستگاه، و موارد دیگر است. برای اطلاع از بهروزرسانیها، یادداشتهای انتشار را بررسی کنید.
ارتقا دادن به OmniLab ATS 2.0:
برای استفاده از OmniLab ATS 2.0، باید ایستگاهتان را به ساخت R52
یا جدیدتر ارتقا دهید. از پرچم --force_ats_version 2 برای رفتن به Omnilab ATS 2.0 جدید و از پرچم --force_update با فرمان mtt start برای ارتقا به جدیدترین ساخت استفاده کنید:
mtt start --force_ats_version 2 --force_update
درطول دوره انتقال، توصیه میکنیم از برچسب dogfood برای دسترسی به
جدیدترین ساخت پایدار با ویژگیهای OmniLab ATS 2.0 استفاده کنید:
mtt start --force_ats_version 2 --tag dogfood --force_update
قصد داریم در سهماهه سوم ۲۰۲۶، OmniLab ATS 2.0 را به نسخه پیشفرض تبدیل کنیم. قصد داریم OmniLab ATS 1.0 را تا پایان سال ۲۰۲۶ بهتدریج منسوخ کنیم.
برای جزئیات بیشتر درباره بهروزرسانیهای خاص، تفاوتهای شناختهشده، و راهنمای ارتقا، راهنمای ارتقای OmniLab ATS 2.0 را ببینید.
راهاندازی OmniLab ATS
این بخش نحوه نصب و راهاندازی OmniLab ATS را توضیح میدهد.
OmniLab ATS از کد منبع این مکانها استفاده میکند:
- کد منبع OmniLab ATS
- کد منبع TradeFed Cluster
نصب OmniLab ATS
همه الزامات سختافزاری و نرمافزاری را برای مجموعه آزمایشهایی که اجرا میکنید رعایت کنید.
الزامات CTS در source.android.com یافت میشود.
هیچ سختافزار اضافی برای OmniLab ATS لازم نیست، اما توصیه میکنیم از الزامات میزبان CTS بهعنوان نقطه شروع استفاده کنید.
دو روش برای نصب OmniLab ATS وجود دارد:
- برنامه نصبکننده را اجرا کنید.
- آن را بهصورت دستی نصب کنید که نیازمند نصب چندین برنامه و منبع است.
نصب با برنامه نصبکننده
برنامه نصبکننده در Ubuntu 22.04 و نسخههای بالاتر پشتیبانی میشود. نصبکننده همه برنامهها و منابع موردنیاز برای اجرای OmniLab ATS را نصب و پیکربندی میکند.
برای استفاده از برنامه نصب:
برنامه نصبکننده را اجرا کنید:
curl https://storage.googleapis.com/android-mtt.appspot.com/prod/install.sh | bash
برای بررسی نسخه نصبشده OmniLab ATS CLI، دستور
mtt versionرا اجرا کنید.
نصب دستی
نصب Docker
دستورالعملهای نصب Docker Community Edition (CE) را در دستگاه Linux خود دنبال کنید.
مراحل پساز نصب را برای مدیریت Docker بهعنوان کاربر غیرریشه دنبال کنید.
برای اعمال تغییرات اجازه، ممکن است لازم باشد پنجره پایانه را بازراهاندازی کنید یا از سیستم خارج شوید و دوباره به سیستم وارد شوید.
نصب Python 3
OmniLab ATS CLI به Ubuntu نسخه ۲۲.۰۴ یا جدیدتر نیاز دارد. «میانای خط فرمان» با نسخههای Python از ۳.۱۰ تا ۳.۱۳ درستیسنجی میشود.
برای نصب Python 3، این فرمانها را اجرا کنید:
sudo apt-get updatesudo apt install python3 python3-distutils
اگر به نسخهای از Python 3 نیاز دارید که در توزیع استاندارد شما گنجانده نشده است، ابتدا با انجام یکی از کارهای زیر، مخزن Python 3 را اضافه کنید:
این فرمان را اجرا کنید:
sudo add-apt-repository ppa:deadsnakes/ppa
مخزن را از منبع بسازید و نصب کنید.
برای نصب نسخه خاصی از Python 3 (برای مثال، 3.10)، این فرمانها را اجرا کنید:
sudo apt-get updatesudo apt install python3.10 python3.10-distutils
دریافت OmniLab ATS CLI
بسته میانای خط فرمان (CLI) را از اینجا بارگیری کنید.
شروع OmniLab ATS
OmniLab ATS را با فرمان زیر شروع کنید:
mtt start
اولینبار که «میانای کاربری» شروع میشود، ممکن است چند دقیقه طول بکشد تا ظاهر شود. «خط فرمان»
نشانی وب را برای دسترسی به «میانای کاربری» در مرورگر نمایش میدهد. بهطور پیشفرض، نشانی وب
localhost:8000 است. درصورت نیاز، میتوانید درگاه پیشفرض را هنگام راهاندازی با
پرچم --port تغییر دهید.
اگر نسخه جدیدتری دردسترس است، میتوانید به نسخه فعلی بهروزرسانی کنید. میتوانید یادداشتهای انتشار را برای جدیدترین نسخههای پخش بررسی کنید.
برای بهروزرسانی به نسخه کنونی، این دستور را اجرا کنید:
mtt start --force_update
برای متوقف کردن برنامه، این دستور را اجرا کنید:
mtt stop
برای مشاهده فهرست فرمانهای دیگر، از این فرمان استفاده کنید:
mtt --help
پشتیبانگیری و بازیابی پایگاه داده
برای پشتیبانگیری از پایگاه داده OmniLab ATS، برنامه را متوقف کنید و فرمان زیر را اجرا کنید،
که از پایگاه داده فعلی در یک فایل TAR با نام mtt-backup.tar در
دایرکتوری خانه شما پشتیبانگیری میکند:
docker run --rm --mount source=mtt-data,target=/data -v ~:/out ubuntu bash -c "cd /data && tar cvf /out/mtt-backup.tar ."
برای بازیابی، قبلاز شروع برنامه، فرمان زیر را اجرا کنید:
docker run --rm --mount source=mtt-data,target=/data -v ~:/out ubuntu bash -c "cd /data && tar xvf /out/mtt-backup.tar"
برنامه نصب
پساز نصب و اجرای OmniLab ATS برای اولینبار، «دستیار راهاندازی» شما را در چند مرحله راهنمایی میکند تا به شما کمک کند ابزار را برای محیط خود سفارشیسازی کنید. هر تغییری که اینجا ایجاد میکنید را میتوانید بعداً ازطریق صفحه «تنظیمات» دوباره پیکربندی کنید.
بازیابی نسخه پشتیبان پیکربندی
اگر فایل پیکربندی پشتیبانگیریشدهای از میزبان دیگر OmniLab ATS دارید، میتوانید با کلیک کردن روی دکمه بارگذاری فایل، فایل را بارگذاری کنید تا پیکربندیهای اصلاحشده از آن میزبان را کپی کنید.
شکل ۱. درحال بازیابی «پشتیبانگیری پیکربندی».
تنظیم حساب سرویس پیشفرض
میتوانید حساب سرویسی تنظیم کنید که OmniLab ATS بهطور پیشفرض هنگام دسترسی به منابع شما (برای مثال، Google Cloud Storage، Google Drive) از آن استفاده کند. برای اصالتسنجی حساب خدمات خود، روی بارگذاری کلید حساب خدمات کلیک کنید و فایل کلید JSON حساب خدمات خود را انتخاب کنید.
شکل ۲. درحال تنظیم حساب سرویس.
وقتی حساب سرویس با موفقیت اصالتسنجی شد، نشانی ایمیل حساب در گوشه بالا سمت راست صفحه نشان داده میشود. برای تغییر حساب سرویس، روی نام حساب کلیک کنید، حساب پیشفرض فعلی را بردارید، و کلید حساب سرویس جدیدی بارگذاری کنید.
شکل ۳. درحال تغییر حساب سرویس.
وارد کردن مجموعههای پیکربندی
مجموعه پیکربندی بستهای از پیکربندیها برای اجرای مجموعههای آزمایش است، ازجمله کنشهای دستگاه مرتبط و کانالهای ساخت. مجموعههای پیکربندی در باکت Google Cloud Storage (GCS) خاصی میزبانی میشوند. پساز اصالتسنجی کانال ساخت GCS با «حساب Google» خود، فهرستی از همه مجموعههای پیکربندی که برای شما دردسترس است میبینید.
هر مجموعه پیکربندی را که میخواهید به میزبان «ایستگاه آزمایشی» خود اضافه کنید انتخاب کنید و روی وارد کردن موارد انتخابشده کلیک کنید.
شکل ۴. درحال وارد کردن «مجموعه پیکربندی».
شامل تنظیمات Wi-Fi
برخیاز آزمایشهای CTS نیاز دارند دستگاهتان به نقطه اتصال Wi-Fi متصل شود. برای انتخاب شبکه Wi-Fi، WiFi SSID و WiFi PSK اختیاری را وارد کنید.
شکل ۵. تنظیمات نقطه اتصال Wi-Fi.
پساز تکمیل «دستیار راهاندازی»، صفحه با تنظیمات جدید اعمالشده مجدد بار میشود.
متصل کردن دستگاه
برای استفاده از دستگاه برای آزمایش، اشکالزدایی USB باید فعال باشد. برای فعال کردن اشکالزدایی:
دستورالعملهای موجود در فعال کردن گزینههای توسعهدهندگان و عیبیابی را دنبال کنید.
اگر قصد دارید از نسخههای آزمایشی Android که ازقبل با کلیدهای ADB سفارشی بار شدهاند استفاده کنید، فایلهای
.adb_keyسفارشی را در فهرست راهنمای~/.android/قرار دهید.فایلها بهطور خودکار بار میشود و به ADB منتقل میشود تا اشکالزدایی USB را پساز فلش کردن دستگاه برای دستگاههای دارای آن ساختارها بهطور خودکار فعال کند.
مراجعه کنید.دستگاه را بااستفاده از USB به ماشین میزبان متصل کنید.
دستگاه ظرف یک دقیقه پساز بازآوری کردن میانای وب در برگه «دستگاههای OmniLab ATS» نشان داده میشود. همچنین میتوانید وضعیت دستگاهها را در این برگه مشاهده کنید.
شکل ۶. درحال متصل کردن دستگاه.
وضعیتهای مختلف دستگاه عبارتاند از:
- دردسترس - دستگاه متصل است و آماده اجرای آزمایش است.
- اختصاصیافته - دستگاه متصل است و درحال اجرای آزمایش است. هر دستگاه در هر زمان فقط میتواند یک آزمایش اجرا کند، بنابراین دستگاه باید آزمایش فعلی خود را قبلاز اجرای آزمایش جدید تکمیل کند.
اجرای آزمایش
انتخاب آزمایش
OmniLab ATS با مجموعهای از پیکربندیهای CTS ازپیش دستهبندیشده ارائه میشود. برای اجرای یکی از این آزمایشها، به برگه «مجموعههای آزمایش» بروید و روی اجرای آزمایش برای آزمایش انتخابشده کلیک کنید.
شکل ۷. درحال انتخاب آزمایش.
برای ویرایش یا افزودن آزمایشهای جدید، افزودن آزمایشها را ببینید.
پیکربندی اجرای آزمایشی
پارامترهای مورد استفاده برای این اجرای آزمایشی خاص را ویرایش کنید. اکثر پارامترها با مقادیر تعریفشده در پیکربندی آزمایش انتخابشده ازقبل تکمیل شدهاند.
این مرحله را میتوانید بااستفاده از مقادیر پیشفرض تکمیل کنید، اما میتوانید هریک از پارامترها، مثل تلاش مجدد بیشینه و فرمان را متناسب با نیازهایتان تغییر دهید.
شکل ۸. درحال پیکربندی آزمایش.
پارامترهای اجرای آزمایشی عبارتاند از:
- نام - نام مجموعه آزمایشی که میخواهید اجرا کنید.
- تعداد اجرا - تعداد دفعاتی که این اجرای آزمایشی باید هنگام زمانبندی اجرا شود. اجراهای آزمایشی بااستفاده از Trade Federation زمانبندی میشوند که درصورت وجود ظرفیت، تا ۲۰ اجرای آزمایشی را بهطور موازی اجرا میکند.
- حداکثر تلاش مجدد - حداکثر تعداد دفعاتی که درصورت ناموفق بودن حداقل یک آزمایش، اجرای آزمایش مجدداً امتحان میشود. این معمولاً روی ۴ تا ۶ تلاش مجدد برای اجرای کامل CTS تنظیم میشود تا آزمایشهای نامطمئن را مدیریت کند.
- زمان انتظار در صف - اگر اجرای آزمایشی برای مدت طولانی در وضعیت در صف باقی بماند، بهطور خودکار لغو میشود. در اینجا، مدت زمان انتظار قبلاز لغو را مشخص کنید. پیشفرض ۲۴ ساعت است.
فرمان - فرمان اجرای مجموعه آزمایشی. میتوانید آرگومانهای خط فرمان بیشتری را اینجا وارد کنید. برای مثال، یک واحد خاص را در CTS 8.1 با این دستور اجرا کنید:
cts-suite -m ShortModuleNameRetry Command - فرمان برای امتحان مجدد مجموعه آزمایشی. در اینجا میتوانید آرگومانهای خط فرمان اضافی اضافه کنید. برای مثال، برای تلاش مجدد فقط برای یک واحد خاص در CTS 8.1، از این استفاده کنید:
cts --retry 0 -m ShortModuleNameاستدلالهای تلاش مجدد ممکن است با استدلالهای دردسترس در فرمان اولیه متفاوت باشد، بنابراین پارامترهای پشتیبانیشده را در سایت رسمی مجموعه آزمایش انتخابی بررسی کنید.
اجرای آزمایشی قبلی - اگر میخواهید اجرای آزمایشی قبلی را دوباره اجرا کنید:
محلی - اگر اجرا در میزبان فعلی شروع شده است، شناسه اجرای آزمایشی را که هنگام مشاهده جزئیات اجرای آزمایشی دیده میشود وارد کنید.
شکل ۹. اجرای آزمایش قبلی محلی.
از دور - اگر اجرا در میزبان دیگری شروع شده است، فایل نتایج آزمایش را با انتخاب از دور، کلیک کردن روی بارگذاری فایل نتایج آزمایش، و انتخاب فایلی از فضای ذخیرهسازی محلی خود بارگذاری کنید.
شکل ۱۰. اجرای آزمایش قبلی از دور.
دستگاههای خاص
روی چارگوشهای انتخاب کلیک کنید تا دستگاههای موردنظر را برای اختصاص دادن به اجرای مجموعه آزمایشی انتخاب کنید. تعداد تکهها باید بهطور خودکار تغییر کند تا با تعداد دستگاههای انتخابشده مطابقت داشته باشد.
شکل ۱۱. درحال انتخاب دستگاهها.
برای انتخاب دستگاهها براساس مشخصههایی غیراز شماره سریال دستگاه، میتوانید بهصورت دستی «مشخصات دستگاه» را وارد کنید. برای مثال، برای انتخاب ۳ دستگاه که نام محصول آنها «bramble» است، موارد زیر را وارد کنید:
product:bramble;product:bramble;product:bramble
مشخصههای پشتیبانیشده عبارتاند از:
- build_id
- device_serial
- device_type
- نام میزبان
- محصول
- product_variant
- sim_state
همه دستگاههای انتخابشده باید در وضعیت دردسترس باشند تا اجرای آزمایشی انجام شود، و وقتی اجرای آزمایشی انجام میشود، همه آنها به وضعیت اختصاصیافته تغییر میکنند. اجرای آزمایشی در حالت در صف قرار دارد تا دستگاهها دردسترس قرار گیرند.
افزودن کنشهای دستگاه
کنشهای دستگاه دستورات اجراییای هستند که میتوانند قبلاز هر اجرای آزمایشی اجرا شوند. برخیاز کنشهای دستگاه ازقبل پیکربندی شدهاند، مثل چشمک زدن و بازراهاندازی. برای ایجاد کنشهای دستگاه جدید، به ایجاد کنش دستگاه جدید مراجعه کنید.
شکل ۱۲. کنشهای دستگاه.
برای افزودن کنش دستگاه به اجرای آزمایشی، روی افزودن کنش جدید کلیک کنید، چارگوشهای انتخاب کنشهای موردنظر برای افزودن را انتخاب کنید، و روی افزودن کنش(ها) کلیک کنید. کنشهای دستگاه بهصورت متوالی انجام میشود. میتوانید با کشیدن کنشها، ترتیب آنها را تغییر دهید.
شکل ۱۳. درحال تغییر ترتیب کنشها.
تنظیم منابع آزمایش
منابع آزمایشی فایلهای موردنیاز برای اجرای آزمایشی هستند. برای مثال، اجرای CTS به فایل android-cts*.zip نیاز دارد و برای فلش کردن دستگاه باید تصویر ساخت را ارائه دهید.
نشانی وب بارگیری برای فایل zip مجموعه آزمون باید بهطور پیشفرض به پیوندهای Google Drive ارائهشده به شرکا تنظیم شود. با کلیک کردن روی مرور میتوانید فایل دیگری را انتخاب کنید. در پنجره بالاپر، میتوانید پیوند بارگیری فایل وارد کنید، از فایل کانال ساختار اصیل استفاده کنید، یا فایلی را برای استفاده از فضای ذخیرهسازی محلی بارگذاری کنید.
شکل ۱۴. منابع آزمایشی.
در زیر پنجره بالاپر برای انتخاب منبع آزمایشی ازطریق نشانی وب آمده است. میتوانید پیوند نشانی وب بارگیری را وارد کنید و برای تأیید انتخاب، روی دکمه انتخاب کلیک کنید.
شکل ۱۵. انتخابگر منبع آزمایشی - نشانی وب.
اگر منابع را در Google Drive، Google Cloud Storage (GCS)، یا کانالهای دیگر بارگذاری کردهاید، میتوانید به برگه کانال موردنظر بروید و منابع را در آنجا انتخاب کنید. در اینجا نمونهای از انتخاب منبع از Google Drive آورده شده است.
شکل ۱۶. انتخابگر منبع آزمایشی - Google Drive.
علاوهبر انتخاب فایلها، نویسههای عام نیز در فیلد نام فایل پشتیبانی میشوند. مستندات را میتوانید اینجا پیدا کنید.
شکل ۱۷. انتخابگر منبع آزمایشی - پشتیبانی از الگوی نویسه جانشین.
همچنین میتوانید فایلی را از فضای ذخیرهسازی فایل محلی OmniLab ATS انتخاب کنید. میتوانید فایلها را در این فضای ذخیرهسازی بارگذاری کنید، یا مستقیماً از فایلها و دایرکتوریهای محلی استفاده کنید.
شکل ۱۸. «انتخابگر منبع آزمایشی» - فروشگاه فایل محلی.
افزودن پیکربندیهای اجرای مجدد
میتوانید بازپخشهایی را زمانبندی کنید که پساز تکمیل اجرای اصلی شروع میشوند و نتایج آن را بار میکنند، اما میتوانند از دستگاه، کنشها، یا منابع مختلف استفاده کنند.
شکل ۱۹. درحال افزودن پیکربندیهای اجرای مجدد.
شروع اجرای آزمایشی
پساز وارد کردن اطلاعات موردنیاز برای اجرای آزمایشی، روی شروع اجرای آزمایشی کلیک کنید. اگر همه اطلاعات معتبر باشد، اجرای آزمایشی شروع میشود و به صفحهای هدایت میشوید تا جزئیات و پیشرفت اجرای آزمایشی را مشاهده کنید.
شکل ۲۰. درحال شروع کردن اجرای آزمایشی.
ایجاد طرح آزمایش
از طرحهای آزمایش برای ایجاد اجراهای آزمایش در یک برنامه زمانی دورهای استفاده میشود. برای مثال، اجرای CTS 9.0 هر روز ساعت ۵ بعدازظهر. برای ایجاد طرح آزمایش جدید، روی ایجاد طرح آزمایش جدید کلیک کنید.
شکل ۲۱. درحال ایجاد طرح آزمایش.
پیکربندی طرح آزمایش
نام طرح آزمایش و هر برچسبی را که میخواهید اضافه کنید وارد کنید. سپس برنامه زمانی موردنظرتان را برای استفاده انتخاب کنید.
- دستی - طرح آزمایشی فقط زمانی اجراهای آزمایشی ایجاد میکند که کاربر در صفحه فهرست طرح آزمایشی روی اجرای طرح آزمایشی کلیک کند.
- دورهای - طرح آزمایشی بهطور خودکار اجرای آزمایش را طبق زمانبندی دورهای انتخابشده زمانبندی میکند. برای مثال، زمانبندی اجرای آزمایشی هر روز ساعت ۵:۰۰ ب.ظ.
- سفارشی - طرح آزمایش بهطور خودکار اجراهای آزمایش را براساس
عبارت cron واردشده زمانبندی میکند. برای مثال،
برای زمانبندی اجرای آزمایشی هر روز ساعت ۵:۰۰ بعدازظهر، عبارت کرون این است:
0 17 * * *.
شکل ۲۲. درحال پیکربندی طرح آزمایش.
افزودن مجموعه آزمون
با کلیک روی + افزودن پیکربندی اجرای آزمایش، مجموعههای آزمایشی را که میخواهید طرح آزمایش زمانبندی کند اضافه کنید. مجموعه آزمایشی را از منو کرکرهای نام انتخاب کنید و روی مرحله بعدی کلیک کنید. سپس دستگاههایی را که میخواهید آزمایش روی آنها اجرا شود انتخاب کنید و روی افزودن پیکربندی کلیک کنید. میتوانید چندین پیکربندی برای هر طرح آزمایش اضافه کنید.
شکل ۲۳. درحال پیکربندی آزمایش.
افزودن کنشهای دستگاه
کنشهای دستگاهی را که میخواهید قبلاز اجرای هر آزمایش اجرا شود اضافه کنید. برای جزئیات بیشتر، افزودن کنشهای دستگاه را ببینید.
شکل ۲۴. درحال افزودن کنشهای دستگاه.
تنظیم منابع آزمایش
افزودن منابع آزمایشی به طرحهای آزمایشی همانند افزودن آنها به اجراهای آزمایشی مجزا است. برای جزئیات بیشتر، تنظیم منابع آزمایشی را ببینید.
شکل ۲۵. درحال تنظیم منابع آزمایشی.
مشاهده اجراهای آزمایشی
فهرست اجرای آزمایشی
فهرست اجراهای آزمایشی زمانبندیشده را در صفحه «اجراهای آزمایشی» مشاهده کنید. برای دیدن جزئیات بیشتر درباره اجرای آزمایشی، روی مشاهده کلیک کنید.
همچنین میتوانید با وارد کردن رشتهای در نوار فیلتر و فشار دادن کلید Enter، فهرست را فیلتر کنید. میتوانید با جدا کردن فیلترها با ویرگول، از چند فیلتر استفاده کنید. فیلتر همه ردیفهایی را که حاوی نوشتار دقیق (بدون مطابقت رشته فرعی) در هر ستونی هستند، بهاستثنای وضعیت و ایجادشده، برمیگرداند.
فیلتر خالی همه ردیفها را برمیگرداند. درحالحاضر راهی برای فیلتر کردن ردیفهای دارای مقادیر خالی وجود ندارد.
شکل ۲۶. فهرست اجرای آزمایشی.
جزئیات اجرای آزمایشی
در اینجا میتوانید جزئیات اجرای آزمایشی را مشاهده کنید، ازجمله وضعیت، گزارشهای رویداد، و نتایج.
شکل ۲۷. جزئیات اجرای آزمایشی.
وضعیت اجرای آزمایشی
پیشرفت اجرای آزمایشی در بخش «وضعیت» نشان داده میشود. اگر پیام مرتبطی وجود داشته باشد، مانند پیشرفت بارگیری، دلیل لغو، یا پیام خطا، در اینجا نیز نمایش داده میشود.
شکل ۲۸. وضعیت اجرای آزمایشی.
وضعیتهای اجرای آزمایشی عبارتند از:
- معلقه - منابع ضروری درحال بارگیری است.
- در صف - وقتی دستگاهی دردسترس قرار بگیرد، آزمایش آماده اجرا است.
- درحال اجرا - آزمایش روی دستگاه اختصاصیافته درحال اجرا است.
- تکمیلشده - آزمایش تکمیل شده است و نتایج آن گزارش شده است.
- لغوشده - کاربر آزمایش را لغو کرد یا آزمایش درحین تلاش برای یافتن دستگاههای دردسترس بهپایان رسید.
- خطا - خطایی رخ داد که مانع اجرای آزمایش شد.
لغو کردن اجرای آزمایشی
اگر اجرای آزمایشی تکمیل نشده است، میتوانید با کلیک روی لغو و سپس کلیک روی بله در کادر گفتگوی تأیید، آن را لغو کنید. اگر اجرای آزمایشی بیشتر از مقدار فیلد queue_timeout_seconds در وضعیت در صف باقی بماند، بهطور خودکار لغو میشود. لغو اجرای آزمایشی درحالت درحال اجرا ممکن است چند دقیقه طول بکشد تا اعمال شود.
شکل ۲۹. درحال لغو کردن اجرای آزمایشی.
نتایج اجرای آزمایشی
پساز پایان اجرای آزمایشی، نتایج جمعآوری و نمایش داده میشوند. با کلیک روی پیکان هر اجرا میتوانید جزئیات بیشتری را مشاهده کنید. برای دیدن دادههای جلسه جمعآوریشده آزمایش، مثل test_result.xml و
test_result_failures.html، روی مشاهده فایلهای
برونداد کلیک کنید.
شکل ۳۰. نتایج اجرای آزمایشی.
میتوانید گزارشهای میزبان زنده و Tradefed را در برگه «گزارشها» مشاهده کنید.
شکل ۳۱. زبانه گزارشها.
نتایج مربوط به هریک از واحدها در برگه «نتایج آزمون» قرار دارد.
شکل ۳۲. برگه «نتایج آزمایش».
با کلیک کردن روی باز کردن در برگه «منابع آزمایشی»، میتوانید فایلهای استفادهشده بهعنوان منابع آزمایشی را بارگیری کنید.
شکل ۳۳. زبانه «منابع آزمایشی».
برای دیدن جزئیات اجرای آزمایشی، مثل create_time، به برگه «پیکربندی» بروید.
شکل ۳۴. برگه پیکربندی.
ویژگیهای پیشرفته
مدیریت فایلهای پیکربندی
OmniLab ATS از فایلهای پیکربندی نوشتهشده در YAML برای بار کردن گزینههای ازپیش تعریفشده مثل آزمایشها، کانالهای ساخت، و کنشهای دستگاه استفاده میکند. در اینجا نمونهای از فایل پیکربندی آورده شده است:
// example_file.yaml
tests:
- id : android.cts.9_0.arm
name: CTS 9.0 (ARM)
test_resource_defs:
- name: android-cts.zip
default_download_url: https://dl.google.com/dl/android/cts/android-cts-9.0_r7-linux_x86-arm.zip
test_resource_type: TEST_PACKAGE
command: cts
env_vars:
- name: TF_PATH
value: ${TF_WORK_DIR}/android-cts/tools:${TF_WORK_DIR}/android-cts/testcases
- name: LD_LIBRARY_PATH
value: ${TF_WORK_DIR}/android-cts/lib:${TF_WORK_DIR}/android-cts/lib64
setup_scripts:
output_file_patterns:
- android-cts/logs/latest/.*
- android-cts/results/latest/.*\.html
- android-cts/results/latest/compatibility_result\..*
- android-cts/results/latest/logo.png
- android-cts/results/latest/test_result.xml
result_file: test_result.xml
java_properties:
- name: CTS_ROOT
value: ${TF_WORK_DIR}
context_file_dir: android-cts/results/
context_file_pattern: '[\d_\.]+\.zip'
retry_command_line: retry --retry 0
runner_sharding_args: --shard-count ${TF_SHARD_COUNT}
build_channels:
- id: google_drive
name: Google Drive
provider_name: Google Drive
device_actions:
- id: flash
name: Flash
test_resource_defs:
- name: bootloader.img
test_resource_type: DEVICE_IMAGE
- name: radio.img
test_resource_type: DEVICE_IMAGE
- name: img.zip
test_resource_type: DEVICE_IMAGE
tradefed_target_preparers:
- class_name: com.android.tradefed.targetprep.RunHostCommandTargetPreparer
option_values:
- name: work-dir
values:
- ${TF_WORK_DIR}
- name: host-setup-command
values:
- adb -s $SERIAL reboot-bootloader
- fastboot -s $SERIAL flash bootloader bootloader.img
- fastboot -s $SERIAL flash radio radio.img
- fastboot -s $SERIAL reboot-bootloader
- fastboot -s $SERIAL -w update img.zip
- adb -s $SERIAL wait-for-device
- name: host-cmd-timeout
values:
- 10m
وقتی نمونه OmniLab ATS خودتان را راهاندازی میکنید، میتوانید پیکربندیتان را با کاربران دیگر همرسانی کنید و آن را بهصورت فایل صادر کنید. برای انجام این کار، به صفحه «تنظیمات» بروید و در بالا سمت چپ روی صادر کردن کلیک کنید.
شکل ۳۵. مدیریت فایل پیکربندی.
پساز بارگیری فایل پیکربندی، فایل را با کاربران دیگر همرسانی کنید. آنها میتوانند با کلیک کردن روی وارد کردن و انتخاب فایل پیکربندی، فایل پیکربندی را به نمونه OmniLab ATS خود اضافه کنند.
ایجاد کنش دستگاه جدید
از کنشهای دستگاه برای خودکارسازی فرایند راهاندازی دستگاه استفاده میشود. کنشها عبارتاند از دستورگانهایی که در هر دستگاهی که آزمایش در آن اجرا میشود قبلاز هر اجرای آزمایش اجرا میشوند، ازجمله قبلاز تلاشهای مجدد. برای مشاهده فهرست کنشهای دستگاه دردسترس، به صفحه «تنظیمات» بروید و روی برگه «کنشهای دستگاه» کلیک کنید. چندین کنش دستگاه ازقبل پیکربندی شده است، مثل بازراهاندازی و چشمک زدن.
شکل ۳۶. برگه «کنشهای دستگاه».
افزودن کنش دستگاه جدید
روی کنش دستگاه جدید کلیک کنید.
شکل ۳۷. دکمه کنش دستگاه جدید.
نام و شرحی وارد کنید.
شکل ۳۸. نام کنش دستگاه.
روی افزودن آمادهکننده هدف کلیک کنید.
نام کامل کلاس Trade Federation Target Preparer را وارد کنید، برای نمونه،
com.android.tradefed.targetprep.RunHostCommandTargetPreparer.
شکل ۳۹. درحال افزودن آمادهکننده هدف.
فهرست آمادهسازهای هدف دردسترس را میتوانید در com.android.tradefed.targetprep مرجع پیدا کنید.
شکل ۴۰. فهرست «آمادهکننده هدف».
هر گزینهای را برای استفاده با آمادهساز هدف اضافه کنید. برای مشاهده گزینههای دردسترس، targetprep را برای کد منبع هر آمادهساز هدف در AOSP بررسی کنید:
شکل ۴۱. نمونه گزینه کنش.
برای افزودن گزینه، روی افزودن گزینه آمادهکننده هدف کلیک کنید و مقادیر موردنیاز را وارد کنید.
شکل ۴۲. نمونه فرمان کنش.
منابع آزمایشی موردنیاز برای اجرای کنش دستگاه را تعریف کنید، برای مثال، تصاویر ساخت برای چشمک زدن. برای افزودن تعریف منبع، روی افزودن منبع آزمایشی کلیک کنید و فیلدهای الزامی را تکمیل کنید. اگر میدانید فایلهایتان کجا قرار دارند، میتوانید با کلیک کردن روی مرور کردن، نشانی وب بارگیری پیشفرضی ارائه دهید. اگر آمادهسازهای هدف، دایرکتوری را بهعنوان منبع آزمایشی میپذیرند، از حالت فشرده خارج کردن را انتخاب کنید. سپس فهرست راهنمای مقصد نسبی را در زیر فهرست راهنمای کاری موقت و نامهای فایل را برای فشردهسازی مشخص کنید. اگر نام فایلی ارائه نشود، همه فایلها از منبع آزمایشی فشردهسازی میشوند.
شکل ۴۳. منابع آزمایشی کنش.
روی بهروزرسانی کلیک کنید.
شکل ۴۴. کنش ذخیره تغییرات.
مدیریت آزمایشها
ویرایش کردن آزمایش
برای ویرایش کردن آزمایش ذخیرهشده، به صفحه «آزمایشها» بروید و روی ویرایش در ردیف آزمایشی که میخواهید تغییر دهید کلیک کنید. پساز تغییر پیکربندی آزمایش، روی بهروزرسانی کلیک کنید.
شکل ۴۵. درحال ویرایش آزمون.
افزودن آزمایش جدید
برای افزودن آزمون جدید، به صفحه «آزمونها» بروید و روی ایجاد آزمون جدید کلیک کنید. اطلاعات مناسب را وارد کنید و روی ایجاد کلیک کنید.
شکل ۴۶. درحال ایجاد آزمون.
شکل ۴۷. درحال کپی کردن آزمون.
صادر کردن پیکربندیهای میزبان
پساز پیکربندی میزبان، میتوانید پیکربندیهای میزبان را به فایل صادر کنید. میتوانید این فایل را در میزبانهای دیگر بارگذاری کنید تا پیکربندیهای ذخیرهشده را کپی کنید.
برای صادر کردن پیکربندیهای میزبان، به صفحه «تنظیمات» بروید و در گوشه بالا سمت چپ روی صادر کردن کلیک کنید.
شکل ۴۸. درحال صادر کردن پیکربندی میزبان.
برای وارد کردن فایل پیکربندی میزبان، به صفحه «تنظیمات» بروید و در گوشه بالا سمت چپ روی وارد کردن کلیک کنید.
شکل ۴۹. درحال وارد کردن پیکربندی میزبان.
استفاده از فایلها و دایرکتوریهای محلی
از نسخه R11، فایلهای موجود در فهرست راهنمای $HOME/.ats_storage بهطور خودکار در OmniLab ATS دردسترس هستند. فایلی را در آن فهرست راهنما کپی یا منتقل کنید، سپس میتوانید آن را از برگه فایل محلی هنگام زمانبندی اجرای آزمایشی انتخاب کنید.
cp /path/to/file $HOME/.ats_storage
شکل ۵۰. درحال انتخاب فایل از دایرکتوری $HOME/.ats_storage.
میتوانید فهرستهای راهنمای بیشتری را با پرچم --mount_local_path در فضای ذخیرهسازی فایل محلی سوار کنید.
mtt start --mount_local_path=/path/to/dir1 --mount_local_path=/path/to/dir2:renamed_dir2
شکل ۵۱. دایرکتوریهای اضافی که در فضای ذخیرهسازی فایل محلی سوار شدهاند.
فعال کردن حالت چند میزبان
با حالت «چند میزبان»، کاربران میتوانند از یک میزبان کنترلکننده ATS برای مدیریت دستگاهها و آزمایشها در چندین میزبان کارگر ATS استفاده کنند.
شکل ۵۲. معماری حالت چندمیزبانی.
برای شروع کنترلکننده ATS، از فرمان زیر استفاده کنید:
mtt start --operation_mode=ON_PREMISEبررسی کنید کنترلکننده در
http://${CONTROLLER_HOSTNAME}:8000قابلدسترسی باشد.برای شروع کارگران، از فرمان زیر استفاده کنید:
mtt start --control_server_url=http://CONTROLLER_HOSTNAME:8000 --operation_mode=ON_PREMISE
اگر شبکهتان به میزبانها اجازه نمیدهد با یکدیگر ارتباط برقرار کنند، باید دستورالعملهای راهاندازی پیشرفتهتر زیر را در ATS worker دنبال کنید.
دو میزبان را بااستفاده از تونلهای SSH متصل کنید. درگاههای سرور اصلی و فایل را انتخاب کنید، برای مثال، ۹۰۰۰ و ۹۰۰۶.
ssh -L ATS_PORT:localhost:8000 -L FS_PORT:localhost:8006 CONTROLLER_HOSTNAMEATS را پیکربندی و شروع کنید.
DOCKER_GATEWAY_IP_ADDRESS=$(ip -4 addr show dev docker0 | grep -Eo 'inet [.0-9]+/' | grep -Eo '[.0-9]+')socat tcp-listen:ATS_PORT,bind="${DOCKER_GATEWAY_IP_ADDRESS}",reuseaddr,fork tcp-connect:127.0.0.1:ATS_PORT &socat tcp-listen:FS_PORT,bind="${DOCKER_GATEWAY_IP_ADDRESS}",reuseaddr,fork tcp-connect:127.0.0.1:FS_PORT &mtt start --control_server_url=http://${DOCKER_GATEWAY_IP_ADDRESS}:ATS_PORT \ --control_file_server_url=http://${DOCKER_GATEWAY_IP_ADDRESS}:FS_PORT \ --operation_mode=ON_PREMISE
پاککننده فایل
پاککننده فایل یک کار cron است که هر ساعت اجرا میشود تا فایلها را براساس پیکربندیهای تعریفشده توسط کاربر پاک کند. ATS دو پیکربندی پیشفرض برای بایگانی کردن نتایج اجرای آزمایش و حذف فایلهای موقت دارد. این راهنما توضیح میدهد که چگونه خطمشیها و پیکربندیها را سفارشیسازی کنید تا فایلهایتان را بهطور مؤثر مدیریت کنید.
خطمشیها
خطمشی عملیاتی را که باید روی فایلها یا دایرکتوریها انجام شود و معیارهای انتخاب هدفها را تعریف میکند. عملیات دردسترس در جدول نشان داده میشود:
| نوع عملیات | پارامترها |
|---|---|
ARCHIVE | remove_file: اگر true، فایل را پساز بایگانی کردن بردارید. |
DELETE |
معیارها براساس مشخصههای فایل و اطلاعات سیستم است. معیارهای دردسترس در جدول نشان داده میشود:
| نوع معیار | شرح | پارامترها |
|---|---|---|
LAST_MODIFIED_TIME | فایلها را براساس تاریخ و زمان آخرین اصلاح فیلتر کنید. | ttl: انواع مختلف عبارتهای زمانی پشتیبانی میشود، برای مثال، 10m، 2h، 7 days، 4w. برای اطلاع از قالبهای پشتیبانیشده، pytimeparse را ببینید. |
LAST_ACCESS_TIME | فایلها را براساس تاریخ و زمان آخرین دسترسی فیلتر کنید. | برابر با LAST_MODIFIED_TIME. |
NAME_MATCH | فایلها را براساس نامشان بااستفاده از عبارت باقاعده فیلتر کنید. | pattern: عبارت باقاعده، برای مثال، [a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}\.zip برای مطابقت دادن فایلهای فشرده نتیجه. |
SYSTEM_AVAILABLE_SPACE | کنشها را براساس فضای دردسترس در سیستم راهاندازی کنید. | threshold: وقتی فضای دردسترس به زیر آستانه میرسد، کنش را راهاندازی کنید، برای مثال، 200(B)، 200KB، 200MB، 200GB، 2TB. |
شکل ۵۳. خطمشی جدیدی برای پاکسازی فایل اضافه کنید.
پیکربندیها
پیکربندی یک یا چند خطمشی را با دایرکتوریهای خاص ترکیب میکند. فایلها و دایرکتوریهای موجود در دایرکتوریهای مشخصشده براساس خطمشیهای تعریفشده پردازش میشوند. خطمشیها بهترتیبی که در پیکربندی نشان داده شدهاند اعمال میشوند.
همه دایرکتوریهای هدف باید در دایرکتوری /data قرار داشته باشند. اگر پیکربندی شما
دایرکتوری هدف را logs مشخص کرده باشد،
بهصورت /data/logs تفسیر میشود.
شکل ۵۴. پیکربندی پاککننده فایل را ویرایش کنید.
بازنشانی
با کلیک کردن روی بازنشانی تنظیمات، پیکربندی پاککننده فایل به حالت پیشفرض برمیگردد. این کنش همه عناصر سفارشی را پاک میکند.
شکل ۵۵. تنظیمات پاککننده فایل را بازنشانی کنید.
پشتیبانی
گزارش اشکال
همیاری شما در OmniLab ATS به بهبود توسعه این ابزار کمک میکند و به بازخورد شما نیاز داریم! برای جزئیات مربوط به جدیدترین نسخه پخش، یادداشتهای انتشار OmniLab ATS را ببینید. برای گزارش کردن اشکالها یا ارائه پیشنهاد، گزارش اشکال ثبت کنید. شرکا باید اشکالات یا پیشنهادات را بااستفاده از کانالهای شریک خود گزارش دهند.