الاختبار باستخدام واجهة سطر الأوامر في Google Cloud

يوضّح هذا الدليل كيفية تشغيل اختبار XCTest أو اختبار حلقة الألعاب باستخدام gcloud CLI.

الخطوة 1: إعداد بيئة Google Cloud SDK المحلية

  1. تنزيل Google Cloud SDK
  2. يتضمّن ذلك أداة gcloud CLI.

  3. تأكَّد من أنّ عملية التثبيت حديثة وتتضمّن الأمر gcloud firebase
          gcloud components update
  4. سجِّل الدخول إلى gcloud CLI باستخدام حسابك على Google:
          gcloud auth login
  5. اضبط مشروعك على Firebase في gcloud، حيث PROJECT_ID هو رقم تعريف مشروعك على Firebase:
         gcloud config set project PROJECT_ID

الخطوة 2: تشغيل الاختبار

تشغيل اختبار XCTest

  1. حمِّل ملف ‎ .zip الخاص باختبارك عن طريق تشغيل الأمر التالي (إذا لم تكن قد ضغطت تطبيقك بعد، اطّلِع على مقالة ضغط اختبار XCTest):

    cd FOLDER_WITH_TEST_OUTPUT/Build/Products ; \
    zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
  2. اختَر أبعاد الاختبار.

    تتيح لك خدمة Test Lab تشغيل الاختبارات على مجموعة متنوّعة من إصدارات iOS والأجهزة واتجاهات الشاشة والمناطق الجغرافية. تُعرف هذه الإعدادات باسم أبعاد الاختبار. للاطّلاع على خيارات كل بُعد (مثل إصدارات Xcode المتوافقة مع إصدار iOS الخاص بالجهاز)، استبدِل models أو versions أو locales بـ dimension في الأمر التالي:

    gcloud firebase test ios dimension list

    يكون اتجاه الشاشة أبسط إلى حد ما، لأنّ خياراته الوحيدة هي portrait و landscape.

    اطّلِع على قائمة أبعاد الاختبار، واختَر بعض التركيبات التي تريد تشغيل اختبارك عليها. انتقِل إلى خطط الأسعار للاطّلاع على الحد الأقصى لعدد التركيبات التي يمكنك تشغيلها في اليوم الواحد.

  3. بعد اختيار مجموعة من أبعاد الاختبار، يمكنك أن تطلب من 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 تعيد خدمة توقيع التطبيق باستخدام معرّف حزمة جديد لدعم الحقوق الخاصة، لذا تأكَّد من عدم توفّر أي موارد في ملف ‎.zip تحتوي على مراجع مباشرة إلى معرّف حزمة التطبيق.

الحقوق المتوافقة:
  1. الإشعارات الفورية apns-environment
  2. الشبكة الخاصة الافتراضية (VPN) الشخصية com.apple.developer.networking.vpn.api
الإشعارات الفورية

لإذن طلبات الإشعارات الفورية، يمكن للمستخدمين إنشاء رموز JSON المميّزة للويب باستخدام مفتاح التوقيع الخاص بالإضافة إلى رقم تعريف المفتاح - C7FD9DJAA8 ورقم تعريف الفريق - 9CKCGNNUQN. ستكون الرموز المميّزة التي تم إنشاؤها صالحة لمدة ساعة واحدة ويجب إعادة تحميلها كل 60 دقيقة. يمكنك الاطّلاع على مزيد من المعلومات حول إنشاء اتصال مستند إلى الرمز المميّز بخدمة APNs.

مجموعات التطبيقات

تكون أرقام تعريف مجموعات التطبيقات فريدة عالميًا. وهذا يعني أنّه عند إعادة توقيع تطبيقات المستخدمين، لا يمكننا استخدام رقم تعريف مجموعة التطبيق المرتبط بحساب المطوّر في Test Lab. إذا كان اختبارك يعتمد على مجموعات التطبيقات، سيتعذّر إجراء الاختبار.

تشغيل اختبار حلقة الألعاب

شغِّل الأمر gcloud beta firebase test ios run واستخدِم العلامات التالية لضبط عملية التشغيل:

علامات اختبارات حلقة الألعاب
--type

مطلوب: يحدّد نوع اختبار iOS الذي تريد تشغيله. يمكنك إدخال أنواع الاختبار xctest (تلقائي) أو game-loop.

--app

مطلوب: المسار المطلق (في Google Cloud Storage أو نظام الملفات) إلى ملف ‎.IPA الخاص بتطبيقك. لا تكون هذه العلامة صالحة إلا عند تشغيل اختبارات حلقة الألعاب.

--scenario-numbers

الحلقات (المعروفة أيضًا باسم السيناريوهات) التي تريد تشغيلها في تطبيقك. يمكنك إدخال حلقة واحدة أو قائمة بالحلقات أو نطاق من الحلقات. الحلقة التلقائية هي 1.

على سبيل المثال، يؤدي الأمر --scenario-numbers=1-3,5 إلى تشغيل الحلقات 1 و2 و3 و5.

--device-model

الجهاز الفعلي الذي تريد تشغيل اختبارك عليه (تعرَّف على الأجهزة المتاحة التي يمكنك استخدامها).

--timeout

المدة القصوى التي تريد أن يستغرقها الاختبار. يمكنك إدخال عدد صحيح لـ تمثيل المدة بالثواني، أو عدد صحيح وتعداد لتمثيل الـ مدة كوحدة زمنية أطول.

على سبيل المثال:

  • --timeout=200 يفرض إنهاء الاختبار عندما تصل مدته إلى 200 ثانية.
  • --timeout=1h يفرض إنهاء الاختبار عندما تصل مدته إلى ساعة واحدة.

على سبيل المثال، يشغِّل الأمر التالي اختبار حلقة الألعاب الذي ينفّذ الحلقات 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

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

الخطوة التالية

اطّلِع على مستندات Google Cloud SDK لاستكشاف خيارات الاختبار المتاحة بشكل عام أو في الإصدار التجريبي.