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

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

  • علامات اختبار "حلقة الألعاب": يشير هذا المصطلح إلى مجموعة من علامات الإعداد التي تفعِّل "إصدار تجريبي" وتتحكّم فيه. وضع لمحاكاة إجراءات اللاعبين في تطبيقات الألعاب. مزيد من المعلومات حول الجري اختبارات Game Loop من خلال 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

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