يصف هذا الدليل كيفية إجراء اختبار XCTest أو اختبار حلقة الألعاب باستخدام gcloud CLI.
الخطوة 1: ضبط بيئة Google Cloud SDK المحلية
- تنزيل Google Cloud SDK
- تأكَّد من أنّ عملية التثبيت محدّثة وتتضمّن
command
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، يُرجى الاطّلاع على المستندات المرجعية.
الخطوة 3 (اختيارية): إعداد الاختبارات المستقبلية التي تنشئها تلقائيًا
إنشاء نصوص برمجية لأوامر gcloud باستخدام Test Lab
يمكنك استخدام نصوص Shell البرمجية أو ملفات المعالجة التسلسلية لتشغيل أوامر اختبار التطبيقات المتوافقة مع الأجهزة الجوّالة بشكل آلي، والتي كان من الممكن تنفيذها باستخدام سطر أوامر gcloud. يُشغِّل نموذج ملف bash script هذا اختبار 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 لمعرفة المزيد من المعلومات عن كيفية تفسير نتائج اختبارك.
الخطوة التالية
اطّلِع على مستندات حزمة تطوير برامج Google Cloud SDK لاستكشاف خيارات الاختبار التي تتوفّر بشكل عام أو في الإصدار التجريبي.