OmniLab ATS ابزار آزمایشی است که توسعهدهندگان Android و مهندسان آزمایش میتوانند از آن برای بهکارگیری میانای کاربر برای اجرای مجموعههای آزمایشی استاندارد Android، مانند مجموعه آزمایش سازگاری Android (CTS)، استفاده کنند. این ابزار بهعنوان میانای وب برای چارچوبهای آزمایشی مختلف، مانند Trade Federation (TF) و Google Mobly عمل میکند و به شما امکان میدهد CTS و آزمایشهای چنددستگاهی را روی مجموعهای از دستگاههای آزمایشی با حداقل راهاندازی اجرا کنید، و همچنین برنامهای برای اجرای مداوم آزمایشها تنظیم کنید.
مقدمهای بر 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
mtt versionرا اجرا کنید تا نسخه نصبشده OmniLab ATS CLI را بررسی کنید.
نصب دستی
نصب Docker
دستورالعملهای نصب Docker Community Edition (CE) را در دستگاه Linux خود دنبال کنید.
مراحل پساز نصب را برای مدیریت Docker بهعنوان کاربر غیرریشه دنبال کنید.
ممکن است لازم باشد پنجره پایانه را بازراهاندازی کنید یا از سیستم خارج شوید و دوباره به سیستم وارد شوید تا تغییرات اجازه اعمال شود.
نصب Python 3
OmniLab ATS CLI به Ubuntu نسخه ۲۲.۰۴ یا جدیدتر نیاز دارد. رابط خط فرمان با نسخههای ۳.۱۰ تا ۳.۱۳ پایتون درستیسنجی شده است.
برای نصب 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 ShortModuleNameفرمان امتحان مجدد - فرمان امتحان مجدد مجموعه آزمون. میتوانید آرگومانهای خط فرمان اضافی را در اینجا اضافه کنید. برای مثال، برای امتحان مجدد فقط یک واحد خاص در 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 دادهشده به شرکا باشد. با کلیک کردن روی مرور میتوانید فایل دیگری را انتخاب کنید. در پنجره بالاپر، میتوانید پیوند بارگیری فایل را وارد کنید، از فایلی از کانال ساخت اصالتسنجیشده استفاده کنید، یا فایلی را برای استفاده از فضای ذخیرهسازی محلی بارگذاری کنید.
شکل ۱۴. منابع آزمایشی.
در زیر، پنجره بالاپر برای انتخاب منبع آزمایشی ازطریق نشانی وب نشان داده شده است. میتوانید پیوند نشانی وب بارگیری را وارد کنید و برای تأیید انتخاب، روی دکمه انتخاب کلیک کنید.
شکل ۱۵. Test Resource Selector - Web URL.
اگر منابعی را در Google Drive، Google Cloud Storage (GCS)، یا کانالهای دیگر بارگذاری کردهاید، میتوانید به برگه کانال خاصی بروید و منابع را در آنجا انتخاب کنید. در اینجا مثالی برای انتخاب منبع از Google Drive آورده شده است.
شکل ۱۶. انتخابگر منبع آزمایشی - Google Drive.
علاوهبر انتخاب فایلها، از نویسههای عام نیز در فیلد نام فایل پشتیبانی میشود. اسناد را میتوانید اینجا پیدا کنید.
شکل ۱۷. انتخابگر منبع آزمایشی - پشتیبانی از الگوی نویسه جانشین.
همچنین میتوانید فایلی را از فضای ذخیرهسازی فایل محلی OmniLab ATS انتخاب کنید. میتوانید فایلها را در این فضای ذخیرهسازی بارگذاری کنید، یا مستقیماً از فایلها و دایرکتوریهای محلی استفاده کنید.
شکل ۱۸. Test Resource Selector - Local file store.
افزودن پیکربندیهای اجرای مجدد
میتوانید اجرای مجدد را طوری زمانبندی کنید که پساز تکمیل اجرای اصلی شروع شود و نتایج آن را بار کند، اما میتواند از دستگاه، کنشها، یا منابع متفاوتی استفاده کند.
شکل ۱۹. درحال افزودن پیکربندیهای اجرای مجدد.
شروع کردن آزمایش
پساز وارد کردن اطلاعات لازم برای اجرای آزمایشی، روی شروع اجرای آزمایشی کلیک کنید. اگر همه اطلاعات معتبر باشد، اجرای آزمایشی شروع میشود و به صفحهای هدایت میشوید که جزئیات و پیشرفت اجرای آزمایشی را نشان میدهد.
شکل ۲۰. درحال شروع اجرای آزمایشی.
ایجاد طرح آزمون
از طرحهای آزمایشی برای ایجاد اجراهای آزمایشی در زمانبندی دورهای استفاده میشود. برای مثال، اجرای CTS 9.0 هر روز ساعت ۵ بعدازظهر. برای ایجاد طرح آزمایشی جدید، روی ایجاد طرح آزمایشی جدید کلیک کنید.
شکل ۲۱. درحال ایجاد طرح آزمایشی.
پیکربندی طرح آزمایش
نام طرح آزمایشی و هر برچسبی را که میخواهید اضافه کنید وارد کنید. سپس زمانبندی موردنظر را برای استفاده انتخاب کنید.
- دستی - طرح آزمایشی فقط زمانی اجرای آزمایشی ایجاد میکند که کاربر روی اجرای طرح آزمایشی در صفحه فهرست طرح آزمایشی کلیک کند.
- دورهای - طرح آزمایشی بهطور خودکار اجرای آزمایش را در زمانبندی دورهای انتخابشده زمانبندی میکند. برای مثال، زمانبندی اجرای آزمایشی هر روز در ساعت ۵:۰۰ ب.ظ.
- سفارشی - طرح آزمایشی بهطور خودکار اجرای آزمایش را براساس
عبارت cron واردشده زمانبندی میکند. برای مثال،
برای زمانبندی اجرای آزمایشی هر روز ساعت ۵:۰۰ ب.ظ.، عبارت 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 را وارد کنید، برای مثال،
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_HOSTNAME«سامانه کنترل قطار» را پیکربندی و راهاندازی کنید.
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 job است که هر ساعت اجرا میشود تا فایلها را براساس پیکربندیهای تعریفشده توسط کاربر پاک کند. 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 برای مطابقت دادن فایلهای zip نتیجه. |
SYSTEM_AVAILABLE_SPACE | کنشها را براساس فضای دردسترس در سیستم راهاندازی کنید. | threshold: وقتی فضای دردسترس از آستانه کمتر میشود، کنش را راهاندازی کنید، برای مثال، 200(B)، 200KB، 200MB، 200GB، 2TB. |
شکل ۵۳. خطمشی جدیدی برای پاککننده فایل اضافه کنید.
پیکربندیها
پیکربندی یک یا چند خطمشی را با دایرکتوریهای خاص ترکیب میکند. فایلها و دایرکتوریهای موجود در دایرکتوریهای مشخصشده براساس خطمشیهای تعریفشده پردازش میشوند. خطمشیها بهترتیبی که در پیکربندی نشان داده شدهاند اعمال میشوند.
همه دایرکتوریهای هدف باید در دایرکتوری /data قرار داشته باشند. اگر
پیکربندی شما دایرکتوری هدف را بهصورت logs مشخص کند، بهصورت
/data/logs تفسیر میشود.
شکل ۵۴. پیکربندی پاککننده فایل را ویرایش کنید.
بازنشانی
با کلیک کردن روی بازنشانی تنظیمات، پیکربندی پاککننده فایل به حالت پیشفرض برمیگردد. این کنش «همه» موارد سفارشی را پاک میکند.
شکل ۵۵. بازنشانی تنظیمات پاککننده فایل.
پشتیبانی
گزارش اشکال
همیاری شما در OmniLab ATS به بهبود توسعه این ابزار کمک میکند و ما میخواهیم نظرتان را بدانیم! برای جزئیات جدیدترین نسخه پخش، یادداشتهای انتشار OmniLab ATS را ببینید. برای گزارش کردن اشکالها یا ارائه پیشنهاد، گزارش اشکال ارسال کنید. شرکا باید اشکالات یا پیشنهادها را بااستفاده از کانالهای شریک خود گزارش دهند.