این راهنما نحوه اجرای تست XCTest یا Game Loop را با استفاده از gcloud CLI شرح می دهد.
مرحله 1 : محیط Google Cloud SDK محلی خود را پیکربندی کنید
- Google Cloud SDK را دانلود کنید
- مطمئن شوید که نصب شما به روز است و شامل دستور
gcloud firebase
است:gcloud components update
- با استفاده از حساب Google خود وارد gcloud CLI شوید:
gcloud auth login
- پروژه Firebase خود را در gcloud تنظیم کنید، جایی که PROJECT_ID شناسه پروژه Firebase شما است:
gcloud config set project PROJECT_ID
این شامل ابزار gcloud CLI است.
مرحله 2 : آزمون خود را اجرا کنید
XCTest را اجرا کنید
با اجرای دستور زیر فایل .zip آزمایش خود را آپلود کنید (اگر هنوز برنامه خود را بسته بندی نکرده اید، به بسته بندی XCTest خود مراجعه کنید):
cd FOLDER_WITH_TEST_OUTPUT/Build/Products ; \ zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
ابعاد تست خود را انتخاب کنید
Test Lab به شما امکان میدهد آزمایشها را بر روی انواع نسخههای iOS، دستگاهها، جهتگیری صفحهنمایش و زبانهای محلی اجرا کنید. این پیکربندی ها به عنوان ابعاد آزمایشی شناخته می شوند. برای مشاهده گزینههای هر بعد (مثلاً نسخههای Xcode پشتیبانیشده برای نسخه iOS دستگاه)،
models
،versions
یاlocales
را برایdimension
در دستور زیر جایگزین کنید:gcloud firebase test ios dimension list
جهت گیری صفحه تا حدودی ساده تر است، زیرا تنها گزینه های آن
portrait
وlandscape
است.فهرست ابعاد تست را بررسی کنید و چند ترکیبی را که میخواهید آزمایش خود را روی آنها اجرا کنید انتخاب کنید. برای مشاهده حداکثر تعداد ترکیبهایی که میتوانید در روز اجرا کنید، به طرحهای قیمتگذاری مراجعه کنید.
هنگامی که مجموعهای از ابعاد آزمایشی را انتخاب کردید، میتوانید از 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 مجدداً برنامه را با یک شناسه بسته نرم افزاری جدید امضا می کند تا از حقوق ویژه پشتیبانی کند، بنابراین مطمئن شوید که هیچ منبعی در فایل فشرده شما حاوی ارجاع مستقیم به شناسه بسته برنامه وجود ندارد.
- Push Notifications
apns-environment
- VPN شخصی
com.apple.developer.networking.vpn.api
برای تأیید درخواستهای اعلان فشار، کاربران میتوانند با استفاده از کلید امضای خصوصی به همراه شناسه کلید - C7FD9DJAA8 و شناسه تیم - 9CKCGNNUQN ، توکنهای وب JSON ایجاد کنند. توکن های تولید شده برای یک ساعت معتبر هستند و باید هر 60 دقیقه یکبار به روز شوند. در مورد ایجاد یک اتصال مبتنی بر توکن به APN ها بیشتر بخوانید.
گروه های برنامهشناسههای گروه برنامه به طور جهانی منحصربهفرد هستند. این بدان معناست که وقتی برنامههای کاربر را دوباره امضا میکنیم، فقط میتوانیم از شناسه گروه برنامه که با حساب توسعهدهنده Test Lab مرتبط است استفاده کنیم. اگر آزمون شما به گروه های برنامه متکی باشد، آزمون شما ناموفق خواهد بود.
تست حلقه بازی را اجرا کنید
دستور gcloud beta firebase test ios run
اجرا کنید و از پرچمهای زیر برای پیکربندی اجرا استفاده کنید:
پرچم برای تست های حلقه بازی | |
---|---|
--type | Required : نوع تست iOS را که می خواهید اجرا کنید را مشخص می کند. می توانید انواع تست |
--app | مورد نیاز : مسیر مطلق (GCS یا سیستم فایل) به فایل IPA برنامه شما. این پرچم فقط هنگام اجرای تست های Game Loop معتبر است. |
--scenario-numbers | حلقه هایی (معروف به سناریوها) که می خواهید در برنامه خود اجرا کنید. میتوانید یک حلقه، یک لیست یا حلقهها یا طیفی از حلقهها را وارد کنید. حلقه پیش فرض 1 است. به عنوان مثال، |
--device-model | دستگاه فیزیکی که می خواهید آزمایش خود را روی آن اجرا کنید (ببینید از کدام دستگاه های موجود می توانید استفاده کنید). |
--timeout | حداکثر مدت زمانی که می خواهید آزمون شما اجرا شود. می توانید یک عدد صحیح برای نمایش مدت زمان در ثانیه یا یک عدد صحیح و یک عدد برای نمایش مدت زمان به عنوان یک واحد زمان طولانی تر وارد کنید. به عنوان مثال:
|
به عنوان مثال، دستور زیر یک تست 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، به مستندات مرجع مراجعه کنید.
مرحله 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
کدهای خروج اسکریپت
Test Lab چندین کد خروج ارائه می دهد که می توانید برای درک بهتر نتایج آزمایش هایی که با استفاده از اسکریپت ها یا فایل های دسته ای اجرا می کنید، استفاده کنید.
کد خروج | یادداشت ها |
---|---|
0 | تمام آزمایش های اجرا شده قبول شد. |
1 | یک شکست کلی رخ داد. دلایل احتمالی عبارتند از: نام فایلی که وجود ندارد یا خطای HTTP/شبکه. |
2 | آزمایش خارج شد زیرا دستورات یا آرگومان های ناشناخته ارائه شد. |
10 | یک یا چند مورد تست (کلاسهای تست شده یا روشهای کلاس) در یک اجرای آزمایشی موفق نشدند. |
15 | به دلیل یک خطای غیرمنتظره، Firebase Test Lab نتوانست تشخیص دهد که آیا ماتریس آزمایش موفق شد یا ناموفق. |
19 | ماتریس تست توسط کاربر لغو شد. |
20 | یک خطای زیرساخت آزمایشی رخ داد. |
مرحله 4 : نتایج آزمون را بررسی کنید
هنگامی که آزمون شروع می شود، پیوندی به صفحه نتایج آزمون دریافت می کنید. بسته به تعداد پیکربندیهای مختلفی که انتخاب کردهاید و مدت زمان تست تعیینشده برای تستهایتان، ممکن است چند دقیقه اجرا شوند. پس از اجرای آزمایشات، می توانید نتایج آزمون را بررسی کنید. برای کسب اطلاعات بیشتر در مورد نحوه تفسیر نتایج آزمایش، به تجزیه و تحلیل نتایج Firebase Test Lab مراجعه کنید.
مرحله بعدی
اسناد Google Cloud SDK را بخوانید تا گزینههای آزمایشی را که معمولاً در دسترس هستند یا در نسخه بتا هستند بررسی کنید.
،این راهنما نحوه اجرای تست XCTest یا Game Loop را با استفاده از gcloud CLI شرح می دهد.
مرحله 1 : محیط Google Cloud SDK محلی خود را پیکربندی کنید
- Google Cloud SDK را دانلود کنید
- مطمئن شوید که نصب شما به روز است و شامل دستور
gcloud firebase
است:gcloud components update
- با استفاده از حساب Google خود وارد gcloud CLI شوید:
gcloud auth login
- پروژه Firebase خود را در gcloud تنظیم کنید، جایی که PROJECT_ID شناسه پروژه Firebase شما است:
gcloud config set project PROJECT_ID
این شامل ابزار gcloud CLI است.
مرحله 2 : آزمون خود را اجرا کنید
XCTest را اجرا کنید
با اجرای دستور زیر فایل .zip آزمایش خود را آپلود کنید (اگر هنوز برنامه خود را بسته بندی نکرده اید، به بسته بندی XCTest خود مراجعه کنید):
cd FOLDER_WITH_TEST_OUTPUT/Build/Products ; \ zip -r MyTests.zip Debug-iphoneos YOUR_SCHEME_iphoneosDEPLOYMENT_TARGET-arm64.xctestrun
ابعاد تست خود را انتخاب کنید
Test Lab به شما امکان میدهد آزمایشها را بر روی انواع نسخههای iOS، دستگاهها، جهتگیری صفحهنمایش و زبانهای محلی اجرا کنید. این پیکربندی ها به عنوان ابعاد آزمایشی شناخته می شوند. برای مشاهده گزینههای هر بعد (مثلاً نسخههای Xcode پشتیبانیشده برای نسخه iOS دستگاه)،
models
،versions
یاlocales
را برایdimension
در دستور زیر جایگزین کنید:gcloud firebase test ios dimension list
جهت گیری صفحه تا حدودی ساده تر است، زیرا تنها گزینه های آن
portrait
وlandscape
است.فهرست ابعاد آزمون را بررسی کنید و چند ترکیبی را که میخواهید آزمایش خود را روی آنها اجرا کنید انتخاب کنید. برای مشاهده حداکثر تعداد ترکیب هایی که می توانید در روز اجرا کنید، از Pricing Plans دیدن کنید.
هنگامی که مجموعهای از ابعاد آزمایشی را انتخاب کردید، میتوانید از 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 مجدداً برنامه را با یک شناسه بسته نرم افزاری جدید امضا می کند تا از حقوق ویژه پشتیبانی کند، بنابراین مطمئن شوید که هیچ منبعی در فایل فشرده شما حاوی ارجاع مستقیم به شناسه بسته برنامه وجود ندارد.
- Push Notifications
apns-environment
- VPN شخصی
com.apple.developer.networking.vpn.api
برای تأیید درخواستهای اعلان فشار، کاربران میتوانند با استفاده از کلید امضای خصوصی به همراه شناسه کلید - C7FD9DJAA8 و شناسه تیم - 9CKCGNNUQN ، توکنهای وب JSON ایجاد کنند. توکن های تولید شده برای یک ساعت معتبر هستند و باید هر 60 دقیقه یکبار به روز شوند. در مورد ایجاد یک اتصال مبتنی بر توکن به APN ها بیشتر بخوانید.
گروه های برنامهشناسههای گروه برنامه به طور جهانی منحصربهفرد هستند. این بدان معناست که وقتی برنامههای کاربر را دوباره امضا میکنیم، فقط میتوانیم از شناسه گروه برنامه که با حساب توسعهدهنده Test Lab مرتبط است استفاده کنیم. اگر آزمون شما به گروه های برنامه متکی باشد، آزمون شما ناموفق خواهد بود.
تست حلقه بازی را اجرا کنید
دستور gcloud beta firebase test ios run
اجرا کنید و از پرچمهای زیر برای پیکربندی اجرا استفاده کنید:
پرچم برای تست های حلقه بازی | |
---|---|
--type | Required : نوع تست iOS را که می خواهید اجرا کنید را مشخص می کند. می توانید انواع تست |
--app | مورد نیاز : مسیر مطلق (GCS یا سیستم فایل) به فایل IPA برنامه شما. این پرچم فقط هنگام اجرای تست های Game Loop معتبر است. |
--scenario-numbers | حلقه هایی (معروف به سناریوها) که می خواهید در برنامه خود اجرا کنید. شما می توانید یک حلقه، یک لیست یا حلقه ها یا یک محدوده از حلقه ها را وارد کنید. حلقه پیش فرض 1 است. به عنوان مثال، |
--device-model | دستگاه فیزیکی که میخواهید آزمایش خود را روی آن اجرا کنید (ببینید از کدام دستگاههای موجود میتوانید استفاده کنید). |
--timeout | حداکثر مدت زمانی که می خواهید آزمون شما اجرا شود. می توانید یک عدد صحیح برای نمایش مدت زمان در ثانیه یا یک عدد صحیح و یک عدد برای نمایش مدت زمان به عنوان یک واحد زمان طولانی تر وارد کنید. به عنوان مثال:
|
به عنوان مثال، دستور زیر یک تست 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، به مستندات مرجع مراجعه کنید.
مرحله 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
کدهای خروج اسکریپت
Test Lab چندین کد خروج ارائه می دهد که می توانید برای درک بهتر نتایج آزمایش هایی که با استفاده از اسکریپت ها یا فایل های دسته ای اجرا می کنید، استفاده کنید.
کد خروج | یادداشت ها |
---|---|
0 | تمام آزمایش های اجرا شده قبول شد. |
1 | یک شکست کلی رخ داد. دلایل احتمالی عبارتند از: نام فایلی که وجود ندارد یا خطای HTTP/شبکه. |
2 | آزمایش خارج شد زیرا دستورات یا آرگومان های ناشناخته ارائه شد. |
10 | یک یا چند مورد تست (کلاسهای تست شده یا روشهای کلاس) در یک اجرای آزمایشی موفق نشدند. |
15 | به دلیل یک خطای غیرمنتظره، Firebase Test Lab نتوانست تشخیص دهد که آیا ماتریس آزمایش موفق شد یا ناموفق. |
19 | ماتریس تست توسط کاربر لغو شد. |
20 | یک خطای زیرساخت آزمایشی رخ داد. |
مرحله 4 : نتایج آزمایش را بررسی کنید
هنگامی که آزمون شروع می شود، پیوندی به صفحه نتایج آزمون دریافت می کنید. بسته به تعداد پیکربندیهای مختلفی که انتخاب کردهاید و مدت زمان تست تعیینشده برای تستهایتان، ممکن است چند دقیقه اجرا شوند. پس از اجرای آزمایشات، می توانید نتایج آزمون را بررسی کنید. برای کسب اطلاعات بیشتر در مورد نحوه تفسیر نتایج آزمایش، به تجزیه و تحلیل نتایج Firebase Test Lab مراجعه کنید.
مرحله بعدی
اسناد Google Cloud SDK را بخوانید تا گزینههای آزمایشی را که معمولاً در دسترس هستند یا در نسخه بتا هستند بررسی کنید.