Google is committed to advancing racial equity for Black communities. See how.
ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

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

يوفر Firebase Test Lab بنية أساسية قائمة على السحابة لاختبار تطبيقات Android ، بما في ذلك التكامل الكامل مع واجهة سطر أوامر gcloud (CLI). يغطي هذا المستند التثبيت والتهيئة المطلوبين لبدء استخدام Test Lab من gcloud CLI.

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

أنشئ مشروع Firebase

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

يمكنك استخدام Test Lab لعدد محدود من عمليات تنفيذ الاختبار اليومية على خطة Spark. لاستخدام Test Lab بدون حدود حصص يومية ، يجب عليك الترقية إلى خطة Firebase Blaze.

قم بإعداد 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
    

تكوين الاختبار الخاص بك

في هذا المثال ، ستجري بعض الاختبارات على تطبيق Android بسيط لتدوين الملاحظات يسمى Notepad.

  1. قم بتنزيل ملف APK الثنائي لتطبيق Notepad ( app-debug-unaligned.apk ) واختبارات الأجهزة المقابلة ( app-debug-test-unaligned.apk ) المتوفرة في NotePad / app / build / outputs / apk / دليل المفكرة .zip .

  2. احصل على القائمة الحالية لأجهزة Android المتاحة للاختبار ، على النحو التالي:

    
    $ gcloud firebase test android models list
    
    gcloud firebase test android models list output يحتوي العمود الأول من إخراج الأمر ، MODEL_ID ، على المعرف الذي يمكنك استخدامه لاحقًا لتشغيل الاختبارات على طراز معين. يسرد العمود OS_VERSION_ID إصدارات أنظمة التشغيل التي يدعمها هذا الجهاز. إذا لم تحدد MODEL_ID ( MODEL_ID ) التي تريد اختبارها ، MODEL_ID أسفل عمود TAGS .

  3. تعرف على مزيد من المعلومات حول MODEL_ID Android محدد مع firebase test android models describe MODEL_ID firebase test android models describe الأمر ، على النحو التالي:

    
    $ gcloud firebase test android models describe Nexus5
    
    يوفر الأمر المثال الموضح أعلاه معلومات مفصلة حول طراز Nexus5 ، بما في ذلك العلامة التجارية والشركة المصنعة ومستويات واجهة برمجة التطبيقات المدعومة ، وما إذا كان النموذج ماديًا أو افتراضية.

  4. احصل على القائمة الحالية لإصدارات نظام التشغيل Android المتاحة للاختبار مقابل:

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

  5. احصل على القائمة الحالية للغات المتاحة للاختبار على أساسها:

    
    $ gcloud firebase test android locales list
    
    يحتوي العمود الأول من إخراج الأمر ، LOCALE ، على المعرف الذي يمكنك استخدامه لاحقًا لتشغيل الاختبارات على لغة. إذا لم تحدد اللغات المراد اختبارها ، فسيتم استخدام اللغة الإنجليزية كلغة افتراضية. لا يتم عرض إخراج الأمر هنا نظرًا لتوفر مئات من اللغات.

اختبارات التشغيل

الآن بعد أن تعرفت على مجموعة طرز الأجهزة وإصدارات نظام التشغيل واللغات المتاحة للاستخدام عند اختبار تطبيقك ، يمكنك استخدام هذه المعلومات لتحديد أجهزة الاختبار باستخدام أمر gcloud firebase test android run --device . يتم استخدام هذا الأمر والعلامة سواء كنت تستخدم اختبار 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

تكون معلمة --type robo ضمنية إذا لم يتم تحديد قيمة من --type . يمكنك رؤية المجموعة الكاملة لخيارات سطر الأوامر لتشغيل الاختبارات عن طريق كتابة: 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

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

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

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

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

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

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/coverage.ec" \
  --directories-to-pull /sdcard

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

  1. افتح رابط وحدة تحكم gcloud الذي gcloud أداة gcloud أعلى جدول نتائج الاختبار في جهازك الطرفي.
  2. انقر فوق تنفيذ اختبار من القائمة الموجودة على هذا الارتباط لفتح صفحة تفاصيل هذا التنفيذ.
  3. انقر فوق اختبار النتائج للانتقال إلى حاوية Google Cloud Storage مع نتائج اختبار التنفيذ.
  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 حدث خطأ في اختبار البنية التحتية.