Catch up on highlights from Firebase at Google I/O 2023. Learn more

ابدأ الاختبار باستخدام gcloud CLI

يصف هذا الدليل كيفية تشغيل اختبار الأجهزة أو Robo أو Game Loop باستخدام gcloud CLI .

للحصول على قائمة كاملة بأوامر gcloud التي يمكنك استخدامها مع تطبيق Android الخاص بك في Test Lab ، تفضل بزيارة الوثائق المرجعية gcloud firebase test android .

قبل ان تبدأ

أضف Firebase إلى مشروع Android ، إذا لم تكن قد قمت بذلك بالفعل.

الخطوة الأولى. قم بإعداد gcloud CLI

  1. قم بتنزيل Google Cloud SDK.
  2. يتضمن ذلك أداة gcloud CLI.

  3. تأكد من تحديث التثبيت الخاص بك:
    gcloud components update
    
  4. قم بتسجيل الدخول إلى gcloud CLI باستخدام حساب Google الخاص بك:
    gcloud auth login
    
  5. عيِّن مشروع Firebase في gcloud ، حيث يمثل PROJECT_ID معرّف مشروع Firebase:
    gcloud config set project PROJECT_ID
    

الخطوة 2. تحقق من أجهزة الاختبار المتاحة

استخدم أوامر gcloud التالية لعرض أجهزة الاختبار واللغات المتوفرة للاختبار.

كخيار ، يمكنك أيضًا تنزيل نموذج تطبيق Notepad لبدء تشغيل الأوامر على الفور. استخدم الملف الثنائي app-debug-unaligned.apk وملف اختبارات الأجهزة app-debug-test-unaligned.apk ، والموجودين في NotePad/app/build/outputs/apk/ .

  • models list : احصل على قائمة حالية بأجهزة Android المتاحة لك للاختبار.

    gcloud firebase test android models list
    

    في إخراج الأمر:

    • يحتوي العمود MODEL_ID على المعرف الذي يمكنك استخدامه لاحقًا لتشغيل الاختبارات على طراز الجهاز.
    • يحتوي العمود OS_VERSION_ID على إصدارات نظام التشغيل التي يدعمها الجهاز.

    مثال الإخراج

    gcloud firebase test android models list output

  • models describe : احصل على مزيد من المعلومات حول MODEL_ID محدد Android.

    gcloud firebase test android models describe MODEL_ID
    

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

  • versions list : احصل على قائمة بإصدارات نظام التشغيل المتوفرة حاليًا لاختبارها.

    gcloud firebase test android versions list
    

    يمكنك استخدام معرّف من أي من العمودين الأولين لمخرجات الأمر ( OS_VERSION_ID و VERSION ) ، لإجراء اختبارات لاحقًا على إصدار Android OS. إذا لم تحدد إصدارات نظام التشغيل Android للاختبار وفقًا لها ، فسيتم استخدام الإعداد الافتراضي المدون أسفل عمود TAGS .

    مثال الإخراج

    gcloud android versions list

  • locales list : احصل على القائمة الحالية للغات المتاحة للاختبار وفقًا لها.

    gcloud firebase test android versions list
    

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

الخطوة 3. قم بإجراء الاختبار الخاص بك

الآن بعد أن تعرفت على مجموعة طرازات الأجهزة ، واللغات ، وإصدارات نظام التشغيل المتاحة لاختبار تطبيقك ، يمكنك تحديد الأجهزة باستخدام الأمر gcloud firebase test android run وعلامة --device لتشغيل Robo أو اختبارات الأجهزة.

قم بإجراء اختبار Robo

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

لإجراء اختبار Robo ، قم بتشغيل المثال التالي:

gcloud firebase test android run \
  --type robo \
  --app app-debug-unaligned.apk \
  --device model=Nexus6,version=21,locale=en,orientation=portrait  \
  --device model=Nexus7,version=19,locale=fr,orientation=landscape \
  --timeout 90s \
  --client-details matrixLabel="Example matrix label"
  • تكون المعلمة --type robo ضمنية إذا لم يتم تحديد قيمة --type .
  • لمساعدتك في تحديد مصفوفات الاختبار وتحديد موقعها في وحدة تحكم Firebase ، يمكنك استخدام العلامة الاختيارية --client-details matrixLabel="Example matrix label" لتسمية مصفوفة اختبارك.
  • يمكنك رؤية المجموعة الكاملة لخيارات سطر الأوامر لتشغيل الاختبارات عن طريق كتابة: gcloud help firebase test android run .

كبديل لتحديد هذه الوسيطات في سطر الأوامر ، يمكنك اختيارياً تحديد وسيطاتك في ملف وسائط بتنسيق YAML. قم بتشغيل gcloud topic arg-files لمعرفة كيفية استخدام هذه الميزة.

لمعرفة كيفية التحقق من نتائج الاختبار من اختبار Robo ، راجع تحليل نتائج الاختبار .

قم بإجراء اختبار الأجهزة

استخدم الآن أداة سطر أوامر gcloud لتشغيل اختبارات Espresso لتطبيق Notepad على تكوينات جهاز Android المحددة. استخدم نوع اختبار instrumentation لإجراء الاختبارات في app-debug-test-unaligned.apk على النحو التالي:

gcloud firebase test android run \
  --type instrumentation \
  --app app-debug-unaligned.apk \
  --test app-debug-test-unaligned.apk \
  --device model=Nexus6,version=21,locale=en,orientation=portrait  \
  --device model=Nexus7,version=19,locale=fr,orientation=landscape
  --client-details matrixLabel="Example matrix label"
  • تكون معلمة --type Instrumation ضمنية إذا تم تحديد اختبار APK باستخدام --test .
  • لمساعدتك في تحديد مصفوفات الاختبار وتحديد موقعها في وحدة تحكم Firebase ، يمكنك استخدام العلامة الاختيارية --client-details matrixLabel="Example matrix label" لتسمية مصفوفة اختبارك.
  • يمكنك رؤية المجموعة الكاملة لخيارات سطر الأوامر لإجراء الاختبارات عن طريق كتابة gcloud help firebase test android run .

كبديل لتحديد هذه الوسيطات في سطر الأوامر ، يمكنك اختيارياً تحديد وسيطاتك في ملف وسائط بتنسيق YAML. قم بتشغيل gcloud topic arg-files لمعرفة كيفية استخدام هذه الميزة.

يدعم gcloud CLI Android Test Orchestrator . يتطلب Orchestrator إصدار AndroidJUnitRunner v1.1 أو أعلى. لتمكينه ، استخدم gcloud firebase test android run مع
--use-orchestrator . لتعطيله ، استخدم علامة --no-use-orchestrator .

يمكنك أيضًا التحكم في كيفية قيام Test Lab بإجراء اختبارات الأجهزة الخاصة بك باستخدام علامات إضافية غير معروضة أعلاه. على سبيل المثال ، يمكنك استخدام علامة --test-targets لاختبار فئة واحدة أو طريقة فئة يستخدمها اختبار APK الخاص بك. يمكنك أيضًا معرفة ما إذا كان اختبارك الذي فشل فيه غير مستقر بالفعل أم لا عن طريق استخدام علامة --num-flaky-test-attempts ، التي تحدد عدد المرات التي يجب فيها إعادة محاولة تنفيذ الاختبار في حالة واحدة أو أكثر من حالات الاختبار الخاصة به تفشل لأي سبب. لمعرفة المزيد ، راجع تشغيل اختبار gcloud firebase android .

تقارير تغطية الكود لاختبارات الأجهزة

يدعم Test Lab أدوات الإبلاغ عن تغطية الكود EMMA و JaCoCo . إذا كان لديك أي من الأدوات المدمجة في تصميم تطبيقك ، فيمكنك الحصول على تقرير تغطية الكود لاختبارات Test Lab عن طريق gcloud firebase test android run مع بعض الوسائط الإضافية. إذا لم يتم تمكين Android Test Orchestrator ، فاستخدم ما يلي:

gcloud firebase test android run \
  --type instrumentation \
  --app your-app.apk \
  --test your-app-test.apk \
  --device model=TestDevice,version=AndroidVersion  \
  --environment-variables coverage=true,coverageFile="/sdcard/Download/coverage.ec" \
  --directories-to-pull /sdcard/Download

إذا كنت تقوم بإنشاء تقارير تغطية التعليمات البرمجية أثناء استخدام Android Test Orchestrator أيضًا ، فقم بتعديل متغيرات البيئة الخاصة بك على النحو التالي:

gcloud firebase test android run \
  --type instrumentation \
  --app your-app.apk \
  --test your-app-test.apk \
  --device model=TestDevice,version=AndroidVersion  \
  --environment-variables clearPackageData=true,coverage=true,coverageFilePath="/sdcard/Download/" \
  --directories-to-pull /sdcard/Download

عندما ينتهي Test Lab من تشغيل اختباراتك ، ابحث عن تقارير تغطية التعليمات البرمجية في Google Cloud Storage:

  1. افتح رابط وحدة تحكم Firebase الذي طبعته أداة gcloud أعلى جدول نتائج الاختبار في جهازك الطرفي.
  2. انقر فوق تنفيذ اختبار من القائمة الموجودة على هذا الارتباط لفتح صفحة تفاصيل هذا التنفيذ.
  3. انقر فوق نتائج الاختبار للانتقال إلى حاوية التخزين السحابي بنتائج اختبار التنفيذ.
  4. افتح artifacts/coverage.ec لرؤية تقرير تغطية الكود الخاص بك.

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

بعد بضع دقائق ، تتم طباعة ملخص أساسي لنتائج الاختبار الخاصة بك بواسطة أداة gcloud:

Command test results

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

تسجيل الدخول المخصص وإدخال النص باستخدام اختبار Robo

يكمل اختبار Robo تلقائيًا شاشات تسجيل الدخول التي تستخدم حساب Google للمصادقة ، ما لم تستخدم المعلمة --no-auto-google-login . يمكنه أيضًا إكمال شاشات تسجيل الدخول المخصصة باستخدام بيانات اعتماد الحساب التجريبي التي تقدمها. يمكنك أيضًا استخدام هذه المعلمة لتوفير نص إدخال مخصص لحقول النص الأخرى التي يستخدمها تطبيقك.

لإكمال الحقول النصية في تطبيقك ، استخدم المعلمة --robo-directives وقم بتوفير قائمة مفصولة بفواصل لأزواج key-value ، حيث يكون key هو اسم مورد Android لعنصر واجهة المستخدم المستهدفة ، value هي سلسلة النص . يمكنك أيضًا استخدام هذه العلامة لإخبار Robo بتجاهل عناصر معينة لواجهة المستخدم (على سبيل المثال ، زر "تسجيل الخروج"). يتم دعم حقول EditText ولكن ليس الحقول النصية في عناصر واجهة مستخدم WebView .

على سبيل المثال ، يمكنك استخدام المعلمة التالية لتسجيل الدخول المخصص:

--robo-directives username_resource=username,password_resource=password

الأوامر والأعلام المتوفرة

يحتوي Test Lab gcloud CLI على العديد من الأوامر والعلامات المتاحة التي تتيح لك إجراء اختبارات بمواصفات مختلفة:

برمجة أوامر gcloud باستخدام Test Lab

يمكنك استخدام البرامج النصية لـ shell أو ملفات الدُفعات لأتمتة أوامر اختبار تطبيقات الأجهزة المحمولة التي يمكنك تشغيلها باستخدام سطر أوامر gcloud. يشغّل المثال التالي البرنامج النصي bash اختبارًا للأجهزة بمهلة دقيقتين ، ويبلغ عن اكتمال التشغيل التجريبي بنجاح:

if gcloud firebase test android run --app my-app.apk --test my-test.apk --timeout 2m
then
    echo "Test matrix successfully finished"
else
    echo "Test matrix exited abnormally with non-zero exit code: " $?
fi

رموز الخروج من البرنامج النصي

يوفر Test Lab العديد من رموز الخروج التي يمكنك استخدامها لفهم نتائج الاختبارات التي تجريها باستخدام البرامج النصية أو الملفات الدفعية بشكل أفضل.

البرمجة النصية لأكواد الخروج الخاصة بـ Test Lab

كود الخروج ملحوظات
0 تم اجتياز جميع عمليات تنفيذ الاختبار.
1 حدث فشل عام. تشمل الأسباب المحتملة: اسم ملف غير موجود أو خطأ HTTP / شبكة.
2 تم إنهاء الاختبار لأنه تم توفير أوامر أو وسيطات غير معروفة.
10 لم تنجح حالة اختبار واحدة أو أكثر (الفئات المختبرة أو طرق الفصل) في تنفيذ الاختبار.
15 تعذر على Firebase Test Lab تحديد ما إذا كانت مصفوفة الاختبار قد نجحت أو فشلت ، بسبب خطأ غير متوقع.
18 بيئة الاختبار لتنفيذ الاختبار هذا غير مدعومة بسبب أبعاد الاختبار غير المتوافقة. قد يحدث هذا الخطأ إذا كان نوع الجهاز المحدد غير مدعوم بمستوى واجهة برمجة تطبيقات Android المحدد.
19 تم إلغاء مصفوفة الاختبار من قبل المستخدم.
20 حدث خطأ في اختبار البنية التحتية.