يصف هذا الدليل كيفية إجراء اختبار أداة أو Robo أو حلقة ألعاب. باستخدام gcloud CLI.
للحصول على قائمة كاملة بأوامر gcloud
التي يمكنك استخدامها
باستخدام تطبيق Android في Test Lab، انتقِل إلى
مستندات مرجعية عن gcloud firebase test android
قبل البدء
أضِف Firebase إلى مشروع Android إذا لم يسبق لك إجراء ذلك.
الخطوة 1: إعداد واجهة سطر الأوامر في gcloud
- نزِّل حزمة تطوير البرامج (SDK) لخدمة Google Cloud.
- تأكَّد من أنّ عملية التثبيت محدَّثة:
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
: يمكنك الحصول على مزيد من المعلومات عن جهاز AndroidMODEL_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
".مثال على الناتج
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: إذا كانت لديك أي من الأداتين
مدمجة في إصدار تطبيقك، يمكنك الحصول على تقرير تغطية الرمز البرمجي
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:
- افتح رابط وحدة تحكّم "Firebase" الذي طبعته أداة "
gcloud
" فوق جدول نتائج الاختبار في الوحدة الطرفية. - انقر على عملية تنفيذ اختبارية من القائمة الظاهرة على هذا الرابط لفتح عملية التنفيذ هذه. صفحة التفاصيل.
- انقر على نتائج الاختبار للانتقال إلى مجموعة البيانات Cloud Storage التي تتضمّن ما يلي. لنتائج اختبار التنفيذ.
- افتح
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 | حدث خطأ في البنية الأساسية التجريبية. |