الأجهزة الافتراضية في "محطة اختبار Android"

تتوافق محطة اختبار Android مع أجهزة الحبار الافتراضية التي تتيح لك إجراء الاختبارات بدون استخدام أجهزة Android. يُعد الحبار مناسبًا لاختبار الوظائف المستقلة عن الأجهزة. قبل بدء استخدام الأجهزة الافتراضية، يُرجى اتّباع دليل المستخدم لتثبيت Android Test Station.

تتوافق خدمة ATS مع الأجهزة الافتراضية في وضعَين، أحدهما على الجهاز والآخر عن بُعد. يقدِّم الجدول التالي مقارنة بين الوضعين.

الأجهزة الافتراضية المحلية الأجهزة الافتراضية عن بُعد
التشغيل على مضيفي عامل تشغيل ATS يعمل على المضيفات البعيدة التي يمكن لمضيفي خدمات ATS الوصول إليها عبر بروتوكول النقل الآمن
مستندة إلى x86 قد يكون بتنسيق x86 أو ARM بناءً على بنية المضيفين
سهولة أكبر في الإعداد أكثر تعقيدًا في عملية الإعداد

يمكن تفعيل الأجهزة الافتراضية المحلية والبعيدة بشكل مستقل. للحصول على تفاصيل حول كل وضع، يمكنك الاطّلاع على ما يلي:

إعداد الأجهزة الافتراضية المحلية

يصف هذا القسم خطوات إعداد ميزة "تحويل الصوت إلى كلام" (ATS) للأجهزة الافتراضية المحلية.

تثبيت تبعيات الحبار

شغِّل الأمر التالي للتأكد من تحميل وحدات النواة اللازمة:

sudo modprobe -a kvm tun vhost_net vhost_vsock

شغِّل محطة اختبار Android باستخدام الأجهزة الافتراضية المحلية.

قبل بدء تشغيل ATS، تأكَّد من إيقاف كل مثيلات للحبار. تعمل خدمة ATS على تشغيل الأجهزة الافتراضية وإيقافها تلقائيًا خلال دورة الاختبار، وتتعارض مثيلات The Cuttlefish مع المثيلات التي يديرها ATS. للحصول على تفاصيل حول كيفية إيقاف حالات حماية حيوانات الحبار، يُرجى الاطّلاع على إيقاف الحبار.

لتفعيل الأجهزة الافتراضية المحلية، شغِّل:

mtt start --max_local_virtual_devices N

N هو الحد الأقصى لعدد الأجهزة الافتراضية التي يمكن لخدمة ATS تخصيصها في الوقت نفسه. الرقم الافتراضي هو 0.

إذا تعذّر الأمر بسبب عدم توفّر عُقد الجهاز، اتّبِع الخطوات الواردة في رسالة الخطأ لتحميل وحدات النواة. فإذا استمر حدوث الفشل، فأعد تشغيل الجهاز.

إعداد الأجهزة الافتراضية البعيدة

يصف هذا القسم خطوات إعداد ميزة "تحويل الصوت إلى نص" للأجهزة الافتراضية البعيدة.

تثبيت تبعيات الحبار

لتثبيت تبعيات الحبار، اتبع هذه الخطوات.

  1. ثبِّت حزم Debian على المضيف البعيد من خلال اتّباع الخطوات الواردة في المقالة حبت > البدء.

  2. يمكنك ضبط الحدّ الأقصى لعدد الأجهزة الافتراضية على المضيف البعيد من خلال اتّباع الخطوات التالية:

    1. تعديل /etc/default/cuttlefish-host-resources مع امتياز الجذر.
    2. يمكنك ضبط num_cvd_accounts على الحد الأقصى لعدد الأجهزة الافتراضية المسموح بها على هذا المضيف.
    3. تشغيل sudo systemctl restart cuttlefish-host-resources
    4. شغِّل ifconfig وتحقَّق من عدد واجهات cvd-wtap-*.

إنشاء حساب بروتوكول النقل الآمن (SSH)

نظرًا لاتصال مضيف ATS بالمضيف البعيد من خلال SSH، يجب إعداد حساب SSH على المضيف البعيد. بينما تعالج خدمة ATS الملفات في دليل الصفحة الرئيسية، ننصحك بإنشاء حساب مخصّص لها.

يتطلب مضيف ATS مفتاحَي SSH لتسجيل الدخول إلى المضيف البعيد بدون كلمة مرور. تصف الخطوات التالية كيفية إعداد مفاتيح SSH:

  1. لإنشاء مفتاح خاص ومفتاح عام، عليك تشغيل ssh-keygen على مضيف ATS.
  2. حمِّل المفتاح العام وألحقه بـ ~/.ssh/authorized_keys على المضيف البعيد.

إذا كان حساب بروتوكول النقل الآمن (SSH) مختلفًا عن الحساب المستخدَم لتثبيت تبعيات Cuttlefish، للسماح لحساب SSH بتشغيل Cuttlefish، شغِّل هذا الأمر على المضيف البعيد:

sudo usermod -aG kvm,cvdnetwork,render $USER

تشغيل ATS باستخدام أجهزة افتراضية بعيدة

قبل بدء تشغيل ATS، تأكَّد من إيقاف كل مثيلات للحبار. تعمل خدمة ATS على تشغيل الأجهزة الافتراضية وإيقافها تلقائيًا خلال دورة الاختبار، وتتعارض مثيلات The Cuttlefish مع المثيلات التي يديرها ATS. للحصول على تفاصيل حول كيفية إيقاف حالات حماية حيوانات الحبار، يُرجى الاطّلاع على إيقاف الحبار.

للحصول على أداء أفضل، نوصي بإعداد مضيف ATS والمضيف البعيد في شبكة المنطقة المحلية.

لتفعيل الأجهزة الافتراضية عن بُعد، شغِّل هذا الأمر على مضيف ATS:

mtt start --remote_virtual_devices USER@HOST/N \
--remote_ssh_key KEY

USER هو اسم حساب بروتوكول النقل الآمن (SSH).

HOST هو عنوان IPv4 للمضيف البعيد.

N هو الحد الأقصى لعدد الأجهزة الافتراضية التي يمكن لخدمة ATS تخصيصها في الوقت نفسه.

KEY هو المسار إلى مفتاح SSH الخاص على مضيف ATS.

يختبر الأمر الاتصال بالمضيف البعيد قبل بدء تشغيل ATS. وإذا ظهرت رسالة تحذير مثل The specified --remote_virtual_devices and --remote_ssh_key are invalid. على وحدة التحكّم، عليك التحقّق من إعداد بروتوكول النقل الآمن (SSH).

لتجنب التعارضات في الموارد، يمكن لمضيف ATS الاتصال بمضيف بعيد واحد على الأكثر. لا يمكن للعديد من مضيفي ATS الاتصال بمضيف بعيد واحد في الوقت نفسه.

إجراء اختبار باستخدام الأجهزة الافتراضية

يصف هذا القسم خطوات إجراء اختبار على الأجهزة الافتراضية المحلية أو عن بُعد.

اختيار الأجهزة

في قائمة الأجهزة، تعرض تقنية ATS الأجهزة الافتراضية كعناصر نائبة بدلاً من أرقامها التسلسلية الفعلية. يتم عرض العناصر النائبة بتنسيق HOSTNAME:local-virtual-device-ID للأجهزة الافتراضية المحلية؛ remote-virtual-ADDRESS-ID للأجهزة الافتراضية البعيدة. الحالات التي تكون فيها إما متاحة أو مخصّصة. يشير العنصر النائب في الحالة متوفّر إلى أنّ الجهاز الافتراضي ليس قيد التشغيل ويمكن تخصيصه للاختبار.

اختيار الأجهزة الافتراضية

الشكل 1. جارٍ اختيار الأجهزة الافتراضية

إضافة إجراءات الجهاز

إذا اخترت جهازًا افتراضيًا واحدًا على الأقل، ينبغي إضافة إجراء الجهاز المرتبط إلى القائمة تلقائيًا. يتكون الإجراء من معلمات التجارة الحرة المطلوبة وموارد الاختبار لإنشاء أجهزة افتراضية.

إجراءات الجهاز الافتراضي المحلي

الشكل 2. إجراءات الجهاز للأجهزة الافتراضية المحلية

إجراءات الجهاز الافتراضي البعيد

الشكل 3. إجراءات الأجهزة على الأجهزة الافتراضية البعيدة

ضبط موارد الاختبار

تتطلّب أجهزة حبَّار الافتراضية ثلاثة موارد اختبار، وهي أدوات الآلة الافتراضية والصور، وAcloud. في الإصدار النموذجي من حبَّار (على سبيل المثال، aosp_cf_x86_64_phone على ci.android.com )، تتم تعبئة أدوات الآلة الافتراضية في cvd-host_package.tar.gz، والصور متوفّرة في aosp_cf_x86_64_phone-img-*.zip. تم تضمين البرنامج الثنائي Acloud في نظام ATS ويتوافق مع جميع إصدارات الحبار. لا يجب تغيير عنوان URL التلقائي للتنزيل الخاص ببرنامج Acloud الثنائي إلا لأغراض تصحيح الأخطاء.

المَراجع الخاصة باختبار الأجهزة الافتراضية

الشكل 4. اختبار المراجع للأجهزة الافتراضية

عرض عمليات الاختبار

يتم جمع سجلّات الجهاز، بما في ذلك kernel.log وhost_log.txt وlauncher.log في مجلد ملفات المخرجات. انقر على عرض ملفات الإخراج للاطّلاع عليها.

نتائج تشغيل الاختبار

الشكل 5. نتائج اختبار التنفيذ