Catch up on everthing we announced at this year's Firebase Summit. Learn more

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

يصف هذا الدليل كيفية تشغيل الأجهزة، روبو، أو لعبة حلقة الاختبار باستخدام CLI gcloud .

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

قبل ان تبدأ

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

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

  1. تحميل جوجل الغيمة SDK.
  2. يتضمن ذلك أداة gcloud CLI.

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

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

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

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

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

    gcloud firebase test android models list
    

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

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

    مثال الإخراج

    gcloud firebase test android models list output

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

    gcloud firebase test android models describe MODEL_ID
    

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

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

    gcloud firebase test android versions list
    

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

    مثال الإخراج

    gcloud android versions list

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

    gcloud firebase test android versions list
    

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

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

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

إجراء اختبار 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 لمعرفة كيفية استخدام هذه الميزة.

اطلع على تحليل نتائج الاختبار القسم للتعرف على كيفية تحقيق نتائج الاختبار من اختبار روبو.

إجراء اختبارات الأجهزة الخاصة بك

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

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

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

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

اختبار مختبر تدعم مدونة التغطية التقارير أدوات EMMA و JaCoCo . إذا كان لديك أي أداة متكاملة في البناء عن تطبيقك، يمكنك الحصول على تقرير تغطية رمز لاجراء فحوص مختبر فحص عن طريق تشغيل 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. فتح الرابط حدة Firebase أن gcloud أداة طبعت فوق طاولة نتيجة الاختبار في المحطة الطرفية.
  2. انقر فوق تنفيذ اختبار من القائمة الموجودة على هذا الارتباط لفتح صفحة تفاصيل هذا التنفيذ.
  3. انقر نتائج الاختبار للذهاب إلى دلو سحابة التخزين مع نتائج الاختبار أن تنفيذ و.
  4. فتح artifacts/coverage.ec لرؤية تقرير تغطية التعليمات البرمجية.

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

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

Command test results

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

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

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

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

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

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

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

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

  • الروبوت اختبار للإشراف العلم : علم لتمكين تشرف، الأداة التي تتيح لك تشغيل كل من الاختبارات التطبيق الخاص بك في الاحتجاج الخاصة من Instrumentation . يقوم Test Lab دائمًا بتشغيل أحدث إصدار من Orchestrator.

  • لعبة حلقة اختبار الأعلام : مجموعة من الأعلام التكوين التي تمكن والسيطرة على "طريقة العرض" لإجراءات لاعب محاكاة في تطبيقات اللعبة. معرفة المزيد حول تشغيل الاختبارات لعبة حلقة مع مختبر فحص .

  • موحد العلم عملية التجزئة (بيتا) : علم أن يحدد عدد القطع الذي تريد لتوزيع بالتساوي حالات الاختبار. يتم تشغيل القطع بالتوازي على أجهزة منفصلة.

  • علم اليدوي عملية التجزئة (بيتا) : علم أن يحدد مجموعة من الحزم، والطبقات، وأو الحالات / اختبار لتشغيل في قشرة (مجموعة من حالات الاختبار). يتم تشغيل القطع بالتوازي على أجهزة منفصلة.

  • شبكة العلم ملامح حركة (بيتا) : علم أن يحدد أي ملف تعريف الشبكة الاختبارات الخاصة بك استخدام مع الأجهزة الفعلية. تحاكي ملفات تعريف الشبكة مجموعة متنوعة من ظروف الشبكات ، مما يسمح لك باختبار أداء تطبيقك على شبكات غير موثوقة أو غير متوقعة.

برمجة أوامر 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 حدث خطأ في اختبار البنية التحتية.