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

يصف هذا الدليل طريقة إجراء اختبار XCTest أو Game Loop باستخدام gcloud CLI.

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

  1. نزِّل حزمة تطوير البرامج (SDK) لخدمة Google Cloud.
  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 التلقائي الذي يستخدمه مركز الاختبار الافتراضي. لتحديد إصدار 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 أي موارد في الملف المضغوط تحتوي على مراجع مباشرة لمعرّف حزمة التطبيق.

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

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

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

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

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

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

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

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

--app

مطلوب: المسار المطلق (GCS أو نظام الملفات) لملف 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

رموز الخروج من النص البرمجي

يوفّر مركز الاختبار الافتراضي العديد من رموز الخروج التي يمكنك استخدامها للتعرّف بشكل أفضل على نتائج الاختبارات التي تجريها باستخدام النصوص البرمجية أو الملفات الدُفعية.

رمز الخروج ملاحظات
0 تم اجتياز جميع عمليات التنفيذ الاختبارية.
1 حدث خطأ عام. من بين الأسباب المحتملة لحدوث ذلك: اسم ملف غير موجود أو خطأ في HTTP/الشبكة.
2 تم الخروج من الاختبار بسبب تقديم أوامر أو وسيطات غير معروفة.
10 لم تجتز حالة اختبار واحدة أو أكثر (فصول مُختبَرة أو طرق الفئات) خلال إجراء الاختبار.
15 تعذّر على مركز الاختبار الافتراضي لمنصة Firebase تحديد ما إذا كانت مصفوفة الاختبار قد اجتازت الاختبار أو فشلت بسبب حدوث خطأ غير متوقع.
19 تم إلغاء المصفوفة التجريبية من قِبل المستخدم.
20 حدث خطأ في البنية الأساسية التجريبية.

الخطوة 4: التحقيق في نتائج الاختبارات

عند بدء الاختبار، ستتلقّى رابطًا يؤدي إلى صفحة نتائج الاختبار. قد يستغرق إجراء الاختبارات عدة دقائق، بناءً على عدد عمليات الضبط المختلفة التي اخترتها ومدة مهلة الاختبار المحددة لاختباراتك. بعد إجراء الاختبارات، يمكنك مراجعة نتائج الاختبار. اطّلِع على تحليل نتائج مركز الاختبار الافتراضي لمنصة Firebase لمعرفة مزيد من المعلومات حول طريقة تفسير نتائج الاختبار.

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

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