Catch up on highlights from Firebase at Google I/O 2023. Learn more

اختبر مع 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. بمجرد اختيار مجموعة من أبعاد الاختبار ، يمكنك أن تجعل مختبر الاختبار يجري اختباراتك باستخدام أمر 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=11.3

    لمساعدتك في تحديد مصفوفات الاختبار وتحديد موقعها في وحدة تحكم 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 الخاص بك تحتوي على مراجع مباشرة لمعرف حزمة التطبيق.

دفع الإخطارات

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

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

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

قم بإجراء اختبار Game Loop

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

إشارات لاختبارات حلقة اللعبة
--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 Test Lab لمعرفة المزيد حول كيفية تفسير نتائج الاختبار.

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

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