OmniLab Android Test Station

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

از همه الزامات سخت‌افزاری و نرم‌افزاری برای مجموعه آزمون‌هایی که اجرا می‌کنید پیروی کنید.

الزامات CTS در source.android.com موجود است.

هیچ الزامات سخت‌افزاری اضافی برای OmniLab ATS وجود ندارد، اما توصیه می‌کنیم از الزامات میزبان CTS به‌عنوان نقطه شروع استفاده کنید.

دو روش برای نصب OmniLab ATS وجود دارد:

نصب با برنامه نصب‌کننده

برنامه نصب‌کننده در Ubuntu 22.04 و بالاتر پشتیبانی می‌شود. نصب‌کننده همه برنامه‌ها و منابع موردنیاز برای اجرای OmniLab ATS را نصب و پیکربندی می‌کند.

برای استفاده از برنامه نصب:

  1. برنامه نصب‌کننده را اجرا کنید:

    curl https://storage.googleapis.com/android-mtt.appspot.com/prod/install.sh | bash
    
  2. mtt version را اجرا کنید تا نسخه نصب‌شده OmniLab ATS CLI را بررسی کنید.

نصب دستی

نصب Docker
  1. دستورالعمل‌های نصب Docker Community Edition (CE) را در دستگاه Linux خود دنبال کنید.

  2. مراحل پس‌از نصب را برای مدیریت Docker به‌عنوان کاربر غیرریشه دنبال کنید.

  3. ممکن است لازم باشد پنجره پایانه را بازراه‌اندازی کنید یا از سیستم خارج شوید و دوباره به سیستم وارد شوید تا تغییرات اجازه اعمال شود.

نصب Python 3

‫OmniLab ATS CLI به Ubuntu نسخه ۲۲.۰۴ یا جدیدتر نیاز دارد. رابط خط فرمان با نسخه‌های ۳.۱۰ تا ۳.۱۳ پایتون درستی‌سنجی شده است.

برای نصب Python 3، این فرمان‌ها را اجرا کنید:

sudo apt-get update
sudo apt install python3 python3-distutils

اگر به نسخه‌ای از Python 3 نیاز دارید که در توزیع استاندارد شما گنجانده نشده است، ابتدا با انجام یکی از کارهای زیر، مخزن Python 3 را اضافه کنید:

  • این فرمان را اجرا کنید:

    sudo add-apt-repository ppa:deadsnakes/ppa
    
  • مخزن را از منبع بسازید و نصب کنید.

برای نصب نسخه خاصی از Python 3 (برای مثال، 3.10)، این فرمان‌ها را اجرا کنید:

sudo apt-get update
sudo 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

شکل ۵. تنظیمات نقطه اتصال Wi-Fi.

پس‌از تکمیل «دستیار راه‌اندازی»، صفحه با اعمال تنظیمات جدید مجدداً بار می‌شود.

متصل کردن دستگاه

برای استفاده از دستگاه برای آزمایش، اشکال‌زدایی USB باید فعال باشد. برای فعال کردن اشکال‌زدایی:

  1. دستورالعمل‌های موجود در فعال کردن گزینه‌های توسعه‌دهندگان و اشکال‌زدایی را دنبال کنید.

  2. اگر قصد دارید از ساخت‌های آزمایشی Android که ازقبل با کلیدهای ADB سفارشی بار شده‌اند استفاده کنید، فایل‌های سفارشی .adb_key را در فهرست راهنمای ~/.android/ قرار دهید.

    فایل‌ها به‌طور خودکار بار می‌شوند و به ADB ارسال می‌شوند تا اشکال‌زدایی USB به‌طور خودکار فعال شود اشکال‌زدایی پس‌از فلش شدن دستگاه برای دستگاه‌هایی که آن نسخه‌های ساخت را اجرا می‌کنند.

  3. دستگاه را بااستفاده از 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

شکل ۱۵. Test Resource Selector - Web URL.

اگر منابعی را در Google Drive،‏ Google Cloud Storage (GCS)، یا کانال‌های دیگر بارگذاری کرده‌اید، می‌توانید به برگه کانال خاصی بروید و منابع را در آنجا انتخاب کنید. در اینجا مثالی برای انتخاب منبع از Google Drive آورده شده است.

انتخاب‌گر منبع آزمایشی - Google Drive

شکل ۱۶. انتخاب‌گر منبع آزمایشی - Google Drive.

علاوه‌بر انتخاب فایل‌ها، از نویسه‌های عام نیز در فیلد نام فایل پشتیبانی می‌شود. اسناد را می‌توانید اینجا پیدا کنید.

انتخاب‌گر منبع آزمایشی - پشتیبانی از الگوی نویسه جانشین

شکل ۱۷. انتخاب‌گر منبع آزمایشی - پشتیبانی از الگوی نویسه جانشین.

همچنین می‌توانید فایلی را از فضای ذخیره‌سازی فایل محلی OmniLab ATS انتخاب کنید. می‌توانید فایل‌ها را در این فضای ذخیره‌سازی بارگذاری کنید، یا مستقیماً از فایل‌ها و دایرکتوری‌های محلی استفاده کنید.

Test Resource Selector - Local File Store

شکل ۱۸. 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 خود اضافه کنند.

ایجاد کنش دستگاه جدید

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

برگه «کنش‌های دستگاه»

شکل ۳۶. برگه «کنش‌های دستگاه».

افزودن کنش دستگاه جدید

  1. روی کنش دستگاه جدید کلیک کنید.

    دکمه کنش دستگاه جدید

    شکل ۳۷. دکمه کنش دستگاه جدید.

  2. نام و شرحی وارد کنید.

    نام کنش دستگاه

    شکل ۳۸. نام کنش دستگاه.

  3. روی افزودن آماده‌کننده هدف کلیک کنید.

  4. نام کامل کلاس آماده‌ساز هدف Trade Federation را وارد کنید، برای مثال، com.android.tradefed.targetprep.RunHostCommandTargetPreparer.

    افزودن آماده‌کننده هدف

    شکل ۳۹. درحال افزودن آماده‌کننده هدف.

    فهرست آماده‌سازهای هدف دردسترس را می‌توانید در مرجع com.android.tradefed.targetprep پیدا کنید.

    فهرست آماده‌کننده هدف

    شکل ۴۰. فهرست «آماده‌کننده هدف».

  5. گزینه‌هایی را برای استفاده با آماده‌کننده هدف اضافه کنید. برای مشاهده گزینه‌های دردسترس، targetprep را برای کد منبع هر آماده‌ساز هدف در AOSP بررسی کنید:

    نمونه گزینه کنش

    شکل ۴۱. نمونه گزینه کنش.

  6. برای افزودن گزینه، روی افزودن گزینه آماده‌ساز هدف کلیک کنید و مقادیر لازم را وارد کنید.

    نمونه فرمان کنش

    شکل ۴۲. نمونه فرمان کنش.

  7. منابع آزمایشی را که برای اجرای کنش دستگاه لازم است تعریف کنید، برای مثال، تصاویر ساخت برای فلش کردن. برای افزودن تعریف منبع، روی افزودن منبع آزمایشی کلیک کنید و فیلدهای الزامی را تکمیل کنید. اگر می‌دانید فایل‌هایتان کجا قرار دارند، می‌توانید با کلیک کردن روی مرور، نشانی وب بارگیری پیش‌فرضی ارائه دهید. اگر آماده‌سازهای هدف، دایرکتوری را به‌عنوان منبع آزمایشی می‌پذیرند، از حالت فشرده خارج کردن را انتخاب کنید. سپس فهرست راهنمای مقصد نسبی را زیر فهرست راهنمای کاری موقت و نام‌های فایل که باید از حالت فشرده خارج شوند مشخص کنید. اگر نام فایلی ارائه نشده باشد، همه فایل‌ها از منبع آزمایشی از حالت فشرده خارج می‌شوند.

    Action Test Resources

    شکل ۴۳. منابع آزمایشی کنش.

  8. روی به‌روزرسانی کلیک کنید.

    کنش ذخیره تغییرات

    شکل ۴۴. کنش ذخیره تغییرات.

مدیریت آزمایش‌ها

ویرایش کردن آزمایش

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

ویرایش کردن آزمایش

شکل ۴۵. درحال ویرایش آزمایش.

افزودن آزمایش جدید

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

ایجاد آزمایش

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

کپی کردن آزمون

شکل ۴۷. درحال کپی کردن آزمون.

صادر کردن پیکربندی‌های میزبان

پس‌از پیکربندی میزبان، می‌توانید پیکربندی‌های میزبان را به فایل صادر کنید. می‌توانید این فایل را در میزبان‌های دیگر بارگذاری کنید تا پیکربندی‌های ذخیره‌شده را کپی کنید.

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

درحال صادر کردن پیکربندی‌های میزبان

شکل ۴۸. درحال صادر کردن پیکربندی میزبان.

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

درحال وارد کردن پیکربندی‌های میزبان

شکل ۴۹. درحال وارد کردن پیکربندی میزبان.

استفاده از فایل‌ها و دایرکتوری‌های محلی

از نسخه 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 استفاده کنند.

معماری حالت چندمیزبانی

شکل ۵۲. معماری حالت چندمیزبانی.

  1. برای شروع کنترل‌کننده ATS، از فرمان زیر استفاده کنید:

    mtt start --operation_mode=ON_PREMISE
    
  2. بررسی کنید کنترل‌کننده در http://${CONTROLLER_HOSTNAME}:8000 قابل‌دسترسی باشد.

  3. برای شروع کارگران، از فرمان زیر استفاده کنید:

    mtt start --control_server_url=http://CONTROLLER_HOSTNAME:8000 --operation_mode=ON_PREMISE
    

اگر شبکه‌تان به میزبان‌ها اجازه نمی‌دهد با یکدیگر ارتباط برقرار کنند، باید دستورالعمل‌های راه‌اندازی پیشرفته‌تر زیر را در ATS worker دنبال کنید.

  1. دو میزبان را بااستفاده از تونل‌های SSH متصل کنید. درگاه‌هایی را برای درگاه‌های سرور اصلی و فایل انتخاب کنید، برای مثال، ۹۰۰۰ و ۹۰۰۶.

    ssh -L ATS_PORT:localhost:8000 -L FS_PORT:localhost:8006 CONTROLLER_HOSTNAME
    
  2. «سامانه کنترل قطار» را پیکربندی و راه‌اندازی کنید.

    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 را ببینید. برای گزارش کردن اشکال‌ها یا ارائه پیشنهاد، گزارش اشکال ارسال کنید. شرکا باید اشکالات یا پیشنهادها را بااستفاده از کانال‌های شریک خود گزارش دهند.