با gcloud CLI تست کنید

این راهنما نحوه اجرای تست XCTest یا Game Loop را با استفاده از gcloud CLI شرح می دهد.

مرحله 1 : محیط Google Cloud SDK محلی خود را پیکربندی کنید

  1. Google Cloud SDK را دانلود کنید.
  2. این شامل ابزار gcloud CLI نیز می شود.

  3. مطمئن شوید که نصب شما به‌روز است و شامل دستور gcloud firebase :
          gcloud components update
  4. با استفاده از حساب Google خود وارد gcloud CLI شوید:
          gcloud auth login
  5. پروژه Firebase خود را در PROJECT_ID تنظیم کنید، جایی که 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 است.

    فهرست ابعاد آزمون را بررسی کنید و چند ترکیبی را که می‌خواهید آزمایش خود را بر روی آنها اجرا کنید، انتخاب کنید. برای مشاهده حداکثر تعداد ترکیب هایی که می توانید در روز اجرا کنید، از Pricing Plans دیدن کنید.

  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=11.3

آزمون حقوق ویژه

برای آزمایش حقوقی که نیاز به شناسه برنامه صریح دارند، می‌توانید با تنظیم --test-special-entitlements این کار را انجام دهید. آزمایشگاه تست مجدداً برنامه را با یک شناسه بسته نرم افزاری جدید امضا می کند تا از حقوق ویژه پشتیبانی کند، بنابراین لطفاً مطمئن شوید که هیچ منبعی در فایل فشرده شما حاوی ارجاع مستقیم به شناسه بسته برنامه وجود ندارد.

Push Notifications

برای تأیید درخواست‌های اعلان فشار، کاربران می‌توانند با استفاده از کلید امضای خصوصی به همراه شناسه کلید - C7FD9DJAA8 و شناسه تیم - 9CKCGNNUQN ، توکن‌های وب JSON ایجاد کنند. توکن های تولید شده برای یک ساعت معتبر هستند و باید هر 60 دقیقه یکبار به روز شوند. در مورد ایجاد یک اتصال مبتنی بر توکن به APN ها بیشتر بخوانید.

تست حلقه بازی را اجرا کنید

دستور اجرای gcloud beta firebase test ios run کنید و از پرچم‌های زیر برای پیکربندی اجرا استفاده کنید:

پرچم برای تست های حلقه بازی
--type

Required : نوع تست 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 را در آیفون 8 پلاس اجرا می کند:

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، به مستندات مرجع مراجعه کنید.

مرحله 4 (اختیاری) : آزمایش‌های آینده را که می‌سازید خودکار کنید

اسکریپت دستورات 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 نتوانست تشخیص دهد که آیا ماتریس آزمایش موفق شد یا ناموفق.
19 ماتریس تست توسط کاربر لغو شد.
20 یک خطای زیرساخت آزمایشی رخ داد.

مرحله 5 : نتایج آزمایش را بررسی کنید

هنگامی که آزمون شروع می شود، پیوندی به صفحه نتایج آزمون دریافت می کنید. بسته به تعداد پیکربندی‌های مختلفی که انتخاب کرده‌اید و مدت زمان تست تعیین‌شده برای تست‌هایتان، ممکن است چند دقیقه اجرا شوند. پس از انجام تست های شما، می توانید نتایج آزمون را بررسی کنید. برای کسب اطلاعات بیشتر در مورد نحوه تفسیر نتایج آزمایش، به تجزیه و تحلیل نتایج آزمایشگاه تست Firebase مراجعه کنید.

گام بعدی

اسناد Google Cloud SDK را بخوانید تا گزینه‌های آزمایشی را که معمولاً در دسترس هستند یا در نسخه بتا هستند بررسی کنید.