OmniLab ATS از دستگاههای مجازی Cuttlefish پشتیبانی میکند که به شما امکان میدهند بدون دستگاههای فیزیکی اندروید آزمایشها را اجرا کنید. ساقه ماهی برای آزمایش عملکردهای مستقل از سخت افزار مناسب است. قبل از شروع به استفاده از دستگاه های مجازی، راهنمای کاربر را برای نصب OmniLab ATS دنبال کنید.
OmniLab ATS از دستگاه های مجازی در دو حالت محلی و راه دور پشتیبانی می کند. جدول زیر مقایسه ای از دو حالت را ارائه می دهد.
دستگاه های مجازی محلی | دستگاه های مجازی از راه دور |
---|---|
روی میزبان های کارگر ATS اجرا می شود | روی هاست های راه دور اجرا می شود که میزبان های کارگر ATS می توانند از طریق SSH به آنها دسترسی داشته باشند |
مبتنی بر x86 | بسته به معماری هاست می تواند x86 یا ARM باشد |
راه اندازی راحت تر | راه اندازی پیچیده تر است |
دستگاه های مجازی محلی و راه دور را می توان به طور مستقل فعال کرد. برای جزئیات بیشتر در مورد هر حالت، نگاه کنید به:
دستگاه های مجازی محلی را راه اندازی کنید
این بخش مراحل راه اندازی OmniLab ATS را برای دستگاه های مجازی محلی شرح می دهد.
وابستگی های Cuttlefish را نصب کنید
دستور زیر را اجرا کنید تا مطمئن شوید که ماژول های هسته لازم بارگذاری شده اند:
sudo modprobe -a kvm tun vhost_net vhost_vsock
OmniLab ATS را با دستگاه های مجازی محلی راه اندازی کنید
قبل از شروع OmniLab ATS، مطمئن شوید که تمام نمونه های Cuttlefish متوقف شده اند. OmniLab ATS به طور خودکار دستگاه های مجازی را در طول چرخه آزمایش راه اندازی و متوقف می کند، و نمونه های Cuttlefish موجود با نمونه های مدیریت شده توسط OmniLab ATS در تضاد هستند. برای جزئیات بیشتر در مورد توقف نمونههای سگماهی، به توقف کوتلفیش مراجعه کنید.
برای فعال کردن دستگاه های مجازی محلی، اجرا کنید:
mtt start --max_local_virtual_devices N
N
حداکثر تعداد دستگاه های مجازی است که OmniLab ATS می تواند به طور همزمان اختصاص دهد. عدد پیش فرض 0 است.
اگر دستور به دلیل از دست دادن گره های دستگاه با شکست مواجه شد، مراحل موجود در پیام خطا را برای بارگیری ماژول های هسته دنبال کنید. اگر همچنان خراب شد، دستگاه را مجددا راه اندازی کنید.
دستگاه های مجازی راه دور را راه اندازی کنید
این بخش مراحل راه اندازی OmniLab ATS را برای دستگاه های مجازی راه دور توضیح می دهد.
وابستگی های Cuttlefish را نصب کنید
برای نصب Dependencies Cuttlefish مراحل زیر را دنبال کنید.
بستههای Debian را روی میزبان راه دور با دنبال کردن مراحل در Cuttlefish > Get start نصب کنید.
با دنبال کردن این مراحل، حداکثر تعداد دستگاه های مجازی را در میزبان راه دور پیکربندی کنید:
-
/etc/default/cuttlefish-host-resources
را با امتیاز روت ویرایش کنید. -
num_cvd_accounts
روی حداکثر تعداد دستگاههای مجازی که در این میزبان مجاز است تنظیم کنید. -
sudo systemctl restart cuttlefish-host-resources
اجرا کنید. -
ifconfig
اجرا کنید و تعداد اینترفیس هایcvd-wtap-*
را بررسی کنید.
-
یک حساب SSH ایجاد کنید
از آنجایی که میزبان OmniLab ATS از طریق SSH به میزبان راه دور متصل می شود، باید یک حساب SSH در میزبان راه دور آماده کنید. از آنجایی که OmniLab ATS فایل ها را در دایرکتوری HOME دستکاری می کند، توصیه می کنیم یک حساب اختصاصی ایجاد کنید.
میزبان OmniLab ATS برای ورود به هاست راه دور بدون رمز عبور به یک جفت کلید SSH نیاز دارد. مراحل زیر نحوه تنظیم کلیدهای SSH را شرح می دهد:
- برای تولید یک کلید خصوصی و یک کلید عمومی،
ssh-keygen
در میزبان OmniLab ATS اجرا کنید. - کلید عمومی را به
~/.ssh/authorized_keys
در میزبان راه دور آپلود و اضافه کنید.
اگر حساب SSH شما با حسابی که برای نصب وابستگیهای Cuttlefish استفاده میشود متفاوت است، برای اینکه به حساب SSH اجازه راهاندازی Cuttlefish داده شود، این دستور را در میزبان راه دور اجرا کنید:
sudo usermod -aG kvm,cvdnetwork,render $USER
OmniLab ATS را با دستگاه های مجازی راه دور راه اندازی کنید
قبل از شروع OmniLab ATS، مطمئن شوید که تمام نمونه های Cuttlefish متوقف شده اند. OmniLab ATS به طور خودکار دستگاه های مجازی را در طول چرخه آزمایش راه اندازی و متوقف می کند، و نمونه های Cuttlefish موجود با نمونه های مدیریت شده توسط OmniLab ATS در تضاد هستند. برای جزئیات بیشتر در مورد توقف نمونههای سگماهی، به توقف کوتلفیش مراجعه کنید.
برای عملکرد بهتر، توصیه می کنیم میزبان OmniLab ATS و میزبان راه دور را در یک شبکه محلی راه اندازی کنید.
برای فعال کردن دستگاه های مجازی راه دور، این دستور را در میزبان OmniLab ATS اجرا کنید:
mtt start --remote_virtual_devices USER@HOST/N \
--remote_ssh_key KEY
USER
نام حساب SSH است.
HOST
آدرس IPv4 میزبان راه دور است.
N
حداکثر تعداد دستگاه های مجازی است که OmniLab ATS می تواند به طور همزمان اختصاص دهد.
KEY
مسیر کلید خصوصی SSH در میزبان OmniLab ATS است.
این فرمان قبل از شروع OmniLab ATS اتصال به میزبان راه دور را آزمایش می کند. اگر پیام هشداری مانند The specified --remote_virtual_devices and --remote_ssh_key are invalid.
در کنسول، باید تنظیمات SSH خود را بررسی کنید.
برای جلوگیری از تداخل منابع، یک میزبان OmniLab ATS می تواند حداکثر به یک میزبان راه دور متصل شود. چندین میزبان OmniLab ATS نمی توانند به طور همزمان به یک میزبان راه دور متصل شوند.
آزمایشی را با دستگاه های مجازی انجام دهید
این بخش مراحل اجرای آزمایش را بر روی دستگاه های مجازی محلی یا راه دور توضیح می دهد.
دستگاه ها را انتخاب کنید
در لیست دستگاهها، OmniLab ATS دستگاههای مجازی را بهجای شماره سریال واقعی آنها بهعنوان مکاننما نمایش میدهد. مکاننماها در قالب HOSTNAME:local-virtual-device-ID برای دستگاههای مجازی محلی نشان داده میشوند. remote-virtual-ADDRESS-ID برای دستگاه های مجازی راه دور. ایالت ها یا موجود هستند یا اختصاص داده شده اند . یک مکان نگهدار در وضعیت Available نشان می دهد که دستگاه مجازی در حال اجرا نیست و می توان آن را برای آزمایش اختصاص داد.
شکل 1. انتخاب دستگاه های مجازی
اقدامات دستگاه را اضافه کنید
اگر حداقل یک دستگاه مجازی را انتخاب کنید، عملکرد دستگاه مرتبط باید به طور خودکار به لیست اضافه شود. این اقدام شامل پارامترهای TradeFed و منابع آزمایشی مورد نیاز برای ایجاد دستگاه های مجازی است.
شکل 2. اقدامات دستگاه برای دستگاه های مجازی محلی
شکل 3. اقدامات دستگاه برای دستگاه های مجازی راه دور
منابع آزمون را تنظیم کنید
دستگاههای مجازی Cuttlefish به سه منبع آزمایشی نیاز دارند، ابزارهای ماشین مجازی، تصاویر و Acloud . در یک ساخت معمولی Cuttlefish (به عنوان مثال، aosp_cf_x86_64_phone
در ci.android.com )، ابزارهای ماشین مجازی در cvd-host_package.tar.gz
و تصاویر در aosp_cf_x86_64_phone-img-*.zip
هستند. باینری Acloud در OmniLab ATS ساخته شده است و با تمام نسخه های Cuttlefish سازگار است. URL دانلود پیشفرض باینری Acloud فقط برای اهداف اشکالزدایی باید تغییر کند.
شکل 4. منابع تست برای دستگاه های مجازی
مشاهده اجراهای آزمایشی
گزارشهای دستگاه، از جمله kernel.log
، host_log.txt
، و launcher.log
در پوشه فایل خروجی جمعآوری میشوند. برای مشاهده آنها روی View Output Files کلیک کنید.
شکل 5. نتایج اجرای آزمایشی