OmniLab ATS هي أداة اختبار يمكن لمطوّري تطبيقات Android ومهندسي الاختبار استخدامها لتشغيل واجهة مستخدم لتشغيل مجموعات اختبار Android العادية، مثل مجموعة اختبار التوافق مع Android (CTS). تعمل هذه الأداة كواجهة ويب لفِرق عمل اختبار مختلفة، مثل Trade Federation (TF) و Google Mobly، ما يتيح لك إجراء اختبارات CTS و اختبارات الأجهزة المتعددة على مجموعة من الأجهزة الاختبارية باستخدام الحد الأدنى من الإعدادات، بالإضافة إلى وضع جدول زمني لإجراء الاختبارات باستمرار.
إعداد OmniLab ATS
يوضّح هذا القسم كيفية تثبيت OmniLab ATS وإعداده.
يستخدم OmniLab ATS رمز المصدر من المواقع الجغرافية التالية:
- رمز مصدر OmniLab ATS
- رمز المصدر TradeFed Cluster
تثبيت OmniLab ATS
اتّبِع أي متطلبات للأجهزة والبرامج الخاصة بمجموعات الاختبارات التي تجريها.
يمكنك الاطّلاع على متطلبات CTS على source.android.com.
ما مِن متطلبات إضافية للأجهزة في OmniLab ATS، ولكننا ننصح باستخدام متطلّبات مضيف CTS كنقطة بداية.
هناك طريقتان لتثبيت OmniLab ATS:
- شغِّل برنامج التثبيت.
- تثبيته يدويًا، ما يتطلّب تثبيت عدة برامج وموارد
التثبيت باستخدام برنامج التثبيت
في الإصدار 20.04 من Ubuntu والإصدارات الأحدث، يُثبِّت برنامج التثبيت جميع البرامج والموارد اللازمة لتشغيل OmniLab ATS ويضبطها.
لاستخدام برنامج التثبيت:
شغِّل برنامج التثبيت:
curl https://storage.googleapis.com/android-mtt.appspot.com/prod/install.sh | bash
شغِّل
mtt version
للتحقّق من الإصدار المثبّت من OmniLab ATS CLI.
التثبيت يدويًا
تثبيت Docker
اتّبِع تعليمات تثبيت Docker Community Edition (CE) على جهاز Linux.
قد تحتاج إلى إعادة تشغيل نافذة المحطة الطرفية أو تسجيل الخروج وتسجيل الدخول مرة أخرى لكي تسري تغييرات الأذونات.
تثبيت 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 الاختياري.
الشكل 5: إعدادات نقطة اتصال Wi-Fi
بعد إكمال معالج الإعداد، تتم إعادة تحميل الصفحة مع تطبيق الإعدادات الجديدة.
ربط جهاز
يجب تفعيل ميزة "تصحيح أخطاء الجهاز عبر USB" لاستخدام جهاز لأغراض الاختبار. لتفعيل تصحيح الأخطاء:
اتّبِع التعليمات الواردة في تفعيل خيارات المطوّرين و debugging.
إذا كنت تخطّط لاستخدام إصدارات اختبارية من Android مُحمَّلة مسبقًا بمفاتيح ADB مخصّصة، ضَع ملفات
.adb_key
المخصّصة ضمن الدليل~/.android/
.يتم تحميل الملفات تلقائيًا ونقلها إلى أداة ADB لتفعيل تصحيح أخطاء USB تلقائيًا بعد إعادة تحميل البرامج الثابتة على الأجهزة التي تعمل بهذه الإصدارات.
وصِّل الجهاز بالكمبيوتر المضيف باستخدام كابل 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 للتنزيل، والنقر على الزر اختيار لتأكيد الاختيار.
الشكل 15: أداة اختيار الموارد الاختبارية: عنوان URL للويب
إذا حمّلت مواد مرجعية إلى Google Grive أو Google Cloud Storage (GCS) أو قنوات أخرى، يمكنك أيضًا الانتقال إلى علامة تبويب القناة المحدّدة واختيار المواد المرجعية هناك. في ما يلي مثال لاختيار مرجع من 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: علامة التبويب "إجراءات الجهاز"
إضافة إجراء جديد للجهاز
انقر على إجراء جهاز جديد.
الشكل 37: زر إجراء الجهاز الجديد
أدخِل اسمًا ووصفًا.
الشكل 38: اسم إجراء الجهاز
انقر على إضافة جهة إعداد الاستهداف.
أدخِل اسم الفئة الكاملة لإعداد اتحاد التجارة، على سبيل المثال،
com.android.tradefed.targetprep.RunHostCommandTargetPreparer
.الشكل 39: إضافة مُعدّ للأهداف
يمكنك العثور على قائمة بأدوات إعداد الاستهداف المتاحة في مرجع com.android.tradefed.targetprep.
الشكل 40: قائمة المُعدّين المستهدفين
أضِف أي خيارات لاستخدامها مع المُعدّ المستهدف. للاطّلاع على الخيارات المتاحة، تحقَّق targetprep من رمز المصدر لكل أداة إعداد الإصدار المستهدف في AOSP:
الشكل 41: مثال على خيار إجراء
لإضافة خيار، انقر على إضافة خيار لإعداد الاستهداف وأدخِل القيم المطلوبة.
الشكل 42: مثال على طلب إجراء
حدِّد موارد الاختبار اللازمة لتنفيذ إجراء الجهاز، مثلاً، إنشاء صور لفلاشها. لإضافة تعريف مورد، انقر على إضافة مورد اختبار واملأ الحقول المطلوبة. إذا كنت تعرف مكان ملفاتك، يمكنك تقديم عنوان URL تلقائي للتنزيل من خلال النقر على تصفّح. إذا كان المُعدّون المستهدَفون يقبلون استخدام الدليل كمصدر اختبار، اختَر إزالة الضغط. بعد ذلك، حدِّد الدليل النسبي الوجهة ضمن دليل العمل المؤقت وأسماء الملفات التي سيتم إزالة ضغطها. في حال عدم تقديم أسماء ملفات، تتم إزالة ضغط جميع الملفات من مورد الاختبار.
الشكل 43: موارد اختبار الإجراءات
انقر على تعديل.
الشكل 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: بنية وضع المضيفات المتعددة
لبدء وحدة تحكّم ATS، استخدِم الأمر التالي:
mtt start --operation_mode=ON_PREMISE
تأكَّد من إمكانية الوصول إلى وحدة التحكّم على العنوان
http://${CONTROLLER_HOSTNAME}:8000
.لبدء وحدات العمل، استخدِم الأمر التالي:
mtt start --control_server_url=http://CONTROLLER_HOSTNAME:8000 --operation_mode=ON_PREMISE
إذا كانت شبكتك لا تسمح للخوادم بالتواصل مع بعضها، عليك اتّباع تعليمات الإعداد الأكثر تقدمًا أدناه في عامل ATS.
اربط المضيفَين باستخدام قنوات SSH. اختَر منافذ للمنفذَين الأساسي وخادم الملفات، على سبيل المثال، 9000 و9006.
ssh -L ATS_PORT:localhost:8000 -L FS_PORT:localhost:8006 CONTROLLER_HOSTNAME
اضبط ميزة "التسويف الذكي للإعلانات" وابدأ استخدامها.
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 إعدادَين تلقائيَين لأرشفة نتائج اختبارات التحميل وحذف الملفات المؤقتة. يوضّح هذا الدليل كيفية تخصيص السياسات والإعدادات لإدارة ملفاتك بفعالية.
السياسات
تحدِّد السياسة العملية التي سيتم تنفيذها على الملفات أو الأدلة، و المعايير لاختيار الاستهدافات. تظهر العمليات المتاحة في الجدول:
نوع العملية | المعلمات |
---|---|
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 لمطابقة رموز منطقة النتائج. |
SYSTEM_AVAILABLE_SPACE | بدء الإجراءات استنادًا إلى المساحة المتوفّرة على النظام | threshold : بدء الإجراء عندما تنخفض المساحة المتوفّرة إلى ما دون الحدّ الأدنى، على سبيل المثال، 200 (ب)، 200KB ، 200MB ، 200GB ، 2TB . |
الشكل 53: أضِف سياسة جديدة لتنظيف الملفات.
الإعدادات
تجمع ملف الإعدادات سياسة واحدة أو أكثر مع أدلة معيّنة. تتم معالجة الملفات والدلائل في الأدلة المحدّدة استنادًا إلى السياسات المحدّدة. يتم تطبيق السياسات بالترتيب الذي تظهر به في الإعدادات.
يجب أن تكون جميع الأدلة المستهدَفة موجودة ضمن الدليل /data
. إذا كانملف الإعدادات يحدّد الدليل المستهدَف على أنّه logs
، سيتم تفسيره على أنّه
/data/logs
.
الشكل 54: عدِّل إعدادات "منظف الملفات".
إعادة الضبط
يؤدي النقر على إعادة ضبط الإعدادات إلى إعادة ضبط إعدادات "منظف الملفات" إلى حالتها التلقائية. يؤدي هذا الإجراء إلى محو جميع العناصر المخصّصة.
الشكل 55: إعادة ضبط إعدادات "منظف الملفات"
الدعم
تقارير الأخطاء
تساعد مساهمتك في OmniLab ATS في تحسين تطوير الأداة، و نريد معرفة ملاحظاتك. اطّلِع على ملاحظات إصدار OmniLab ATS للحصول على تفاصيل عن أحدث إصدار. للإبلاغ عن أخطاء أو تقديم اقتراحات، قدِّم تقريرًا عن الخطأ. على الشركاء الإبلاغ عن الأخطاء أو تقديم الاقتراحات باستخدام قنواتهم.