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

يصف هذا الدليل كيفية إجراء اختبار أداة أو Robo أو حلقة ألعاب. باستخدام gcloud CLI.

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

قبل البدء

أضِف Firebase إلى مشروع Android، في حال لم يسبق لك إجراء ذلك.

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

  1. نزِّل حزمة تطوير البرامج (SDK) لخدمة Google Cloud.
  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 لاختبار طُرز Android

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

    gcloud firebase test android models describe MODEL_ID

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

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

    gcloud firebase test android versions list

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

    مثال على الناتج

    قائمة إصدارات gcloud android

  • 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 ضمنية في حال تحديد حزمة 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 test android run.

تقارير تغطية الرمز البرمجي لاختبارات قياس حالة التطبيق

يتوافق 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 أيضًا المُنسّق، قم بتعديل متغيرات البيئة الخاصة بك على النحو التالي:

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. انقر على نتائج الاختبار للانتقال إلى مجموعة البيانات Cloud Storage التي تتضمّن ما يلي. لنتائج اختبار التنفيذ.
  4. افتح 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

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

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

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

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

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

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

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

إنشاء نصوص برمجية لأوامر gcloud باستخدام Test Lab

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