اختبر باستخدام Google Cloud CLI

يصف هذا الدليل كيفية تشغيل اختبار XCTest أو اختبار Game Loop باستخدام 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، يمكنك اختياريًا تسمية مصفوفة الاختبار الخاصة بك باستخدام العلامة --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 بإعادة توقيع التطبيق بمعرف حزمة جديد لدعم الاستحقاقات الخاصة، لذا تأكد من عدم وجود موارد في ملفك المضغوط الذي يحتوي على إشارات مباشرة إلى معرف حزمة التطبيق.

الاستحقاقات المدعومة:
  1. دفع الإخطارات apns-environment
  2. VPN الشخصية com.apple.developer.networking.vpn.api
دفع الإخطارات

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

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

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

قم بإجراء اختبار حلقة اللعبة

قم بتشغيل الأمر gcloud beta firebase test ios run واستخدم العلامات التالية لتكوين التشغيل:

أعلام لاختبارات Game Loop
--type

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

--app

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

--scenario-numbers

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

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

--device-model

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

--timeout

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

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

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

على سبيل المثال، يقوم الأمر التالي بتشغيل اختبار Game Loop الذي ينفذ الحلقات 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 لمعرفة المزيد حول كيفية تفسير نتائج الاختبار.

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

اقرأ وثائق Google Cloud SDK لاستكشاف خيارات الاختبار المتوفرة بشكل عام أو التجريبية .