يوضّح هذا الدليل كيفية إجراء اختبار XCTest أو اختبار "حلقة اللعبة" باستخدام gcloud CLI.
الخطوة 1: إعداد بيئة Google Cloud SDK المحلية
- تنزيل 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 Console، يمكنك اختياريًا تصنيف مصفوفة الاختبار باستخدام العلامة
--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 تعيد خدمة 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
|
مطلوب: المسار المطلق (في Google Cloud Storage أو نظام الملفات) إلى ملف .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 البرمجية أو ملفات batch لأتمتة أوامر اختبار تطبيقات الأجهزة الجوّالة التي كنت ستنفّذها بخلاف ذلك باستخدام سطر أوامر 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 توفّر عدة رموز خروج يمكنك استخدامها لفهم نتائج الاختبارات التي تجريها باستخدام النصوص البرمجية أو ملفات batch بشكل أفضل.
| رمز الخروج | ملاحظات |
|---|---|
| 0 | تم اجتياز جميع عمليات تنفيذ الاختبار. |
| 1 | حدث خطأ عام. تشمل الأسباب المحتمَلة اسم ملف غير موجود أو خطأ في HTTP أو الشبكة. |
| 2 | تم إنهاء الاختبار بسبب توفير أوامر أو وسيطات غير معروفة. |
| 10 | لم يتم اجتياز حالة اختبار واحدة أو أكثر (الفئات التي تم اختبارها أو طرق الفئات) ضمن عملية تنفيذ الاختبار. |
| 15 | تعذّر على Firebase Test Lab تحديد ما إذا تم اجتياز مصفوفة الاختبار أو تعذّر إجراؤها بسبب حدوث خطأ غير متوقّع. |
| 19 | ألغى المستخدم مصفوفة الاختبار. |
| 20 | حدث خطأ في البنية الأساسية للاختبار. |
الخطوة 4: التحقيق في نتائج الاختبار
عند بدء الاختبار، تتلقّى رابطًا يؤدي إلى صفحة نتائج الاختبار. قد يستغرق إجراء الاختبارات عددًا من الدقائق، وذلك استنادًا إلى عدد الإعدادات المختلفة التي اخترتها ومدة المهلة التي ضبطتها للاختبارات. بعد إجراء الاختبارات، يمكنك مراجعة النتائج. يُرجى الاطّلاع على مقالة تحليل النتائج لمزيد من المعلومات عن كيفية تفسير نتائج الاختبار.Firebase Test Lab
الخطوة التالية
يُرجى قراءة مستندات Google Cloud SDK لاستكشاف خيارات الاختبار المتاحة بشكل عام أو في الإصدار التجريبي.