دمج مركز الاختبار الافتراضي في نظام CI/CD

1- مقدمة

تاريخ آخر تعديل: 2022-04-07

كيفية إجراء اختبارات الجوّال باستخدام أنظمة CI/CD

قد يكون إجراء اختبارات الأجهزة الجوّالة أمرًا صعبًا، إذ تعمل العديد من التطبيقات على أنظمة أساسية وأجهزة وإصدارات مختلفة من واجهة برمجة التطبيقات. يريد مطوّرو التطبيقات اختبار أكبر عدد ممكن من الإعدادات لرصد المشاكل قبل إجراء المستخدمين لها. ومع ذلك، فإنّ قيود التكلفة والموارد تحدّ من عدد الأجهزة الاختبارية ومقدار الصيانة اليدوية التي يمكن للمطوّرين الفرديين الاستثمار فيها. عند توسع عملية التطوير، خاصةً مع أنظمة التكامل/التطوير المستمر (CI/CD)، يجب إجراء عملية الاختبار بشكل آلي مع تقليل التكلفة وجهد الصيانة.

لمساعدتك في التعرّف على مستوى أداء التطبيقات في حسابات المستخدمين الأجهزة، يستضيف مركز الاختبار الافتراضي لمنصة Firebase مجموعة من الأجهزة المادية والافتراضية للأجهزة الجوّالة في مراكز البيانات التابعة لنا. نقدّم أيضًا Google Cloud CLI، وهو أداة سطر أوامر مستقلة تنظِّم عمليات إجراء الاختبارات على الأجهزة في مراكز البيانات. يسهِّل gcloud CLI دمج حل الاختبار المستند إلى السحابة الإلكترونية من Test Lab في سير عمل CI/CD الحالي.

الدعم من عدّة منصات

يوفّر مركز Test Lab حلولاً لاختبار تطبيقات Android وiOS ودعمًا متخصّصًا في الألعاب على الأجهزة الجوّالة مثل Unity. تغطي خيارات الاختبار أطر عمل الاختبار الشائعة، مثل Android Espresso وUI Automator وiOS XCTest. وباستخدام الزاحف الآلي Robo، يمكن لمنصة Test Lab إجراء الاختبارات بدون أي رمز اختبار.

ما مِن متطلبات للأجهزة

يستضيف Test Lab أجهزة مادية في مراكز بيانات Google، كما يستضيف أجهزة افتراضية في Google Cloud. ما عليك سوى إرسال اختباراتك إلى مركز الاختبار الافتراضي وانتظار النتائج.

سريع وموثوق

قد يستغرق تشغيل العديد من حالات الاختبار المتزامنة وقتًا طويلاً، مما يمنع عمليات CI/CD. ومن خلال Test Lab، يمكنك بسهولة تجزئة الاختبارات وتنفيذها على عدة أجهزة بالتوازي. يمكنك أيضًا اكتشاف التقشر، وهي مشكلة شائعة في اختبار الأجهزة المحمولة.

المعلومات التي ستطّلع عليها

  • طريقة إنشاء عناصر الاختبار
  • كيفية إجراء اختبار على الأجهزة الجوّالة باستخدام gcloud CLI
  • طريقة إعداد Jenkins CI
  • طريقة إجراء اختبارات الأجهزة الجوّالة باستخدام Jenkins CI
  • طريقة إعداد الاختبارات لتوسيع نطاقها باستخدام أنظمة CI

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

المتطلبات

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

2- إجراء اختبار باستخدام gcloud CLI

إنشاء حِزمة APK لتطبيقات Android وحِزم APK للاختبار

لإجراء اختبار باستخدام Test Lab، ابدأ بإنشاء حزمة APK لتطبيق Android وحزمة APK للاختبار تحتوي على اختبارات آلية لتشغيلها على الأجهزة أو أدوات المحاكاة. إذا كان لديك قاعدة رموز تعمل بشكلٍ سليم، يمكنك إنشاء حِزم APK خاصة بك أو يمكنك استخدام BasicSample for Espresso.

لإنشاء حِزم APK باستخدام أوامر Gradle، يجب تثبيت حزمة تطوير البرامج (SDK) لنظام التشغيل Android. إذا لم يكن "استوديو Android" مثبّتًا على جهازك، ثبِّت "استوديو Android" و"حزمة تطوير البرامج (SDK) لنظام التشغيل Android"، واضبط بيئة ANDROID_HOME باستخدام دليل حزمة تطوير البرامج (SDK) لنظام التشغيل Android. على سبيل المثال، في ملف ~/.bash_profile، أضِف السطر التالي:

export ANDROID_HOME=~/Android/Sdk # For linux
export ANDROID_HOME=~/Library/Android/sdk  # For MacOS

بعد ذلك، شغِّل الأوامر التالية لاستنباط الرمز البرمجي وإنشاء حِزم APK:

git clone https://github.com/android/testing-samples.git
cd testing-samples/ui/espresso/BasicSample/
./gradlew assembleDebug  # for generating app apk
./gradlew assembleDebugAndroidTest # for generating testing apk

بعد تشغيل أوامر النسخ الاحتياطي والإنشاء، يمكنك العثور على حِزمة APK للتطبيق وحِزمة APK للاختبار في المواقع الجغرافية التالية:

app/build/outputs/apk/debug/app-debug.apk
app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk

بدلاً من ذلك، يمكنك استخدام الخيارات التالية للحصول على الاختبار وحِزم APK للتطبيق:

  • لإنشاء حِزم APK في "استوديو Android"، اتّبِع التعليمات الواردة في مقالة الاختبار في "استوديو Android".
  • نزِّل نموذج تطبيق Notepad. استخدام الملف الثنائي app-debug-unaligned.apk وملف اختبارات الأدوات app-debug-test-unaligned.apk، اللذين يتوفّران في NotePad/app/build/outputs/apk/.

إذا كان لديك رمز مصدر صالح لأحد تطبيقات iOS، يمكنك كتابة XCTest وإنشاء ملف ZIP من التطبيق والاختبارات.

استخدام gcloud CLI لإجراء اختبار من خلال Test Lab

في هذا القسم، يمكنك إنشاء مشروع على Firebase وإعداد بيئة Google Cloud SDK المحلية. لمزيد من المعلومات، يُرجى الاطّلاع على بدء الاختبار باستخدام gcloud CLI .

إعداد واجهة سطر الأوامر في gcloud

  1. نزِّل Google Cloud SDK التي تتضمن أداة gcloud CLI.
  2. تأكَّد من أنّ عملية التثبيت محدَّثة:
gcloud components update
  1. تسجيل الدخول إلى gcloud CLI باستخدام حساب Google:
gcloud auth login
  1. يمكنك إعداد مشروع Firebase في gcloud CLI، حيث يمثل PROJECT_ID رقم تعريف مشروع Firebase. يمكنك العثور على رقم تعريف المشروع في عنوان URL الخاص بـ "وحدة تحكُّم Firebase"، والذي يتبع اصطلاح التسمية التالي: https://console.firebase.google.com/project/[PROJECT_ID]/....
gcloud config set project PROJECT_ID

إذا لم يكن لديك مشروع على Firebase، أنشئ مشروعًا في وحدة تحكُّم Firebase.

إجراء اختبار باستخدام حِزم APK التي تم إنشاؤها

في هذا القسم، يتم إجراء اختبار قياس حالة على الجهاز التلقائي في Test Lab، وهو هاتف Pixel 3 بالمستوى 28 من واجهة برمجة التطبيقات. إذا كنت تريد استخدام جهاز مختلف، يمكنك التحقق من الأجهزة المتاحة.

باستخدام التطبيق واختبار ملفات APK التي أنشأتها في إنشاء ملف APK لتطبيق Android واختبار APK، يمكنك إجراء اختبار Android instrumentation باستخدام الأمر التالي:

gcloud firebase test android run \
  --type instrumentation \
  --app app/build/outputs/apk/debug/app-debug.apk \
  --test app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk

تحليل نتائج الاختبار

يمكنك تحليل نتائج الاختبار باستخدام أي من الخيارات التالية:

  • gcloud ملخّص: عند انتهاء الاختبار، يطبع gcloud CLI ملخصًا أساسيًا بنتائج الاختبار.
  • gcloud رمز الخروج: بعد اكتمال الاختبار، يتم إنهاء الأمر بالرقم 0 في حال اجتياز الاختبار. إذا فشل الاختبار، يتم الخروج من الأمر برمز خروج غير صفري.
  • وحدة تحكُّم Firebase: تطبع gcloud CLI رابطًا إلى "وحدة تحكُّم Firebase". يتبع الرابط اصطلاح التسمية https://console.firebase.google.com/project/PROJECT_ID/testlab/... لمزيد من المعلومات، يُرجى الاطّلاع على تفسير النتائج من عملية تنفيذ اختبارية واحدة.
  • ملف JUnit XML - يطبع gcloud CLI ما يلي:
Raw results will be stored in your Cloud Storage bucket at [https://console.developers.google.com/storage/browser/test-lab-xxxxx/xxxxx/]

test-lab-xxxxx/xxxxx هي حزمة Cloud Storage التي تخزِّن عناصر الاختبار والنتائج. لتحديد موقع ملف JUnit XML الذي يحتوي على نتائج الاختبار، افتح الرابط وانتقِل إلى blueline-28-en-portrait/test_result_1.xml.

3- عملية الإعداد مع Jenkins CI

في هذا القسم، تستخدم نظام Jenkins CI الشهير لإجراء الاختبارات باستخدام مركز الاختبار الافتراضي (CI). إذا كنت تريد استخدام نظام CI مختلف، يُرجى الاطّلاع على أفضل الممارسات المتقدّمة لتشغيل مجموعات اختبار كبيرة ومستندات أنظمة CI الأخرى، مثل Bitrise وCircle CI. يمكنك استخدام Flank كبديل لـ gcloud CLI.

تفعيل واجهة سطر الأوامر gcloud في Jenkins

لكي تتمكّن من استخدام Test Lab مع Jenkins، يجب تفعيل واجهات برمجة التطبيقات المطلوبة وإعداد حساب خدمة يمكن لتطبيق Jenkins استخدامه للمصادقة مع gcloud CLI.

إضافة حساب خدمة Google Cloud لتطبيق Jenkins

حسابات الخدمة هي حسابات محدودة مخصّصة لدمج الخدمات. توفّر هذه الحسابات إمكانية تحكُّم أكثر دقة في خدمات معيّنة ولا تخضع لعمليات التحقّق من المحتوى غير المرغوب فيه أو طلبات CAPTCHA التي قد تؤدي إلى حظر إصدارات CI الخاصة بك.

لإنشاء حساب خدمة، اتّبِع الخطوات التالية:

  1. افتح صفحة حسابات الخدمة في Google Cloud Console.
  2. انقر على إنشاء حساب خدمة، وأضِف اسمًا ووصفًا، ثم انقر على إنشاء ومتابعة.
  3. من القائمة المنسدلة اختيار دور، اختَر أساسي، ثمّ اختَر محرِّر.
  4. انقر على متابعة، ثمّ على تمّ.

بعد ذلك، يمكنك إنشاء وتنزيل مفتاح مصادقة يمكن لتطبيق Jenkins استخدامه لمصادقته كحساب الخدمة الذي أنشأته.

لإنشاء مفتاح حساب الخدمة وتنزيله، اتّبِع الخطوات التالية:

  1. من صفحة حسابات الخدمة في Google Cloud Console، انقر على البريد الإلكتروني المرتبط بالحساب الذي أنشأته.
  2. اختَر مفاتيح، ثم انقر على إضافة مفتاح وإنشاء مفتاح جديد.
  3. اختَر JSON، ثم انقر على إنشاء.
  4. عندما يُطلب منك تنزيل الملف، انقر على حسنًا. نزِّل الملف في مكان آمن على الكمبيوتر. تحتاج إلى هذا الملف لاحقًا عند إعداد Jenkins.

لمزيد من المعلومات عن إنشاء حسابات الخدمة، يُرجى الاطّلاع على إنشاء حساب خدمة.

تفعيل واجهات Google Cloud API المطلوبة

تتيح لك Cloud Testing API إجراء اختبارات على بنية Google الأساسية. لقد فعّلت واجهة برمجة التطبيقات هذه بعد الانتهاء من إجراء اختبار باستخدام gcloud CLI. تتيح لك Cloud Tool Results API الوصول إلى نتائج الاختبار آليًا.

  1. افتح مكتبة واجهة برمجة التطبيقات Google Developers Console.
  2. في شريط البحث أعلى "وحدة تحكُّم Firebase"، أدخِل اسم كل واجهة برمجة تطبيقات مطلوبة ( Cloud Testing API وCloud Tool Results API). تظهر صفحة النظرة العامة لواجهة برمجة التطبيقات المطلوبة.
  3. انقر على تفعيل واجهة برمجة التطبيقات في صفحة النظرة العامة على كل واجهة برمجة تطبيقات.

تثبيت Jenkins وإعداده

يمكنك تثبيت Jenkins CI وإعداده على أنظمة التشغيل Linux وmacOS وWindows والعديد من البيئات الأخرى. تتعلّق بعض تفاصيل هذا الدرس التطبيقي حول الترميز بتثبيت برنامج Jenkins CI وتشغيله على نظام التشغيل Linux، بما في ذلك استخدام الشرطة المائلة (/) في مسارات الملفات.

لتنزيل Jenkins وتثبيته على جهاز كمبيوتر يعمل بنظام التشغيل Linux أو Windows، اتّبع تعليمات تثبيت Jenkins. بعد تثبيت Jenkins، اتّبِع التعليمات نفسها لتثبيت Jenkins لإكمال عملية الإعداد والوصول إلى لوحة بيانات Jenkins باستخدام http://localhost:8080.

التحقق من المكونات الإضافية المثبتة

يتوافق تطبيق Jenkins مع أنظمة التحكّم في الإصدارات المختلفة. في هذا الدرس التطبيقي حول الترميز، يمكنك استخدام Git لإجراء الاختبار السابق. للحصول على تجربة أفضل عند تشغيل gcloud CLI، عليك تثبيت المكوّن الإضافي GCloud SDK.

  1. في لوحة بيانات Jenkins، انقر على إدارة Jenkins، ثم انقر على إدارة المكوّنات الإضافية.
  2. ابحث عن المكوّنات الإضافية Git وGCloud SDK وثبِّتها (إذا لم تكن مثبّتة بعد).

ضبط موقع حِزم تطوير البرامج (SDK) لكلّ من Android وGoogle Cloud

يمكنك الآن توجيه Jenkins إلى مكان العثور على حزمة تطوير البرامج (SDK) لخدمة Google Cloud وحزمة تطوير البرامج (SDK) لنظام التشغيل Android.

لإعداد حزمة تطوير البرامج (SDK) الخاصة بخدمة Google Cloud وAndroid لنظام Jenkins، اتّبِع الخطوات التالية:

  1. في لوحة بيانات Jenkins، انقر على إدارة Jenkins، ثم انقر على Global Tool Configuration (ضبط عام للأداة).
  2. في قسم Google Cloud SDK، انقر على إضافة Google Cloud SDK.
  3. في حقل الاسم، أدخِل اسمًا لمثيل Google Cloud SDK يسهُل تذكره، مثل GCloud-SDK.
  4. أدخِل الدليل الرئيسي لحزمة تطوير البرامج (SDK) في Google Cloud، مثل /opt/google-cloud-sdk.
  5. انقر على حفظ.
  6. يمكنك ضبط مواقعك على مستوى النظام لحِزم تطوير البرامج (SDK) لكلّ من Android وGoogle Cloud من خلال فتح لوحة البيانات > إدارة Jenkins > إعداد النظام.
  7. ضَع علامة في مربّع الاختيار متغيّرات البيئة وانقر على إضافة.
  8. في حقل الاسم، أدخِل ANDROID_home. في حقل القيمة، أدخِل موقع حزمة تطوير البرامج (SDK) لنظام التشغيل Android، على سبيل المثال /opt/Android/Sdk.
  9. انقر على مربّع الاختيار المواقع الجغرافية للأدوات وانقر على إضافة. من القائمة المنسدلة الاسم، اختَر اسم مثيل Google Cloud SDK الذي أضفته في Global Tool Configuration (ضبط الأدوات العامة).
  10. في حقل الصفحة الرئيسية، أدخِل موقع حزمة Google Cloud SDK، على سبيل المثال /opt/google-cloud-sdk.
  11. انقر على حفظ.

إضافة بيانات اعتماد حساب الخدمة إلى Jenkins

يمكنك الآن إضافة بيانات اعتماد حساب خدمة gcloud CLI إلى Jenkins حتى يتمكّن Jenkins من مصادقة أوامر gcloud CLI وتشغيلها.

  1. في لوحة بيانات Jenkins، انقر على إدارة Jenkins، ثم انقر على إدارة بيانات الاعتماد.
  2. في قسم المتاجر المخصّصة لـ Jenkins، انقر على رابط النطاق (عالمي)، ثم انقر على إضافة بيانات اعتماد.
  3. من القائمة المنسدلة النوع، اختَر حساب خدمة Google من المفتاح الخاص.
  4. في حقل اسم المشروع، أدخِل اسم مشروع Firebase.
  5. اختَر مفتاح JSON، ثم انقر على تصفّح وتصفَّح للوصول إلى الموقع الذي حفظت فيه مفتاح حساب الخدمة.
  6. انقر على إنشاء.

أصبحت جاهزًا الآن لإعداد الإصدار التلقائي من Jenkins لاختبار الميزات الاختبارية.

4. إجراء الاختبارات المعملية باستخدام Jenkins CI

بعد أن انتهيت من إعداد Jenkins، سنحضِّر كل البيانات ونجري الاختبار نفسه باستخدام Jenkins.

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

إنشاء مشروع Jenkins وإعداده

أنشِئ مشروعًا لإجراء اختبار تكامل مستمر لتطبيقك باستخدام Test Lab.

إنشاء مشروع Jenkins

  1. افتح لوحة بيانات Jenkins من خلال الانتقال إلى http://localhost:8080.
  2. في لوحة بيانات Jenkins، انقر على عنصر جديد.
  3. أدخل اسمًا لمشروعك في حقل اسم العنصر، وانقر على مشروع بتصميم حر لإنشاء مشروع يستخدم تهيئة تصميم واحد.
  4. انقر على موافق. لإكمال تكوينات المشروع، أكمل الأقسام المتبقية بالتسلسل.

ضبط إدارة رموز المصدر

  1. من علامة التبويب إدارة رمز المصدر، اختَر Git.
  2. أدخِل https://github.com/android/testing-عيّنات.git في حقل عنوان URL الخاص بالمستودع.

ضبط بيئة الإصدار

يتيح لك قسم "بيئة الإنشاء" ضبط خصائص التصميم. يمكنك تفعيل مصادقة Google Cloud باتّباع الخطوات التالية:

  1. في علامة التبويب بيئة التصميم، ضَع علامة في مربّع الاختيار مصادقة GCloud SDK واختَر اسم التثبيت الذي اخترته عند إضافة معلومات التثبيت على Google Cloud.
  2. من القائمة المنسدلة بيانات اعتماد Google، اختَر بيانات اعتماد حساب الخدمة التي ضبطتها.

إضافة خطوات إصدار Gradle لإعادة إنشاء حِزم APK

  1. انتقِل للأسفل وصولاً إلى قسم إنشاء، ثم انقر على إضافة خطوة إنشاء، ثم اختَر تنفيذ واجهة التصميم.
  2. أضِف خطوة إنشاء لتشغيل الأوامر التالية في الدليل الرئيسي لتطبيقك:
cd ui/espresso/BasicSample/
./gradlew assembleDebug  # for generating app apk
./gradlew assembleDebugAndroidTest # for generating testing apk

إضافة خطوة إصدار واجهة سطر الأوامر gcloud إلى Jenkins

أصبحت جاهزًا لإضافة خطوة إصدار إلى Jenkins لتشغيل Test Lab باستخدام سطر الأوامر gcloud CLI.

لإضافة خطوة إنشاء واجهة سطر الأوامر في gcloud، أضِف خطوة إصدار Execute Shell الجديدة وأدخِل الأمر التالي:

gcloud config set project PROJECT_ID
gcloud firebase test android run \
--app ${WORKSPACE}/ui/espresso/BasicSample/app/build/outputs/apk/debug/app-debug.apk
--test ${WORKSPACE}/ui/espresso/BasicSample/app/build/outputs/apk/androidTest/debug/app-debug-androidTest.apk

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

إجراء الاختبارات باستخدام Jenkins

أصبحت جاهزًا الآن لإنشاء مشروع Jenkins وإجراء اختبار، مثل الاختبار اليدوي الذي أجريته باستخدام gcloud CLI.

لإجراء الاختبار باستخدام Jenkins، اتّبِع الخطوات التالية:

  1. لبدء عملية الإنشاء يدويًا، انقر على الإنشاء الآن.
  2. يمكنك الاطّلاع على مستوى التقدّم والنتائج من خلال النقر على الإصدار الجديد > ناتج وحدة التحكّم.

إذا لم تظهر لك أي أخطاء، تهانينا. لقد أعددت للتو مشروعًا وأجريت اختبارًا على جهاز Pixel 2 بنقرة واحدة. في حال مواجهة أخطاء، يُرجى الاطّلاع على قسم تحديد المشاكل وحلّها.

5- أفضل الممارسات المتقدّمة لتشغيل مجموعات الاختبار الكبيرة

عندما تريد إجراء العديد من الاختبارات المتزامنة، عليك اتّباع أفضل الممارسات التالية لضمان إجراء اختباراتك بسرعة وموثوقية.

زيادة التغطية على إعدادات متعدّدة للأجهزة

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

  • هاتف Google Pixel 2 افتراضي مع المستوى 30 من واجهة برمجة التطبيقات في الاتجاه العمودي واللغة الإنجليزية
  • هاتف Samsung Galaxy S20 المادي مع المستوى 29 لواجهة برمجة التطبيقات في الاتجاه الأفقي واللغة الفرنسية
gcloud firebase test android run \
  --type instrumentation \
  --app app-debug.apk \
  --test app-debug-test.apk \
  --device model=Pixel2,version=30,locale=en,orientation=portrait  \
  --device model=x1q,version=29,locale=fr,orientation=landscape

استخدام ملف إعداد gcloud CLI YAML

إذا كنت تفضّل إدارة الوسيطات في مكان واحد أو من خلال نظام التحكم في المصدر، يمكنك تحديد هذه الوسيطات في ملف وسيطة بتنسيق YAML. للتعرّف على كيفية استخدام هذه الميزة، شغِّل gcloud topic arg-files.

إجراء اختبارات التجزئة بشكل متوازٍ

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

لتفعيل التقسيم إلى أجزاء، استخدِم القناة gcloud beta وأضِف العلامة –num-uniform-shards أو –test-targets-for-shard إلى خطوة إنشاء واجهة سطر الأوامر في gcloud. على سبيل المثال، لتقسيم اختباراتك إلى خمس عمليات تنفيذ وتنفيذها بالتوازي، شغِّل الأوامر التالية:

gcloud beta firebase test android run \
  --type instrumentation \
  --app app-debug.apk \
  --test app-debug-test.apk \
  --num-uniform-shards 5

تفعيل ميزة "رصد الضعف"

غالبًا ما تكون اختبارات الأجهزة الجوّالة غير مستقرة. وفي بعض الأحيان، تجتاز الاختبارات، وفي أحيان أخرى، قد تفشل، حتى مع اتّباع الإعداد نفسه. يمكنك معرفة ما إذا كان الاختبار غير الناجح غير مستقر باستخدام علامة gcloud CLI التي تحمل الاسم –num-flaky-test-attempts. تحدّد هذه العلامة عدد المرات التي يجب فيها إعادة محاولة تنفيذ الاختبار في حال تعذُّر إحدى حالات الاختبار أو أكثر لأي سبب من الأسباب.

على سبيل المثال، لإعادة إجراء حالات الاختبار التي تعذّر إتمامها ثلاث مرات أخرى بعد عملية التنفيذ الأولية الفاشلة، يجب تحديد ما يلي:

gcloud beta firebase test android run \
  --type instrumentation \
  --app app-debug.apk \
  --test app-debug-test.apk \
  --num-flaky-test-attempts 3

6- تهانينا

تهانينا، لقد نجحت في إجراء أول اختبار من مركز الاختبار الافتراضي باستخدام نظام CI.

لقد أنشأت تطبيقًا واختبرت حِزم APK وأجريت اختبار أدوات من خلال Test Lab باستخدام gcloud CLI. ويمكنك أيضًا إعداد مشروع Jenkins لإجراء الاختبار نفسه بشكل تلقائي.

أصبحت تعرف الآن الخطوات الأساسية لدمج Test Lab في نظام CI/CD.

ما هي الخطوات التالية؟

اطّلِع على مقالة كيفية إعداد ميزة CI باستخدام "حزمة محاكاة Firebase".

محتوى إضافي للقراءة

المستندات المرجعية