يوضّح هذا الدليل كيفية إجراء اختبار XCTest أو اختبار حلقة الألعاب باستخدام gcloud CLI.
الخطوة 1: ضبط بيئة حزمة تطوير البرامج (SDK) المحلية في Google Cloud
- نزِّل Google Cloud SDK
- تأكَّد من أنّ عملية التثبيت محدَّثة وتتضمّن الأمر
gcloud firebase:gcloud components update - سجِّل الدخول إلى gcloud CLI باستخدام حسابك على Google:
gcloud auth login - اضبط مشروع Firebase في gcloud، حيث PROJECT_ID هو
رقم تعريف مشروعك على Firebase:
gcloud config set project PROJECT_ID
ويشمل ذلك أداة gcloud CLI.
الخطوة 2: إجراء الاختبار
إجراء اختبار XCTest
حمِّل ملف .zip الخاص بالاختبار من خلال تشغيل الأمر التالي (إذا لم تكن قد حزمت تطبيقك بعد، يُرجى الاطّلاع على حزم اختبار XCTest):
cd FOLDER_WITH_TEST_OUTPUT/Build/Products ; \ zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
اختَر سمات الاختبار.
يتيح لك Test Lab إجراء اختبارات على مجموعة متنوعة من إصدارات iOS والأجهزة واتجاهات الشاشة واللغات. وتُعرف هذه الإعدادات باسم سمات الاختبار. للاطّلاع على خيارات كل سمة (مثل إصدارات Xcode المتوافقة مع إصدار iOS على الجهاز)، استبدِل
modelsأوversionsأوlocalesبـdimensionفي الأمر التالي:gcloud firebase test ios dimension list
يُعدّ اتجاه الشاشة أبسط إلى حدّ ما، لأنّ خياراته الوحيدة هي
portraitوlandscape.اطّلِع على قائمة سمات الاختبار، واختَر بعض المجموعات التي تريد إجراء الاختبار عليها. انتقِل إلى خطط الأسعار للاطّلاع على الحد الأقصى لعدد المجموعات التي يمكنك تشغيلها يوميًا.
بعد اختيار مجموعة من سمات الاختبار، يمكنك تشغيل Test Lab لاختباراتك باستخدام الأمر
firebase test ios run. لكل مجموعة من سمات الاختبار التي تريد إجراء الاختبار عليها، أدرِج علامة--deviceمنفصلة:gcloud firebase test ios run --test PATH/TO/MyTests.zip \ --device model=MODEL_ID_1,version=VERSION_ID_1,locale=LOCALE_1,orientation=ORIENTATION_1 \ --device model=MODEL_ID_2,version=VERSION_ID_2,locale=LOCALE_2,orientation=ORIENTATION_2 \ etc...
من المحتمل أن يتعذّر إجراء الاختبار بسبب عدم التوافق بين إصدار Xcode الذي تم إنشاء الاختبار باستخدامه وإصدار Xcode التلقائي الذي يستخدمه Test Lab. لتحديد إصدار Xcode متوافق للاختبار، استخدِم العلامة
--xcode-version:gcloud firebase test ios run --test PATH/TO/MyTests.zip \ --device model=MODEL_ID_1,version=VERSION_ID_1,locale=LOCALE_1,orientation=ORIENTATION_1 \ --xcode-version=15
لمساعدتك في تحديد المصفوفات التجريبية والعثور عليها في وحدة تحكّم Firebase، يمكنك اختياريًا تصنيف المصفوفة التجريبية باستخدام علامة
--client-details matrixLabel="<label>"في المثال التالي:gcloud beta firebase test ios run --test PATH/TO/MyTests.zip \ --device model=MODEL_ID_1,version=VERSION_ID_1,locale=LOCALE_1,orientation=ORIENTATION_1 \ --client-details matrixLabel="my label"
اختبار الأذونات الخاصة
لاختبار الأذونات التي تتطلّب رقم تعريف تطبيق صريحًا، يمكنك إجراء ذلك من خلال ضبط العلامة --test-special-entitlements. Test Lab
بإعادة توقيع التطبيق باستخدام معرّف حزمة جديد لإتاحة
الأذونات الخاصة، لذا تأكَّد من عدم وجود أي موارد في ملف ZIP
تحتوي على مراجع مباشرة لمعرّف حزمة التطبيق.
- الإشعارات الفورية لـ
apns-environment - شبكة VPN شخصية
com.apple.developer.networking.vpn.api
للسماح بطلبات الإشعارات الفورية، يمكن للمستخدمين إنشاء رموز ويب JSON باستخدام مفتاح التوقيع الخاص مع رقم تعريف المفتاح C7FD9DJAA8 ورقم تعريف الفريق 9CKCGNNUQN. ستكون الرموز المميّزة التي تم إنشاؤها صالحة لمدة ساعة واحدة ويجب إعادة تحميلها كل 60 دقيقة. مزيد من المعلومات حول إنشاء اتصال مستند إلى الرمز المميّز بخدمة APNs
مجموعات التطبيقاتتكون معرّفات مجموعات التطبيقات فريدة بشكل عام. وهذا يعني أنّه عندما نُعيد توقيع تطبيقات المستخدمين، يمكننا فقط استخدام معرّف مجموعة التطبيقات المرتبط بحساب المطوّر على Test Lab. إذا كان الاختبار يعتمد على مجموعات التطبيقات، سيتعذّر إجراؤه.
إجراء اختبار حلقة الألعاب
شغِّل الأمر gcloud beta firebase test ios run واستخدِم العلامات التالية
لضبط عملية التشغيل:
| علامات اختبارات "حلقة الألعاب" | |
|---|---|
--type
|
مطلوب: يحدِّد نوع اختبار iOS الذي تريد إجراؤه. يمكنك إدخال نوعَي الاختبار |
--app
|
مطلوب: المسار المطلق (GCS أو نظام الملفات) لملف IPA الخاص بتطبيقك. لا تكون هذه العلامة صالحة إلا عند إجراء اختبارات "حلقة الألعاب". |
--scenario-numbers
|
الحلقات (المعروفة أيضًا باسم السيناريوهات) التي تريد تشغيلها في تطبيقك. يمكنك إدخال حلقة واحدة أو قائمة أو حلقات أو نطاق من الحلقات. القيمة التلقائية للتكرار هي 1.
على سبيل المثال، يشغّل |
--device-model
|
الجهاز الفعلي الذي تريد إجراء الاختبار عليه (يمكنك الاطّلاع على الأجهزة المتاحة التي يمكنك استخدامها). |
--timeout
|
الحدّ الأقصى لمدة الاختبار يمكنك إدخال عدد صحيح لتمثيل المدة بالثواني، أو عدد صحيح وتعداد لتمثيل المدة كوحدة زمنية أطول. على سبيل المثال:
|
على سبيل المثال، يشغّل الأمر التالي اختبار حلقة الألعاب الذي ينفّذ الحلقات 1 و4 و6 و7 و8 على هاتف iPhone 8 Plus:
gcloud beta firebase test ios run --type game-loop --app path/to/my/App.ipa --scenario-numbers 1,4,6-8 --device-model=iphone8plus
لمزيد من المعلومات حول gcloud CLI، يُرجى الاطّلاع على المستندات المرجعية.
الخطوة 3 (اختيارية): أتمِتة الاختبارات المستقبلية التي تنشئها
كتابة نصوص برمجية لأوامر gcloud باستخدام Test Lab
يمكنك استخدام نصوص shell البرمجية أو ملفات الدفعات لتنفيذ أوامر اختبار التطبيقات المتوافقة مع الأجهزة الجوّالة بشكل آلي، والتي كنت ستنفّذها باستخدام سطر أوامر gcloud. ينفّذ نموذج نص bash البرمجي هذا اختبار XCTest مع مهلة دقيقتَين، ويُبلغ عمّا إذا اكتملت عملية الاختبار بنجاح:
if gcloud firebase test ios run --test MyTest.zip --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 Test Lab تحديد ما إذا كانت المصفوفة التجريبية قد نجحت أو فشلت بسبب حدوث خطأ غير متوقّع. |
| 19 | ألغى المستخدم المصفوفة التجريبية. |
| 20 | حدث خطأ في البنية الأساسية للاختبار. |
الخطوة 4: التحقيق في نتائج الاختبار
عند بدء الاختبار، ستتلقّى رابطًا يؤدي إلى صفحة نتائج الاختبار. قد تستغرق الاختبارات بضع دقائق، وذلك حسب عدد الإعدادات المختلفة التي اخترتها ومهلة الاختبار المحدّدة لاختباراتك. بعد إجراء الاختبارات، يمكنك مراجعة نتائجها. يمكنك الاطّلاع على مقالة تحليل نتائج Firebase Test Lab لمعرفة المزيد عن كيفية تفسير نتائج الاختبار.
الخطوة التالية
يمكنك قراءة مستندات حزمة تطوير البرامج (SDK) في Google Cloud لاستكشاف خيارات الاختبار المتاحة للجمهور العام أو في الإصدار التجريبي.