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

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

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