محطة اختبار OmniLab Android

OmniLab ATS هي أداة اختبار يمكن لمطوّري تطبيقات Android ومهندسي الاختبار استخدامها لتشغيل واجهة مستخدم لتشغيل مجموعات اختبار Android العادية، مثل مجموعة اختبار التوافق مع Android (CTS). تعمل هذه الأداة كواجهة ويب لفِرق عمل اختبار مختلفة، مثل Trade Federation (TF) و Google Mobly، ما يتيح لك إجراء اختبارات CTS و اختبارات الأجهزة المتعددة على مجموعة من الأجهزة الاختبارية باستخدام الحد الأدنى من الإعدادات، بالإضافة إلى وضع جدول زمني لإجراء الاختبارات باستمرار.

إعداد OmniLab ATS

يوضّح هذا القسم كيفية تثبيت OmniLab ATS وإعداده.

يستخدم OmniLab ATS رمز المصدر من المواقع الجغرافية التالية:

تثبيت OmniLab ATS

اتّبِع أي متطلبات للأجهزة والبرامج الخاصة بمجموعات الاختبارات التي تجريها.

يمكنك الاطّلاع على متطلبات CTS على source.android.com.

ما مِن متطلبات إضافية للأجهزة في OmniLab ATS، ولكننا ننصح باستخدام متطلّبات مضيف CTS كنقطة بداية.

هناك طريقتان لتثبيت OmniLab ATS:

التثبيت باستخدام برنامج التثبيت

في الإصدار 20.04 من Ubuntu والإصدارات الأحدث، يُثبِّت برنامج التثبيت جميع البرامج والموارد اللازمة لتشغيل 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 مع إصدارات Python من 3.7 إلى 3.11.

بالنسبة إلى Ubuntu 16.04 أو الإصدارات الأقدم، أضِف أولاً مستودع Python 3 من خلال تنفيذ أحد الإجراءين التاليين:

  • نفِّذ الأمر التالي:

    sudo add-apt-repository ppa:deadsnakes/ppa
    
  • أنشئ المستودع وثبِّته من المصدر.

لتثبيت Python 3، شغِّل هذه الأوامر:

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

لتثبيت إصدار معيّن من Python 3 (مثل 3.10)، شغِّل هذه الأوامر بدلاً من ذلك:

sudo apt-get update
sudo 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 آخر، يمكنك تحميل الملف لنسخ أي إعدادات تم تعديلها من ذلك المضيف من خلال النقر على الزر تحميل ملف.

استعادة النسخة الاحتياطية من الإعدادات

الشكل 1: استعادة نسخة احتياطية من الإعدادات

ضبط حساب الخدمة التلقائي

يمكنك ضبط حساب خدمة يستخدِمه OmniLab ATS تلقائيًا عند الوصول إلى مواردك (مثل Google Cloud Storage وGoogle Drive). لمصادقة حساب الخدمة، انقر على تحميل مفتاح حساب الخدمة واختَر ملف مفتاح JSON لحساب الخدمة.

ضبط حساب الخدمة

الشكل 2: ضبط حساب الخدمة

عند مصادقة حساب الخدمة بنجاح، يظهر عنوان البريد الإلكتروني للحساب في أعلى يسار الصفحة. لتغيير حساب الخدمة، انقر على اسم الحساب وأزِل الحساب التلقائي الحالي وحمِّل مفتاح حساب خدمة جديدًا.

تغيير حساب الخدمة

الشكل 3: تغيير حساب الخدمة

استيراد مجموعات الإعدادات

مجموعة الإعدادات هي حِزمة من الإعدادات لتشغيل مجموعات الاختبار، بما في ذلك إجراءات الأجهزة وقنوات الإصدار ذات الصلة. تتم استضافة مجموعات الإعدادات في حزمة معيّنة من Google Cloud Storage ‏ (GCS). بعد مصادقة قناة الإنشاء في GCS باستخدام حسابك على Google، ستظهر لك قائمة بجميع مجموعات الإعدادات المتاحة لك.

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

استيراد مجموعات الإعدادات

الشكل 4: استيراد مجموعة إعدادات

تضمين إعدادات Wi-Fi

تتطلّب بعض اختبارات CTS أن يكون جهازك متصلاً بنقطة اتصال Wi-Fi. لاختيار شبكة Wi-Fi، أدخِل معرّف SSID لشبكة Wi-Fi ومفتاح الالتقاط (PSK) لشبكة Wi-Fi الاختياري.

إعدادات Wi-Fi

الشكل 5: إعدادات نقطة اتصال Wi-Fi

بعد إكمال معالج الإعداد، تتم إعادة تحميل الصفحة مع تطبيق الإعدادات الجديدة.

ربط جهاز

يجب تفعيل ميزة "تصحيح أخطاء الجهاز عبر USB" لاستخدام جهاز لأغراض الاختبار. لتفعيل تصحيح الأخطاء:

  1. اتّبِع التعليمات الواردة في تفعيل خيارات المطوّرين و debugging.

  2. إذا كنت تخطّط لاستخدام إصدارات اختبارية من Android مُحمَّلة مسبقًا بمفاتيح ADB مخصّصة، ضَع ملفات .adb_key المخصّصة ضمن الدليل ~/.android/.

    يتم تحميل الملفات تلقائيًا ونقلها إلى أداة ADB لتفعيل تصحيح أخطاء USB تلقائيًا بعد إعادة تحميل البرامج الثابتة على الأجهزة التي تعمل بهذه الإصدارات.

  3. وصِّل الجهاز بالكمبيوتر المضيف باستخدام كابل USB.

    يظهر الجهاز في علامة التبويب "أجهزة OmniLab ATS" في غضون دقيقة واحدة بعد إعادة تحميل واجهة الويب. يمكنك أيضًا الاطّلاع على حالة الأجهزة في هذه علامة التبويب.

    ربط جهاز

    الشكل 6: ربط جهاز

حالات الجهاز المختلفة هي:

  • متاح: الجهاز متصل وجاهز لإجراء اختبار.
  • مخصّص: الجهاز متصل وجارٍ إجراء اختبار عليه. لا يمكن لكل جهاز إجراء اختبار واحد فقط في المرة الواحدة، لذا يجب أن ينتهي الجهاز من اختباره الحالي قبل إجراء اختبار جديد.

إجراء اختبار

اختيار اختبار

تأتي أداة OmniLab ATS مع مجموعة من إعدادات CTS المجمّعة مسبقًا. لإجراء أحد هذه الاختبارات، انتقِل إلى علامة التبويب "مجموعات الاختبارات" وانقر على تشغيل الاختبار للاختبار الذي اخترته.

اختيار اختبار

الشكل 7: اختيار اختبار

لتعديل اختبارات جديدة أو إضافتها، اطّلِع على إضافة اختبارات.

ضبط اختبار التنفيذ

عدِّل المَعلمات لاستخدامها في عملية إجراء الاختبار هذه. تتم تعبئة معظم المَعلمات مسبَقًا بالقيم المحدّدة في إعداد الاختبار المحدّد.

يمكن إكمال هذه الخطوة باستخدام القيم التلقائية، ولكن يمكنك تغيير أيٍّ من المَعلمات، مثل الحد الأقصى لإعادة المحاولة والأمر، بما يناسب احتياجاتك.

ضبط اختبار التنفيذ

الشكل 8: ضبط عملية تنفيذ اختبار

في ما يلي مَعلمات تشغيل الاختبار:

  • الاسم: اسم مجموعة الاختبار التي تريد تشغيلها.
  • عدد عمليات التشغيل: عدد المرات التي يجب تنفيذ عملية تشغيل الاختبار هذه فيها عند تحديد جدول زمني لها يتم تحديد موعد عمليات التشغيل التجريبية باستخدام Trade Federation، الذي يُجري ما يصل إلى 20 عملية تشغيل تجريبية بشكل متزامن إذا كانت هناك سعة لإجراء ذلك.
  • الحد الأقصى لمرات إعادة المحاولة: الحد الأقصى لعدد المرات التي يمكن فيها إعادة تشغيل اختبار في حال تعذّر تنفيذ اختبار واحد على الأقل. يتم ضبط هذا الإعداد عادةً على 4 إلى 6 محاولات لتشغيل مجموعة أدوات اختبار التوافق بالكامل بهدف معالجة الاختبارات غير المستقرة.
  • المهلة في "القائمة الانتظار": إذا ظلّت عملية تنفيذ الاختبار في الحالة في انتظار المراجعة لفترة طويلة جدًا، سيتم إلغاؤها تلقائيًا. حدِّد هنا المدة التي يجب الانتظار خلالها قبل الإلغاء. القيمة التلقائية هي 24 ساعة.
  • الأمر: هو الأمر الذي يتم من خلاله تشغيل مجموعة الاختبار. يمكنك إدخال وسيطات سطر أوامر إضافية هنا. على سبيل المثال، يمكنك تشغيل وحدة معيّنة في CTS 8.1 مع:

    cts-suite -m ShortModuleName
    
  • أمر إعادة المحاولة: هو الأمر لإعادة محاولة مجموعة اختبارات. يمكنك إضافة وسيطات سطر أوامر إضافية هنا. على سبيل المثال، لإعادة محاولة اختبار وحدة معيّنة فقط في CTS 8.1، استخدِم:

    cts --retry 0 -m ShortModuleName
    

    قد تختلف مَعلمات إعادة المحاولة عن تلك المتاحة مع الأمر الأوّلي، لذلك عليك التحقّق من المَعلمات المتوافقة على الموقع الإلكتروني الرسمي لسلسلة الاختبار المختارة.

  • تشغيل الاختبار السابق: إذا كنت تريد إعادة تشغيل اختبار سابق:

    • على الجهاز فقط: إذا تم بدء عملية التنفيذ على المضيف الحالي، أدخِل رقم تعريف عملية التنفيذ الذي يظهر عند عرض تفاصيل عملية التنفيذ.

      الاختبار السابق على الجهاز

      الشكل 9: عملية الاختبار السابقة على الجهاز

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

      التشغيل عن بُعد للاختبار السابق

      الشكل 10: تشغيل الاختبار السابق عن بُعد

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

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

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

الشكل 11: اختيار الأجهزة

لاختيار الأجهزة حسب سمات أخرى غير الأرقام التسلسلية للأجهزة، يمكنك يدوياً إدخال "مواصفات الجهاز". على سبيل المثال، لاختيار 3 أجهزة اسم منتجها "bramble"، أدخِل ما يلي:

product:bramble;product:bramble;product:bramble

السمات المتوافقة هي:

  • build_id
  • device_serial
  • device_type
  • hostname
  • المنتج
  • product_variant
  • sim_state

يجب أن تكون جميع الأجهزة المحدّدة في حالة متاحة لتنفيذ عملية التشغيل التجريبي، ويتم تبديلها جميعًا إلى الحالة مخصّصة عند تنفيذ عملية التشغيل التجريبي. تشير الحالة في انتظار المراجعة إلى أنّ عملية الاختبار في انتظار توفّر الأجهزة.

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

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

إجراءات الجهاز

الشكل 12: إجراءات الجهاز

لإضافة إجراء جهاز إلى عملية اختبار، انقر على إضافة إجراء جديد، واختَر مربعات الاختيار للإجراءات التي تريد إضافتها، ثم انقر على إضافة إجراءات. يتم تنفيذ إجراءات الجهاز بشكل تسلسلي. يمكنك إعادة ترتيب الإجراءات من خلال سحبها.

إضافة إجراءات

الشكل 13: إعادة ترتيب الإجراءات

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

مَراجع الاختبار هي الملفات المطلوبة لتنفيذ عملية اختبار. على سبيل المثال، يتطلب تشغيل CTS ملف android-cts*.zip، ويتطلب فلاش جهازٍ ما تقديم صورة الإصدار.

يجب أن يشير عنوان URL للتنزيل الخاص بملف zip لمجموعة الاختبار تلقائيًا إلى روابط Google Drive التي تم منحها للشركاء. يمكنك اختيار ملف مختلف بالنقر على تصفّح. في النافذة المنبثقة، يمكنك إدخال رابط لتنزيل ملف أو استخدام ملف من قناة إصدار مصادقة أو تحميل ملف لاستخدامه من مساحة التخزين على الجهاز.

مراجع الاختبار

الشكل 14: اختبار الموارد

في ما يلي النافذة المنبثقة لاختيار مورد اختبار من خلال عنوان URL للويب. يمكنك إدخال رابط عنوان URL للتنزيل، والنقر على الزر اختيار لتأكيد الاختيار.

أداة اختيار الموارد الاختبارية: عنوان URL للويب

الشكل 15: أداة اختيار الموارد الاختبارية: عنوان URL للويب

إذا حمّلت مواد مرجعية إلى Google Grive أو Google Cloud Storage (GCS) أو قنوات أخرى، يمكنك أيضًا الانتقال إلى علامة تبويب القناة المحدّدة واختيار المواد المرجعية هناك. في ما يلي مثال لاختيار مرجع من Google Drive.

أداة اختيار الموارد الاختبارية - Google Drive

الشكل 16: اختبار أداة اختيار الموارد - Google Drive

بالإضافة إلى اختيار الملفات فقط، يمكن أيضًا استخدام أحرف البدل في حقل اسم الملف. يمكن العثور على المستندات هنا.

أداة اختيار الموارد الاختبارية - إتاحة نمط أحرف البدل

الشكل 17: أداة اختيار الموارد الاختبارية: تتيح استخدام أنماط أحرف البدل.

يمكنك أيضًا اختيار ملف من مساحة تخزين الملفات المحلية في OmniLab ATS. يمكنك تحميل الملفات إلى مساحة التخزين هذه، أو استخدام الملفات والمجلدات المحلية مباشرةً.

أداة اختيار الموارد الاختبارية: "متجر الملفات المحلية"

الشكل 18: اختبار أداة اختيار الموارد: مساحة تخزين الملفات المحلية

إضافة إعدادات إعادة التشغيل

يمكنك جدولة عمليات إعادة تشغيل تبدأ بعد اكتمال عملية التشغيل الأساسية وتحميل نتائجها، ولكن يمكن أن تستخدم أجهزة أو إجراءات أو موارد مختلفة.

إضافة إعدادات إعادة التشغيل

الشكل 19: إضافة إعدادات إعادة التشغيل

بدء عملية اختبار

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

بدء التشغيل التجريبي

الشكل 20: بدء عملية اختبار

إنشاء خطة اختبار

تُستخدَم خطط الاختبار لإنشاء عمليات اختبار وفقًا لجدول زمني دوري. على سبيل المثال، تشغيل CTS 9.0 كل يوم في الساعة 5 مساءً لإنشاء خطة اختبار جديدة، انقر على إنشاء خطة اختبار جديدة.

إنشاء خطة اختبار

الشكل 21: إنشاء خطة اختبار

ضبط خطة الاختبار

أدخِل اسم خطة الاختبار وأي تصنيفات تريد إضافتها. بعد ذلك، اختَر جدولاً زمنيًا لاستخدامه.

  • يدوي: لا تنشئ خطة الاختبار عمليات اختبار إلا عندما ينقر المستخدم على تشغيل خطة الاختبار في صفحة قائمة خطط الاختبار.
  • متكرّر: تحدّد خطة الاختبار تلقائيًا جداول زمنية لمُجريات الاختبار في جدول زمني متكرّر تم اختياره. على سبيل المثال، جدولة عملية اختبار كل يوم عند الساعة 5:00 مساءً
  • مخصّص: تحدِّد خطة الاختبار تلقائيًا جداول زمنية لعمليات تنفيذ الاختبار استنادًا إلى تعبير cron الذي تم إدخاله. على سبيل المثال، لتحديد موعد لإجراء جولة اختبارية كل يوم في الساعة 5:00 مساءً، يكون تعبير cron هو 0 17 * * *.

ضبط "خطة الاختبار"

الشكل 22: ضبط خطة اختبار

إضافة مجموعات اختبار

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

ضبط اختبار التنفيذ

الشكل 23: ضبط عملية تنفيذ اختبار

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

أضِف إجراءات الجهاز التي تريد تنفيذها قبل كل عملية تشغيل اختبار. اطّلِع على إضافة إجراءات الجهاز لمزيد من التفاصيل.

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

الشكل 24: إضافة إجراءات الجهاز

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

تُعدّ إضافة موارد الاختبار إلى خطط الاختبار مماثلة لإضافة هذه الموارد إلى عمليات تنفيذ الاختبار الفردية. اطّلِع على إعداد موارد الاختبار للحصول على مزيد من التفاصيل.

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

الشكل 25: إعداد موارد الاختبار

عرض عمليات تنفيذ الاختبار

قائمة عمليات اختبار التنفيذ

اطّلِع على قائمة عمليات الاختبار المجدوَلة في صفحة "عمليات الاختبار". انقر على عرض لاطلاع على المزيد من التفاصيل عن عملية الاختبار.

يمكنك أيضًا فلترة القائمة من خلال إدخال سلسلة في شريط الفلترة و الضغط على مفتاح Enter. يمكنك استخدام فلاتر متعددة عن طريق فصلها باستخدام فاصلة. يعرض الفلتر جميع الصفوف التي تحتوي على النص نفسه (بدون مطابقة السلسلة الفرعية) في أي عمود، باستثناء الحالة وتم الإنشاء.

يعرض الفلتر الفارغ جميع الصفوف. لا تتوفّر حاليًا طريقة لفلترة الصفوف التي تحتوي على قيم فارغة.

قائمة عمليات التشغيل التجريبي

الشكل 26: قائمة عمليات التنفيذ التجريبية

تفاصيل اختبار التنفيذ

يمكنك الاطّلاع على تفاصيل عملية الاختبار هنا، مثل الحالة والسجلّات والنتائج.

تفاصيل الاختبار التجريبي

الشكل 27: تفاصيل التشغيل التجريبي

حالة اختبار التنفيذ

يظهر مستوى التقدّم في عملية إجراء الاختبار في قسم "الحالة". إذا كانت هناك رسالة ذات صلة، مثل مستوى التقدّم في عملية التنزيل أو سبب الإلغاء أو رسالة خطأ، يتم عرضها هنا أيضًا.

حالة الاختبار التجريبي

الشكل 28: حالة اختبار التنفيذ

حالات تنفيذ الاختبار هي:

  • في انتظار المراجعة: يتم تنزيل الموارد المطلوبة.
  • في انتظار المراجعة: الاختبار جاهز للتنفيذ عندما يصبح جهاز متاحًا.
  • جارٍ: يتم تشغيل الاختبار على جهاز مخصّص.
  • مكتمل: اكتمل الاختبار وتم تسجيل نتائجه.
  • مُلغى: ألغى المستخدم الاختبار أو انتهت مهلته أثناء محاولة العثور على الأجهزة المتاحة.
  • خطأ: حدث خطأ منَع تنفيذ الاختبار.

إلغاء عملية تشغيل تجريبية

إذا لم تكتمل عملية إجراء الاختبار، يمكنك إلغاؤها بالنقر على إلغاء ثم على نعم في مربّع حوار التأكيد. يتم أيضًا إلغاء عمليات تنفيذ الاختبار تلقائيًا إذا ظلّت في الحالة في انتظار المراجعة لفترة أطول من الحقل queue_timeout_seconds. قد يستغرق إلغاء عملية إجراء اختبار عندما تكون في حالة جارٍ بضع دقائق لكي يصبح ساريًا.

إلغاء التشغيل التجريبي

الشكل 29: إلغاء عملية اختبار

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

بعد انتهاء إجراء الاختبار، يتم جمع النتائج وعرضها. يمكنك عرض تفاصيل إضافية من خلال النقر على السهم لكلّ عملية تشغيل. انقر على عرض ملفّات المخرجات للاطّلاع على عناصر الاختبار التي تم جمعها، مثل test_result.xml و test_result_failures.html.

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

الشكل 30: نتائج اختبار التنفيذ

يمكنك الاطّلاع على سجلّات المضيف المباشر وTradefed في علامة التبويب "السجلّات".

سجلّات التشغيل التجريبي

الشكل 31: علامة التبويب "السجلّات"

تظهر نتائج الوحدات الفردية في علامة التبويب "نتائج الاختبار".

علامة التبويب "نتائج الاختبار"

الشكل 32: علامة التبويب "نتائج الاختبار"

يمكنك تنزيل الملفات المستخدَمة كموارد اختبار من خلال النقر على فتح في علامة التبويب موارد الاختبار.

علامة التبويب "موارد الاختبار"

الشكل 33: علامة التبويب "موارد الاختبار"

للاطّلاع على تفاصيل عملية إجراء الاختبار، مثل create_time، انتقِل إلى علامة التبويب "الإعداد".

علامة التبويب "إعدادات الاختبار"

الشكل 34: علامة التبويب "الإعداد"

الميزات المتقدمة

إدارة ملفات الإعدادات

يستخدم 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، يمكنك مشاركة الإعدادات مع مستخدمين آخرين من خلال تصديرها كملف. لإجراء ذلك، انتقِل إلى صفحة "الإعدادات" ثم انقر على تصدير في أعلى يسار الصفحة.

إدارة ملف الإعدادات

الشكل 35: إدارة ملفات الضبط

بعد تنزيل ملف الإعدادات، يمكنك مشاركته مع مستخدمين آخرين. يمكنهم إضافة ملف الإعداد إلى مثيل OmniLab ATS من خلال النقر على استيراد واختيار ملف الإعداد.

إنشاء إجراء جهاز جديد

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

علامة التبويب "إجراءات الجهاز"

الشكل 36: علامة التبويب "إجراءات الجهاز"

إضافة إجراء جديد للجهاز

  1. انقر على إجراء جهاز جديد.

    زر إجراء جديد للجهاز

    الشكل 37: زر إجراء الجهاز الجديد

  2. أدخِل اسمًا ووصفًا.

    اسم إجراء الجهاز

    الشكل 38: اسم إجراء الجهاز

  3. انقر على إضافة جهة إعداد الاستهداف.

  4. أدخِل اسم الفئة الكاملة لإعداد اتحاد التجارة، على سبيل المثال، com.android.tradefed.targetprep.RunHostCommandTargetPreparer.

    إضافة "معدّ الأهداف"

    الشكل 39: إضافة مُعدّ للأهداف

    يمكنك العثور على قائمة بأدوات إعداد الاستهداف المتاحة في مرجع com.android.tradefed.targetprep.

    قائمة جهات الإعداد المستهدَفة

    الشكل 40: قائمة المُعدّين المستهدفين

  5. أضِف أي خيارات لاستخدامها مع المُعدّ المستهدف. للاطّلاع على الخيارات المتاحة، تحقَّق targetprep من رمز المصدر لكل أداة إعداد الإصدار المستهدف في AOSP:

    مثال على خيار الإجراء

    الشكل 41: مثال على خيار إجراء

  6. لإضافة خيار، انقر على إضافة خيار لإعداد الاستهداف وأدخِل القيم المطلوبة.

    مثال على طلب إجراء

    الشكل 42: مثال على طلب إجراء

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

    مراجع اختبار الإجراءات

    الشكل 43: موارد اختبار الإجراءات

  8. انقر على تعديل.

    إجراء حفظ التغييرات

    الشكل 44: يؤدي اتخاذ إجراء إلى حفظ التغييرات.

إدارة الاختبارات

تعديل اختبار

لتعديل اختبار محفوظ، انتقِل إلى صفحة "الاختبارات" وانقر على تعديل في صف الاختبار الذي تريد تعديله. بعد تغيير إعدادات الاختبار، انقر على تعديل.

تعديل اختبار

الشكل 45: تعديل اختبار

إضافة اختبار جديد

لإضافة اختبار جديد، انتقِل إلى صفحة "الاختبارات" وانقر على إنشاء اختبار جديد. أدخِل المعلومات المناسبة وانقر على إنشاء.

إنشاء اختبار

الشكل 46: إنشاء اختبار

نسخ اختبار

الشكل 47: نسخ اختبار

تصدير إعدادات المضيف

بعد ضبط مضيف، يمكنك تصدير إعدادات المضيف إلى ملف. يمكنك تحميل هذا الملف إلى مضيفين آخرين لنسخ الإعدادات المحفوظة.

لتصدير إعدادات مضيف، انتقِل إلى صفحة "الإعدادات" وانقر على تصدير في أعلى يسار الصفحة.

تصدير إعدادات المضيف

الشكل 48: تصدير إعدادات مضيف

لاستيراد ملف إعدادات مضيف، انتقِل إلى صفحة "الإعدادات" وانقر على استيراد في أعلى يسار الصفحة.

استيراد إعدادات المضيف

الشكل 49: استيراد إعدادات مضيف

استخدام الملفات والأدلة المحلية

بدءًا من الإصدار R11، يمكن الوصول تلقائيًا إلى الملفات في الدليل $HOME/.ats_storage في OmniLab ATS. انسخ ملفًا أو انقل ملفًا إلى هذا الدليل، ثم يمكنك اختياره من علامة التبويب ملف محلي عند جدولة إجراء اختبار.

cp /path/to/file $HOME/.ats_storage

اختيار ملف على الجهاز

الشكل 50: اختيار ملف من دليل $HOME/.ats_storage

يمكنك ربط أدلة إضافية في مساحة تخزين الملفات المحلية باستخدام العلامة --mount_local_path.

mtt start --mount_local_path=/path/to/dir1 --mount_local_path=/path/to/dir2:renamed_dir2

الأدلة المثبَّتة الإضافية

الشكل 51: أدلة إضافية تم تركيبها في مساحة تخزين الملفات المحلية

تفعيل وضع المضيفين المتعدّدين

باستخدام وضع "المضيفون المتعدّدون"، يمكن للمستخدمين استخدام مضيف واحد لوحدة التحكّم في ATS لإدارة الأجهزة والاختبارات على مضيفي عامل ATS المتعدّدين.

بنية وضع المضيفات المتعددة

الشكل 52: بنية وضع المضيفات المتعددة

  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.

  1. اربط المضيفَين باستخدام قنوات SSH. اختَر منافذ للمنفذَين الأساسي وخادم الملفات، على سبيل المثال، 9000 و9006.

    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 يتم تشغيلها كل ساعة لتنظيف الملفات استنادًا إلى الإعدادات التي يحدّدها المستخدم. تتضمّن أداة ATS إعدادَين تلقائيَين لأرشفة نتائج اختبارات التحميل وحذف الملفات المؤقتة. يوضّح هذا الدليل كيفية تخصيص السياسات والإعدادات لإدارة ملفاتك بفعالية.

السياسات

تحدِّد السياسة العملية التي سيتم تنفيذها على الملفات أو الأدلة، و المعايير لاختيار الاستهدافات. تظهر العمليات المتاحة في الجدول:

نوع العمليةالمعلمات
ARCHIVEremove_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 لمطابقة رموز منطقة النتائج.
SYSTEM_AVAILABLE_SPACEبدء الإجراءات استنادًا إلى المساحة المتوفّرة على النظامthreshold: بدء الإجراء عندما تنخفض المساحة المتوفّرة إلى ما دون الحدّ الأدنى، على سبيل المثال، 200(ب)، 200KB، 200MB، 200GB، 2TB.

سياسة جديدة لتطبيق "منظف الملفات"

الشكل 53: أضِف سياسة جديدة لتنظيف الملفات.

الإعدادات

تجمع ملف الإعدادات سياسة واحدة أو أكثر مع أدلة معيّنة. تتم معالجة الملفات والدلائل في الأدلة المحدّدة استنادًا إلى السياسات المحدّدة. يتم تطبيق السياسات بالترتيب الذي تظهر به في الإعدادات.

يجب أن تكون جميع الأدلة المستهدَفة موجودة ضمن الدليل /data. إذا كانملف الإعدادات يحدّد الدليل المستهدَف على أنّه logs، سيتم تفسيره على أنّه /data/logs.

تعديل إعدادات "منظف الملفات"

الشكل 54: عدِّل إعدادات "منظف الملفات".

إعادة الضبط

يؤدي النقر على إعادة ضبط الإعدادات إلى إعادة ضبط إعدادات "منظف الملفات" إلى حالتها التلقائية. يؤدي هذا الإجراء إلى محو جميع العناصر المخصّصة.

إعادة ضبط إعدادات "منظف الملفات"

الشكل 55: إعادة ضبط إعدادات "منظف الملفات"

الدعم

تقارير الأخطاء

تساعد مساهمتك في OmniLab ATS في تحسين تطوير الأداة، و نريد معرفة ملاحظاتك. اطّلِع على ملاحظات إصدار OmniLab ATS للحصول على تفاصيل عن أحدث إصدار. للإبلاغ عن أخطاء أو تقديم اقتراحات، قدِّم تقريرًا عن الخطأ. على الشركاء الإبلاغ عن الأخطاء أو تقديم الاقتراحات باستخدام قنواتهم.