يصف هذا الدليل كيفية تشغيل اختبار الأجهزة أو Robo أو Game Loop باستخدام gcloud CLI .
للحصول على قائمة كاملة بأوامر gcloud
التي يمكنك استخدامها مع تطبيق Android الخاص بك في Test Lab ، تفضل بزيارة الوثائق المرجعية gcloud firebase test android
.
قبل ان تبدأ
أضف Firebase إلى مشروع Android ، إذا لم تكن قد قمت بذلك بالفعل.
الخطوة الأولى. قم بإعداد gcloud CLI
- قم بتنزيل Google Cloud SDK.
- تأكد من تحديث التثبيت الخاص بك:
gcloud components update
- قم بتسجيل الدخول إلى gcloud CLI باستخدام حساب Google الخاص بك:
gcloud auth login
- عيِّن مشروع Firebase في gcloud ، حيث يمثل PROJECT_ID معرّف مشروع Firebase:
gcloud config set project PROJECT_ID
يتضمن ذلك أداة gcloud CLI.
الخطوة 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
على إصدارات نظام التشغيل التي يدعمها الجهاز.
مثال الإخراج
- يحتوي العمود
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
.مثال الإخراج
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:
- افتح رابط وحدة تحكم Firebase الذي طبعته أداة
gcloud
أعلى جدول نتائج الاختبار في جهازك الطرفي. - انقر فوق تنفيذ اختبار من القائمة الموجودة على هذا الارتباط لفتح صفحة تفاصيل هذا التنفيذ.
- انقر فوق نتائج الاختبار للانتقال إلى حاوية التخزين السحابي بنتائج اختبار التنفيذ.
- افتح
artifacts/coverage.ec
لرؤية تقرير تغطية الكود الخاص بك.
حلل نتائج اختبارك
بعد بضع دقائق ، تتم طباعة ملخص أساسي لنتائج الاختبار الخاصة بك بواسطة أداة gcloud:
يتضمن ناتج تشغيل اختبار سطر الأوامر أيضًا ارتباطًا لعرض نتائج الاختبار. لمعرفة المزيد حول كيفية تفسير هذه النتائج ، راجع تحليل 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 على العديد من الأوامر والعلامات المتاحة التي تتيح لك إجراء اختبارات بمواصفات مختلفة:
علامة Android Test Orchestrator : علامة لتمكين Orchestrator ، وهي أداة تتيح لك تشغيل كل اختبار من اختبارات تطبيقك في استدعائه الخاص
Instrumentation
. يقوم Test Lab دائمًا بتشغيل أحدث إصدار من Orchestrator.أعلام اختبار حلقة اللعبة : مجموعة من أعلام التكوين التي تمكّن "الوضع التجريبي" وتتحكم فيه لمحاكاة إجراءات اللاعب في تطبيقات الألعاب. تعرف على المزيد حول تشغيل اختبارات Game Loop باستخدام Test Lab .
علامة التجزئة الموحدة (في النسخة التجريبية) : علامة تحدد عدد الأجزاء التي تريد توزيع حالات الاختبار عليها بالتساوي. يتم تشغيل القطع بالتوازي على أجهزة منفصلة.
علامة التجزئة اليدوية (في النسخة التجريبية) : علامة تحدد مجموعة من الحزم و / أو الفئات و / أو حالات الاختبار للتشغيل في جزء (مجموعة من حالات الاختبار). يتم تشغيل القطع بالتوازي على أجهزة منفصلة.
علامة ملفات تعريف حركة مرور الشبكة (في النسخة التجريبية) : علامة تحدد ملف تعريف الشبكة الذي تستخدمه اختباراتك مع الأجهزة المادية. تحاكي ملفات تعريف الشبكة مجموعة متنوعة من ظروف الشبكات ، مما يسمح لك باختبار أداء تطبيقك على شبكات غير موثوقة أو غير متوقعة.
برمجة أوامر 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 | حدث خطأ في اختبار البنية التحتية. |