OmniLab ATS ابزاری برای تست است که توسعهدهندگان اندروید و مهندسان تست میتوانند از آن برای بهکارگیری یک رابط کاربری برای اجرای مجموعههای تست استاندارد اندروید، مانند مجموعه تست سازگاری اندروید (CTS) استفاده کنند. این ابزار به عنوان یک رابط وب برای چارچوبهای تست مختلف، مانند فدراسیون تجارت (TF) و Google Mobly عمل میکند و به شما امکان میدهد تستهای CTS و چند دستگاهی را روی مجموعهای از دستگاههای تست با حداقل تنظیمات اجرا کنید و همچنین برنامهای برای اجرای مداوم تستها ایجاد کنید.
مقدمهای بر OmniLab ATS 2.0
OmniLab ATS 2.0 زیرساخت اجرای تست زیربنایی را از Trade Federation به OmniLab منتقل میکند. این تغییر، ضمن حفظ رابط کاربری و گردشهای کاری OmniLab ATS 1.0، یک backend قویتر و کارآمدتر را به ارمغان میآورد.
مزایای کلیدی OmniLab ATS 2.0:
- زیرساخت مدرن: از پلتفرم OmniLab برای بهبود پایداری و عملکرد استفاده میکند.
- انتقال یکپارچه: هیچ تغییری در رابط کاربری وب یا گردشهای کاری اجرای تست اصلی ایجاد نمیشود.
- آماده برای آینده: با زیرساخت تست یکپارچه گوگل همسو است و امکان پذیرش سریعتر ویژگیهای جدید را فراهم میکند.
OmniLab ATS 2.0 شامل ویژگیهای جدیدی مانند بهروزرسانیهای طرح تست انبوه، تخصیص پیشرفته دستگاه و موارد دیگر است. برای بهروزرسانیها ، یادداشتهای انتشار را بررسی کنید.
ارتقا به OmniLab ATS 2.0:
برای امتحان کردن OmniLab ATS 2.0، فلگ --force_ats_version 2 را به دستور mtt start خود اضافه کنید:
mtt start --force_ats_version 2
در طول دوره مهاجرت، توصیه میکنیم از برچسب 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
نصب OmniLab ATS
هرگونه الزامات سختافزاری و نرمافزاری را برای مجموعه تستهایی که اجرا میکنید، رعایت کنید.
الزامات CTS در source.android.com یافت میشود.
هیچ الزام سختافزاری اضافی برای OmniLab ATS وجود ندارد، اما توصیه میکنیم از الزام میزبان CTS به عنوان نقطه شروع استفاده کنید.
دو راه برای نصب OmniLab ATS وجود دارد:
- برنامه نصب کننده را اجرا کنید.
- آن را به صورت دستی نصب کنید ، که مستلزم نصب چندین برنامه و منبع است.
با برنامه نصب نصب کنید
در اوبونتو 20.04+، برنامه نصب، تمام برنامهها و منابع مورد نیاز برای اجرای OmniLab ATS را نصب و پیکربندی میکند.
برای استفاده از برنامه نصب:
برنامه نصب را اجرا کنید:
curl https://storage.googleapis.com/android-mtt.appspot.com/prod/install.sh | bash
برای بررسی نسخه نصب شده OmniLab ATS CLI
mtt versionاجرا کنید.
نصب به صورت دستی
نصب داکر
دستورالعملهای نصب Docker Community Edition (CE) را روی دستگاه لینوکس خود دنبال کنید.
برای مدیریت داکر به عنوان یک کاربر غیر ریشه، مراحل پس از نصب را دنبال کنید.
برای اعمال تغییرات مجوز، ممکن است لازم باشد پنجره ترمینال خود را مجدداً راهاندازی کنید یا از سیستم خارج شوید و دوباره وارد شوید.
نصب پایتون ۳
رابط خط فرمان OmniLab ATS در برابر نسخههای پایتون ۳.۷ تا ۳.۱۱ تأیید شده است.
برای اوبونتو ۱۶.۰۴ یا قبل از آن، ابتدا مخزن پایتون ۳ را با انجام یکی از موارد زیر اضافه کنید:
این دستور را اجرا کنید:
sudo add-apt-repository ppa:deadsnakes/ppa
مخزن را از منبع بسازید و نصب کنید.
برای نصب پایتون ۳، این دستورات را اجرا کنید:
sudo apt-get updatesudo apt install python3 python3-distutils
برای نصب یک نسخه خاص پایتون ۳ (مثلاً ۳.۱۰)، این دستورات را اجرا کنید:
sudo apt-get updatesudo apt install python3.10 python3.10-distutils
رابط خط فرمان OmniLab ATS را دریافت کنید
بسته رابط خط فرمان (CLI) را از اینجا دانلود کنید.
شروع OmniLab ATS
OmniLab ATS را با دستور زیر شروع کنید:
mtt start
اولین باری که رابط کاربری اجرا میشود، ممکن است چند دقیقه طول بکشد تا ظاهر شود. رابط خط فرمان (CLI) یک URL وب برای دسترسی به رابط کاربری در مرورگر نمایش میدهد. به طور پیشفرض، URL وب 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 خود، لیستی از تمام مجموعههای پیکربندی موجود را مشاهده خواهید کرد.
هر مجموعه پیکربندی که میخواهید به میزبان Test Station خود اضافه کنید را انتخاب کنید و روی Import Selected کلیک کنید.

شکل ۴. وارد کردن یک مجموعه پیکربندی.
تنظیمات وایفای را هم اضافه کنید
برخی از تستهای CTS نیاز دارند که دستگاه شما به یک هاتاسپات وایفای متصل شود. برای انتخاب شبکه وایفای خود، SSID وایفای و PSK اختیاری را وارد کنید.

شکل ۵. تنظیمات هاتاسپات وایفای.
پس از تکمیل مراحل نصب، صفحه با تنظیمات جدید اعمال شده، مجدداً بارگذاری میشود.
یک دستگاه را وصل کنید
برای استفاده از دستگاه جهت آزمایش، باید اشکالزدایی USB فعال باشد. برای فعال کردن اشکالزدایی:
دستورالعملهای موجود در بخش «فعال کردن گزینههای توسعهدهنده و اشکالزدایی» را دنبال کنید.
اگر قصد دارید از نسخههای آزمایشی اندروید که از قبل با کلیدهای سفارشی ADB بارگذاری شدهاند استفاده کنید، فایلهای سفارشی
.adb_keyرا در پوشه~/.android/قرار دهید.فایلها به طور خودکار بارگذاری شده و به ADB منتقل میشوند تا پس از فلش شدن دستگاه، اشکالزدایی USB برای دستگاههایی که آن نسخهها را اجرا میکنند، به طور خودکار فعال شود.
دستگاه را با استفاده از USB به دستگاه میزبان وصل کنید.
دستگاه ظرف یک دقیقه پس از رفرش کردن رابط وب، در تب دستگاههای OmniLab ATS ظاهر میشود. همچنین میتوانید وضعیت دستگاهها را در این تب مشاهده کنید.

شکل ۶. اتصال یک دستگاه.
حالتهای مختلف دستگاه عبارتند از:
- موجود - دستگاه متصل شده و آماده اجرای آزمایش است.
- تخصیصیافته - دستگاه متصل شده و در حال اجرای یک تست است. هر دستگاه میتواند فقط یک تست را در یک زمان اجرا کند، بنابراین دستگاه باید قبل از اجرای تست جدید، تست فعلی خود را به پایان برساند.
یک آزمون اجرا کنید
یک آزمون انتخاب کنید
OmniLab ATS با مجموعهای از پیکربندیهای CTS از پیش بستهبندیشده ارائه میشود. برای اجرای یکی از این تستها، به برگه Test Suites بروید و روی Run test برای تست انتخابشده کلیک کنید.

شکل ۷. انتخاب یک آزمون.
برای ویرایش یا افزودن آزمونهای جدید، به افزودن آزمونها مراجعه کنید.
پیکربندی اجرای آزمایشی
پارامترهایی را که برای این اجرای آزمایشی خاص استفاده میشوند، ویرایش کنید. اکثر پارامترها با مقادیری که در پیکربندی آزمایشی انتخاب شده تعریف شدهاند، از قبل پر شدهاند.
این مرحله را میتوان با استفاده از مقادیر پیشفرض انجام داد، اما میتوانید هر یک از پارامترها، مانند Max Retry و Command را متناسب با نیاز خود تغییر دهید.

شکل ۸. پیکربندی یک اجرای آزمایشی.
پارامترهای اجرای آزمایش عبارتند از:
- نام - نام مجموعه آزمایشی که میخواهید اجرا کنید.
- تعداد اجرا - تعداد دفعاتی که این اجرای آزمایشی باید طبق برنامه اجرا شود. اجرای آزمایشی با استفاده از Trade Federation برنامهریزی میشود که در صورت وجود ظرفیت، تا 20 اجرای آزمایشی را به صورت موازی اجرا میکند.
- حداکثر تلاش مجدد - حداکثر تعداد دفعات برای تلاش مجدد در اجرای آزمایشی در صورت عدم موفقیت حداقل یک آزمایش. این مقدار معمولاً برای اجرای کامل CTS روی ۴ تا ۶ تلاش مجدد تنظیم میشود تا آزمایشهای ناپایدار را مدیریت کند.
- زمان انتظار در صف انتظار - اگر یک اجرای آزمایشی برای مدت طولانی در حالت صف انتظار باقی بماند، به طور خودکار لغو میشود. مدت زمان لازم برای انتظار قبل از لغو را در اینجا مشخص کنید. مقدار پیشفرض ۲۴ ساعت است.
دستور - دستوری برای اجرای مجموعه تست. میتوانید آرگومانهای خط فرمان اضافی را اینجا وارد کنید. برای مثال، یک ماژول خاص را در CTS 8.1 با دستور زیر اجرا کنید:
cts-suite -m ShortModuleNameدستور Retry - دستوری برای امتحان مجدد یک مجموعه آزمایشی. میتوانید آرگومانهای خط فرمان اضافی را در اینجا اضافه کنید. برای مثال، برای امتحان مجدد فقط یک ماژول خاص در CTS 8.1، از دستور زیر استفاده کنید:
cts --retry 0 -m ShortModuleNameآرگومانهای Retry ممکن است با آرگومانهای موجود در دستور اولیه متفاوت باشند، بنابراین پارامترهای پشتیبانیشده در سایت رسمی مجموعه تست انتخابشده را بررسی کنید.
اجرای آزمایشی قبلی - اگر میخواهید اجرای آزمایشی قبلی را دوباره اجرا کنید:
محلی - اگر اجرا روی میزبان فعلی شروع شده است، شناسه اجرای آزمایشی که هنگام مشاهده جزئیات اجرای آزمایشی مشاهده میکنید را وارد کنید.

شکل ۹. اجرای آزمایشی محلی قبلی.
از راه دور - اگر اجرا روی میزبان دیگری شروع شده است، فایل نتایج آزمایش را با انتخاب Remote ، کلیک روی Upload Test Results File و انتخاب یک فایل از حافظه محلی خود، بارگذاری کنید.

شکل ۱۰. اجرای آزمایشی قبلی از راه دور.
دستگاهها را انتخاب کنید
برای انتخاب دستگاههایی که برای اجرای مجموعه آزمایش اختصاص داده میشوند، روی کادرهای انتخاب کلیک کنید. تعداد قطعات باید بهطور خودکار تغییر کند تا با تعداد دستگاههای انتخابشده مطابقت داشته باشد.

شکل ۱۱. انتخاب دستگاهها.
برای انتخاب دستگاهها بر اساس ویژگیهایی غیر از سریال دستگاه، میتوانید به صورت دستی "مشخصات دستگاه" را وارد کنید. به عنوان مثال، برای انتخاب ۳ دستگاه که نام محصول آنها "bramble" است، موارد زیر را وارد کنید:
product:bramble;product:bramble;product:bramble
ویژگیهای پشتیبانیشده عبارتند از:
- شناسه ساخت
- سریال_دستگاه
- نوع_دستگاه
- نام میزبان
- محصول
- نوع محصول
- sim_state
تمام دستگاههای انتخابشده باید برای اجرای تست در حالت Available باشند و هنگام اجرای تست، همگی به حالت Allocated تغییر وضعیت میدهند. یک تست در حالی که منتظر در دسترس قرار گرفتن دستگاهها است، در حالت Queued قرار دارد.
افزودن اقدامات دستگاه
اقدامات دستگاه، اسکریپتهایی هستند که میتوانند قبل از هر اجرای آزمایشی اجرا شوند. برخی از اقدامات دستگاه از قبل پیکربندی شدهاند، مانند فلش کردن و راهاندازی مجدد. برای ایجاد اقدامات دستگاه جدید، به بخش «ایجاد یک اقدام دستگاه جدید» مراجعه کنید.

شکل ۱۲. عملکردهای دستگاه.
برای افزودن یک اقدام دستگاه به یک اجرای آزمایشی، روی «افزودن اقدام جدید» کلیک کنید، کادرهای انتخاب اقدامات را برای افزودن انتخاب کنید و روی «افزودن اقدام(ها)» کلیک کنید. اقدامات دستگاه به صورت متوالی انجام میشوند. میتوانید با کشیدن آنها، ترتیب اقدامات را تغییر دهید.

شکل ۱۳. مرتبسازی مجدد اقدامات.
منابع آزمون را تنظیم کنید
منابع آزمایشی فایلهایی هستند که برای اجرای یک اجرای آزمایشی مورد نیاز هستند. برای مثال، اجرای CTS به یک فایل android-cts*.zip نیاز دارد و فلش کردن یک دستگاه مستلزم ارائه تصویر ساخت است.
آدرس اینترنتی دانلود فایل زیپ مجموعه آزمایشی باید به طور پیشفرض لینکهای گوگل درایو داده شده به شرکا باشد. میتوانید با کلیک روی مرور ، فایل دیگری را انتخاب کنید. در پنجره بازشو، میتوانید لینک دانلود فایل را وارد کنید، از فایلی از یک کانال ساخت تأیید شده استفاده کنید یا فایلی را برای استفاده از حافظه محلی آپلود کنید.

شکل ۱۴. منابع آزمون.
در زیر پنجرهی بازشو برای انتخاب یک منبع آزمایشی از طریق URL وب وجود دارد. میتوانید لینک URL دانلود را وارد کنید و برای تأیید انتخاب، روی دکمهی انتخاب کلیک کنید.

شکل ۱۵. انتخابگر منبع آزمایشی - آدرس وب.
اگر منابعی را در Google Grive، Google Cloud Storage (GCS) یا کانالهای دیگر آپلود کردهاید، میتوانید به برگه کانال خاص نیز بروید و منابع را در آنجا انتخاب کنید. در اینجا مثالی برای انتخاب منبع از گوگل درایو آورده شده است.

شکل ۱۶. انتخابگر منبع آزمایشی - گوگل درایو.
علاوه بر انتخاب فایلها، کاراکترهای wildcard نیز در فیلد Filename پشتیبانی میشوند. مستندات را میتوانید اینجا پیدا کنید.

شکل ۱۷. انتخابگر منبع آزمون - پشتیبانی از الگوی Wildcard.
همچنین میتوانید یک فایل را از فضای ذخیرهسازی محلی OmniLab ATS انتخاب کنید. میتوانید فایلها را در این فضای ذخیرهسازی آپلود کنید یا مستقیماً از فایلها و دایرکتوریهای محلی استفاده کنید .

شکل ۱۸. انتخابگر منبع آزمون - محل ذخیرهسازی فایل محلی.
اضافه کردن پیکربندیهای اجرای مجدد
شما میتوانید اجرای مجدد را طوری برنامهریزی کنید که پس از اتمام اجرای اولیه شروع شود و نتایج آن را بارگذاری کند، اما میتواند از دستگاه، اقدامات یا منابع متفاوتی استفاده کند.

شکل ۱۹. افزودن پیکربندیهای اجرای مجدد.
شروع یک اجرای آزمایشی
پس از وارد کردن اطلاعات مورد نیاز برای اجرای آزمایشی، روی «شروع اجرای آزمایشی» کلیک کنید. اگر همه اطلاعات معتبر باشند، اجرای آزمایشی شروع میشود و شما به صفحهای هدایت میشوید تا جزئیات و پیشرفت اجرای آزمایشی را مشاهده کنید.

شکل ۲۰. شروع یک اجرای آزمایشی.
یک طرح آزمایشی ایجاد کنید
از طرحهای آزمایشی برای ایجاد اجرای آزمایشی در یک برنامهی زمانی دورهای استفاده میشود. به عنوان مثال، اجرای CTS 9.0 هر روز ساعت ۵ بعد از ظهر. برای ایجاد یک طرح آزمایشی جدید، روی «ایجاد یک طرح آزمایشی جدید» کلیک کنید.

شکل ۲۱. ایجاد یک طرح آزمایشی.
پیکربندی طرح آزمون
نام طرح آزمایشی و هر برچسبی که میخواهید اضافه کنید را وارد کنید. سپس یک برنامه زمانی برای استفاده انتخاب کنید.
- دستی - طرح آزمون فقط زمانی اجراهای آزمون را ایجاد میکند که کاربر روی اجرای طرح آزمون در صفحه فهرست طرحهای آزمون کلیک کند.
- دورهای - طرح آزمون به طور خودکار اجرای آزمون را بر اساس برنامه دورهای انتخاب شده برنامهریزی میکند. به عنوان مثال، زمانبندی اجرای آزمون هر روز ساعت ۵ بعد از ظهر.
- سفارشی - طرح آزمون به طور خودکار اجرای آزمونها را بر اساس عبارت cron وارد شده زمانبندی میکند. برای مثال، برای زمانبندی اجرای آزمون هر روز ساعت ۵ بعد از ظهر، عبارت cron
0 17 * * *است.

شکل ۲۲. پیکربندی یک طرح آزمایشی.
اضافه کردن مجموعههای آزمایشی
با کلیک روی + Add test run configuration، مجموعه تستهایی را که میخواهید توسط طرح تست زمانبندی شوند، اضافه کنید. یک مجموعه تست را از منوی کشویی Name انتخاب کنید و روی Next step کلیک کنید. سپس دستگاههایی را که میخواهید تست روی آنها اجرا شود انتخاب کنید و روی Add Configuration کلیک کنید. میتوانید برای هر طرح تست چندین پیکربندی اضافه کنید.

شکل ۲۳. پیکربندی یک اجرای آزمایشی.
افزودن اقدامات دستگاه
قبل از هر اجرای آزمایشی، اقدامات دستگاهی را که میخواهید اجرا شوند، اضافه کنید. برای جزئیات بیشتر به افزودن اقدامات دستگاه مراجعه کنید.

شکل ۲۴. افزودن اقدامات دستگاه.
منابع آزمون را تنظیم کنید
افزودن منابع تست به طرحهای تست، مشابه افزودن آنها به تک تک تستهای اجرا شده است. برای جزئیات بیشتر به بخش تنظیم منابع تست مراجعه کنید.

شکل ۲۵. تنظیم منابع آزمون.
مشاهدهی تستهای اجرا شده
لیست اجرای آزمایشی
فهرست اجراهای آزمایشی زمانبندیشده را در صفحه اجراهای آزمایشی مشاهده کنید. برای مشاهده جزئیات بیشتر در مورد یک اجرای آزمایشی، روی «مشاهده» کلیک کنید.
همچنین میتوانید با وارد کردن یک رشته در نوار فیلتر و فشردن کلید Enter ، لیست را فیلتر کنید. میتوانید با جدا کردن آنها با کاما، از چندین فیلتر استفاده کنید. فیلتر تمام ردیفهایی را که حاوی متن دقیق (بدون تطبیق زیررشته) در هر ستون هستند، به استثنای وضعیت (Status ) و ایجاد شده (Created ) برمیگرداند.
یک فیلتر خالی تمام ردیفها را برمیگرداند. در حال حاضر هیچ راهی برای فیلتر کردن ردیفهایی با مقادیر خالی وجود ندارد.

شکل ۲۶. فهرست اجرای آزمایشی.
جزئیات اجرای آزمایشی
میتوانید جزئیات یک اجرای آزمایشی، مانند وضعیت، گزارشها و نتایج را در اینجا مشاهده کنید.

شکل ۲۷. جزئیات اجرای آزمایش.
وضعیت اجرای آزمایشی
پیشرفت یک اجرای آزمایشی در بخش وضعیت نشان داده میشود. اگر پیام مرتبطی مانند پیشرفت دانلود، دلیل لغو یا پیام خطا وجود داشته باشد، در اینجا نیز نشان داده میشود.

شکل ۲۸. وضعیت اجرای آزمایشی.
حالتهای اجرای آزمایشی عبارتند از:
- در حال بررسی - منابع مورد نیاز در حال دانلود هستند.
- در صف انتظار - تست زمانی آماده اجرا است که دستگاهی در دسترس قرار گیرد.
- در حال اجرا - آزمایش روی یک دستگاه اختصاص داده شده در حال اجرا است.
- تکمیلشده - آزمون تکمیل و نتایج آن گزارش شده است.
- لغو شد - آزمایش توسط کاربر لغو شده یا هنگام تلاش برای یافتن دستگاههای موجود، مهلت آن به پایان رسیده است.
- خطا - خطایی رخ داده است که مانع از اجرای آزمایش شده است.
لغو اجرای آزمایشی
اگر اجرای آزمایشی کامل نشده باشد، میتوانید با کلیک روی لغو (Cancel) و سپس کلیک روی بله (Yes) در کادر محاورهای تأیید، آن را لغو کنید. همچنین، اگر اجرای آزمایشی بیش از فیلد queue_timeout_seconds در حالت صف (Queued) باقی بماند، بهطور خودکار لغو میشود. لغو اجرای آزمایشی در حالت در حال اجرا (Running ) ممکن است چند دقیقه طول بکشد.

شکل ۲۹. لغو اجرای آزمایشی.
نتایج اجرای آزمایشی
پس از پایان اجرای تست، نتایج جمعآوری و نمایش داده میشوند. میتوانید با کلیک روی فلش مربوط به هر اجرا، جزئیات بیشتری را مشاهده کنید. برای مشاهدهی مصنوعات تست جمعآوریشده، مانند test_result.xml و test_result_failures.html ، روی View Output Files کلیک کنید.

شکل ۳۰. نتایج اجرای آزمایش.
شما میتوانید گزارشهای زندهی میزبان و Tradefed را در برگهی گزارشها مشاهده کنید.

شکل ۳۱. برگه گزارشها.
نتایج مربوط به ماژولهای مختلف در برگه نتایج آزمون (Test Results) قرار دارد.

شکل ۳۲. برگه نتایج آزمایش.
شما میتوانید فایلهای مورد استفاده به عنوان منابع آزمون را با کلیک روی «باز کردن» در تب «منابع آزمون» دانلود کنید.

شکل ۳۳. برگه منابع آزمون.
برای مشاهده جزئیات اجرای تست، مانند create_time ، به برگه پیکربندی (Config) بروید.

شکل ۳۴. برگه پیکربندی.
ویژگیهای پیشرفته
مدیریت فایلهای پیکربندی
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 خود را راهاندازی میکنید، میتوانید پیکربندی خود را با صادر کردن آن به عنوان یک فایل با سایر کاربران به اشتراک بگذارید. برای انجام این کار، به صفحه تنظیمات بروید و در بالا سمت راست روی Export کلیک کنید.

شکل ۳۵. مدیریت فایل پیکربندی.
پس از دانلود فایل پیکربندی، آن را با سایر کاربران به اشتراک بگذارید. آنها میتوانند با کلیک روی «وارد کردن» و انتخاب فایل پیکربندی، فایل پیکربندی را به نمونه OmniLab ATS خود اضافه کنند.
یک اقدام دستگاه جدید ایجاد کنید
اقدامات دستگاه برای خودکارسازی فرآیند راهاندازی دستگاه استفاده میشوند. اقدامات، اسکریپتهایی هستند که قبل از هر اجرای آزمایش، از جمله قبل از تلاشهای مجدد، روی هر دستگاهی که آزمایش روی آن اجرا میشود، اجرا میشوند. برای مشاهده لیستی از اقدامات دستگاه موجود، به صفحه تنظیمات بروید و روی برگه اقدامات دستگاه کلیک کنید. چندین اقدام دستگاه از قبل پیکربندی شدهاند، مانند راهاندازی مجدد و فلش کردن.

شکل ۳۶. برگه اقدامات دستگاه.
افزودن یک اقدام جدید برای دستگاه
روی اقدام دستگاه جدید کلیک کنید.

شکل ۳۷. دکمهی عملیاتی جدید دستگاه.
نام و توضیحات را وارد کنید.

شکل ۳۸. نام عملکرد دستگاه.
روی افزودن آمادهکنندهی هدف کلیک کنید.
نام کامل کلاس Trade Federation Target Preparer را وارد کنید، برای مثال،
com.android.tradefed.targetprep.RunHostCommandTargetPreparer.
شکل ۳۹. افزودن آمادهساز هدف.
فهرستی از آمادهسازهای هدف موجود را میتوانید در مرجع com.android.tradefed.targetprep بیابید.

شکل ۴۰. فهرست تهیهکنندگان هدف.
هر گزینهای را که میخواهید با آمادهکنندهی هدف استفاده کنید، اضافه کنید. برای مشاهدهی گزینههای موجود، برای مشاهدهی کد منبع هر آمادهکنندهی هدف در AOSP، targetprep را بررسی کنید:

شکل ۴۱. مثال گزینه اقدام.
برای افزودن یک گزینه، روی «افزودن گزینه آمادهسازی هدف» کلیک کنید و مقادیر مورد نیاز را وارد کنید.

شکل ۴۲. مثال دستور اکشن.
منابع آزمایشی مورد نیاز برای اجرای عملکرد دستگاه، مثلاً ساخت تصاویر برای فلش کردن، را تعریف کنید. برای افزودن تعریف منبع، روی «افزودن منبع آزمایشی» کلیک کنید و فیلدهای مورد نیاز را پر کنید. اگر میدانید فایلهای شما کجا قرار دارند، میتوانید با کلیک روی «مرور» ، یک URL دانلود پیشفرض ارائه دهید. اگر آمادهسازهای هدف، دایرکتوری را به عنوان منبع آزمایشی میپذیرند، «حذف» را انتخاب کنید. سپس دایرکتوری مقصد نسبی را در زیر دایرکتوری کاری موقت و نام فایلهایی که باید از حالت فشرده خارج شوند، مشخص کنید. اگر نام فایلی داده نشود، همه فایلها از منبع آزمایشی از حالت فشرده خارج میشوند.

شکل ۴۳. منابع آزمون عملی.
روی بهروزرسانی کلیک کنید.

شکل ۴۴. ذخیره تغییرات در اکشن.
مدیریت آزمونها
ویرایش یک آزمون
برای ویرایش یک آزمون ذخیره شده، به صفحه آزمونها بروید و روی ردیف آزمونی که میخواهید تغییر دهید، روی ویرایش کلیک کنید. پس از تغییر پیکربندی آزمون، روی بهروزرسانی کلیک کنید.

شکل ۴۵. ویرایش یک آزمون.
اضافه کردن آزمون جدید
برای افزودن یک آزمون جدید، به صفحه آزمونها بروید و روی «ایجاد آزمون جدید» کلیک کنید. اطلاعات مناسب را وارد کنید و روی «ایجاد» کلیک کنید.

شکل ۴۶. ایجاد یک آزمون.

شکل ۴۷. کپی کردن یک آزمون.
پیکربندیهای میزبان را صادر کنید
پس از پیکربندی یک میزبان، میتوانید پیکربندیهای میزبان را به یک فایل منتقل کنید. میتوانید این فایل را در میزبانهای دیگر بارگذاری کنید تا پیکربندیهای ذخیره شده کپی شوند.
برای خروجی گرفتن از پیکربندیهای یک میزبان، به صفحه تنظیمات بروید و روی گزینه خروجی گرفتن در گوشه بالا سمت راست کلیک کنید.

شکل ۴۸. خروجی گرفتن از پیکربندی میزبان.
برای وارد کردن فایل پیکربندی میزبان، به صفحه تنظیمات بروید و روی «وارد کردن» در گوشه بالا سمت راست کلیک کنید.

شکل ۴۹. وارد کردن پیکربندی میزبان.
استفاده از فایلها و دایرکتوریهای محلی
از نسخه R11 به بعد، فایلهای موجود در دایرکتوری $HOME/.ats_storage به طور خودکار در OmniLab ATS قابل دسترسی هستند. یک فایل را در آن دایرکتوری کپی یا منتقل کنید، سپس میتوانید هنگام برنامهریزی اجرای آزمایش، آن را از تب Local File انتخاب کنید.
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پیکربندی و شروع ATS.
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
پاک کننده فایل
پاککننده فایل یک کرون جاب است که هر ساعت اجرا میشود تا فایلها را بر اساس پیکربندیهای تعریفشده توسط کاربر پاک کند. 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 برای مطابقت با نتایج zips. |
SYSTEM_AVAILABLE_SPACE | بر اساس فضای موجود در سیستم، اقدامات را آغاز کنید. | threshold : وقتی فضای موجود از آستانه کمتر شود، مثلاً 200 (B)، 200KB ، 200MB ، 200GB ، 2TB فعال میشود. |

شکل ۵۳. یک سیاست پاککننده فایل جدید اضافه کنید.
پیکربندیها
یک پیکربندی، یک یا چند سیاست را با دایرکتوریهای خاص ترکیب میکند. فایلها و دایرکتوریهای درون دایرکتوریهای مشخص شده بر اساس سیاستهای تعریف شده پردازش میشوند. سیاستها به ترتیبی که در پیکربندی ظاهر میشوند، اعمال میشوند.
همه دایرکتوریهای هدف باید در دایرکتوری /data قرار داشته باشند. اگر پیکربندی شما دایرکتوری هدف را به عنوان logs مشخص کند، به صورت /data/logs تفسیر میشود.

شکل ۵۴. پیکربندی پاککنندهی فایل را ویرایش کنید.
تنظیم مجدد
کلیک روی «تنظیمات بازنشانی» پیکربندی پاککننده فایل را به حالت پیشفرض برمیگرداند. این عمل تمام موارد سفارشی را پاک میکند.

شکل ۵۵. تنظیمات پاککننده فایل را به حالت اولیه برگردانید.
پشتیبانی
گزارشهای اشکال
مشارکت شما در OmniLab ATS به بهبود توسعه ابزار کمک میکند و ما به نظرات شما نیاز داریم! برای جزئیات بیشتر در مورد آخرین نسخه، به یادداشتهای انتشار OmniLab ATS مراجعه کنید. برای گزارش اشکالات یا ارائه پیشنهادات، یک گزارش اشکال ثبت کنید . شرکا باید اشکالات یا پیشنهادات خود را با استفاده از کانالهای همکار خود گزارش دهند.