במדריך הזה מוסבר איך להריץ בדיקת XCTest או בדיקת Game Loop באמצעות gcloud CLI.
שלב 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: מריצים את הבדיקה
הפעלת 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
.מעיינים ברשימת מאפייני הבדיקה ובוחרים כמה שילובים שרוצים להפעיל עליהם את הבדיקה. בתוכניות התמחור אפשר לראות את המספר המקסימלי של שילובים שאפשר להפעיל בכל יום.
אחרי שבוחרים קבוצה של מאפייני בדיקה, אפשר להריץ את הבדיקות באמצעות הפקודה
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
re-signs the application with a new bundle-identifier to support special
entitlements, so make sure there are no resources in your zip file
containing direct references to the app's bundle identifier.
- התראות בדחיפה
apns-environment
- VPN אישי
com.apple.developer.networking.vpn.api
כדי לאשר בקשות לשליחת התראות פוש, המשתמשים יכולים ליצור טוקנים של JSON Web Token (טוקן רשת מבוסס 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 באייפון 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
אפשר להשתמש בסקריפטים של Shell או בקובצי אצווה כדי להריץ באופן אוטומטי פקודות לבדיקת אפליקציות לנייד, שבדרך כלל מריצים באמצעות שורת הפקודה 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.