يتيح OmniLab ATS استخدام الأجهزة الافتراضية Cuttlefish التي تتيح لك إجراء الاختبارات بدون أجهزة Android فعلية. إنّ Cuttlefish مناسب لاختبار الوظائف غير المستندة إلى الأجهزة. قبل البدء في استخدام الأجهزة الافتراضية، اتّبِع دليل المستخدم لتثبيت OmniLab ATS.
يتوافق تطبيق OmniLab ATS مع الأجهزة الافتراضية في وضعَين، أحدهما على الجهاز والآخر عن بُعد. يقدّم الجدول التالي مقارنة بين الوضعَين.
الأجهزة الافتراضية المحلية | الأجهزة الافتراضية البعيدة |
---|---|
يتم تشغيله على مضيفي عامل ATS | يتم تشغيله على مضيفين عن بُعد يمكن لمضيفي عامل ATS الوصول إليهم من خلال بروتوكول النقل الآمن (SSH) |
مستندة إلى x86 | يمكن أن يكون x86 أو ARM استنادًا إلى بنية المضيفين |
سهولة أكبر في الإعداد | عملية الإعداد أكثر تعقيدًا |
يمكن تفعيل الأجهزة الافتراضية المحلية والبعيدة بشكلٍ مستقل. لمعرفة تفاصيل عن كل وضع، يُرجى الاطّلاع على:
إعداد الأجهزة الافتراضية المحلية
يصف هذا القسم خطوات إعداد OmniLab ATS للأجهزة الافتراضية المحلية.
تثبيت تبعيات الحبار
شغِّل الأمر التالي للتأكّد من تحميل وحدات kernel اللازمة:
sudo modprobe -a kvm tun vhost_net vhost_vsock
ابدأ تشغيل تكنولوجيا OmniLab ATS باستخدام الأجهزة الافتراضية المحلية
قبل بدء OmniLab ATS، تأكَّد من إيقاف جميع نُسخ Cuttlefish. يطلق OmniLab ATS الأجهزة الافتراضية ويوقفها تلقائيًا خلال دورة الاختبار، وتتعارض مثيلات الحبار الحالية مع المثيلات التي يديرها OmniLab ATS. للحصول على تفاصيل حول كيفية إيقاف تصرفات الحبار، يُرجى الاطّلاع على إيقاف الحبار.
لتفعيل الأجهزة الافتراضية المحلية، شغِّل:
mtt start --max_local_virtual_devices N
N
هو الحد الأقصى لعدد الأجهزة الافتراضية التي يمكن لـ OmniLab ATS تخصيصها في الوقت نفسه. العدد التلقائي هو 0.
إذا تعذّر تنفيذ الأمر بسبب عدم توفّر عقد الجهاز، اتّبِع الخطوات الواردة في رسالة الخطأ لتحميل وحدات kernel. إذا استمرت المشكلة، يُرجى إعادة تشغيل الجهاز.
إعداد الأجهزة الافتراضية عن بُعد
يصف هذا القسم خطوات إعداد OmniLab ATS للأجهزة الافتراضية البعيدة.
تثبيت تبعيات Cuttlefish
لتثبيت متطلّبات Cuttlefish، اتّبِع الخطوات التالية:
ثبِّت حزم Debian على المضيف البعيد من خلال اتّباع الخطوات الواردة في القسم حبت > البدء.
يمكنك ضبط الحدّ الأقصى لعدد الأجهزة الافتراضية على المضيف البعيد من خلال اتّباع الخطوات التالية:
- عدِّل
/etc/default/cuttlefish-host-resources
باستخدام امتياز الجذر. - اضبط
num_cvd_accounts
على الحد الأقصى لعدد الأجهزة الافتراضية التي تريد السماح بها على هذا المضيف. - شغِّل
sudo systemctl restart cuttlefish-host-resources
. - شغِّل
ifconfig
وتأكَّد من عدد واجهاتcvd-wtap-*
.
- عدِّل
إنشاء حساب SSH
لأن مضيف OmniLab ATS يتصل بالمضيف البعيد من خلال بروتوكول النقل الآمن (SSH)، يجب إعداد حساب SSH على المضيف البعيد. وبما أنّ OmniLab ATS يعالج الملفات في دليل الصفحة الرئيسية، ننصحك بإنشاء حساب مخصّص.
يتطلب مضيف 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 للأجهزة الافتراضية البعيدة. تكون الحالات إما متوفّرة أو مخصّصة. يشير العنصر النائب في حالة متاح إلى أنّ الجهاز الافتراضي غير مفعّل ويمكن تخصيصه للاختبار.
الشكل 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 الثنائي إلا لأغراض debugging.
الشكل 4. اختبار موارد الأجهزة الافتراضية
عرض عمليات تنفيذ الاختبار
يتم جمع سجلات الجهاز، بما في ذلك kernel.log
وhost_log.txt
وlauncher.log
،
في مجلد ملف الإخراج. انقر على عرض ملفات الإخراج للاطّلاع عليها.
الشكل 5: نتائج التشغيل التجريبي