במדריך הזה מוסבר איך להריץ בדיקת XCTest או בדיקת Game Loop באמצעות ה-CLI של gcloud.
שלב 1: הגדרת הסביבה המקומית של Google Cloud SDK
- מורידים את Google Cloud SDK
- צריך לוודא שההתקנה עדכנית וכוללת את הפקודה
gcloud firebase
:gcloud components update
- מתחברים ל-CLI של gcloud באמצעות חשבון Google:
gcloud auth login
- מגדירים את פרויקט Firebase ב-gcloud, כאשר PROJECT_ID הוא מזהה הפרויקט ב-Firebase:
gcloud config set project PROJECT_ID
כולל ה-CLI של gcloud.
שלב 2: מריצים את הבדיקה
הרצת בדיקת XC
מעלים את קובץ ה-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
.מעיינים ברשימת המאפיינים לבדיקה ובוחרים כמה שילובים שלגביהם רוצים להריץ את הבדיקה. בדף תוכניות תמחור תוכלו לראות את המספר המקסימלי של שילובים שאפשר להריץ בכל יום.
אחרי שבוחרים קבוצה של מאפייני בדיקה, אפשר להריץ את הבדיקות באמצעות הפקודה
firebase test ios run
ב-Test Lab. לכל שילוב של מאפייני הבדיקה שרוצים לבדוק, צריך לכלול דגל--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
חותם מחדש על האפליקציה עם מזהה חבילה חדש כדי לתמוך בהרשאות מיוחדות, לכן חשוב לוודא שאין בקובץ ה-zip משאבים שמכילים הפניות ישירות למזהה החבילה של האפליקציה.
- התראות בדחיפה
apns-environment
- VPN אישי
com.apple.developer.networking.vpn.api
כדי לאשר בקשות של התראות דחיפה, המשתמשים יכולים ליצור אסימוני רשת מבוססי JSON באמצעות מפתח החתימה הפרטי, יחד עם מזהה המפתח – C7FD9DJAA8 ומזהה הצוות – 9CKCGNNUQN. האסימונים שייווצרו יהיו בתוקף למשך שעה אחת, וצריך לרענן אותם כל 60 דקות. מידע נוסף זמין במאמר יצירת חיבור מבוסס-אסימון ל-APNs.
קבוצות של אפליקציותמזהי קבוצות האפליקציות הם ייחודיים בכל מקום. כלומר, כשאנחנו מאשרים מחדש את האפליקציות של המשתמשים, אנחנו יכולים להשתמש רק במזהה קבוצת האפליקציות שמשויך לחשבון הפיתוח Test Lab. אם הבדיקה מסתמכת על קבוצות של אפליקציות, הבדיקה תיכשל.
הרצת בדיקת Game Loop
מריצים את הפקודה gcloud beta firebase test ios run
ומשתמשים בדגלים הבאים כדי להגדיר את ההרצה:
דגלים לבדיקות של Game Loop | |
---|---|
--type
|
חובה: מציין את סוג הבדיקה של iOS שרוצים להריץ. אפשר להזין את סוגי הבדיקות |
--app
|
חובה: נתיב מוחלט (GCS או מערכת קבצים) לקובץ ה-IPA של האפליקציה. הדגל הזה תקף רק כשמריצים בדיקות של Game Loop. |
--scenario-numbers
|
את הלולאות (שנקראות גם תרחישים) שרוצים להריץ באפליקציה. אפשר להזין לולאה אחת, רשימה או לולאות, או טווח של לולאות. ברירת המחדל של הלולאה היא 1.
לדוגמה, |
--device-model
|
המכשיר הפיזי שבו רוצים להריץ את הבדיקה (מידע על המכשירים הזמינים שבהם אפשר להשתמש). |
--timeout
|
משך הזמן המקסימלי שבו רוצים להריץ את הבדיקה. אפשר להזין מספר שלם כדי לייצג את משך הזמן בשניות, או מספר שלם וספירה כדי לייצג את משך הזמן כיחידת זמן ארוכה יותר. לדוגמה:
|
לדוגמה, הפקודה הבאה מפעילה בדיקה של 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
מידע נוסף על ה-CLI של gcloud זמין במאמרי העזרה.
שלב 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 תוכלו למצוא אפשרויות בדיקה זמינות לכלל המשתמשים או בגרסת בטא.