בדיקה באמצעות Google Cloud CLI

במדריך הזה מוסבר איך להריץ בדיקת XCTest או בדיקת Game Loop באמצעות gcloud CLI.

שלב 1: מגדירים את סביבת Google Cloud SDK המקומית

  1. הורדה של Google Cloud SDK
  2. זה כולל את ה-CLI של gcloud.

  3. מוודאים שההתקנה עדכנית וכוללת את הפקודה gcloud firebase:
          gcloud components update
  4. מתחברים ל-CLI של gcloud באמצעות חשבון 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. אחרי שבוחרים קבוצה של מאפייני בדיקה, אפשר להריץ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 חותם מחדש על האפליקציה עם מזהה חבילה חדש כדי לתמוך בהרשאות מיוחדות, לכן חשוב לוודא שאין משאבים בקובץ ה-ZIP שמכילים הפניות ישירות למזהה החבילה של האפליקציה.

הזכויות הנתמכות:
  1. התראות apns-environment
  2. 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 שרוצים להריץ. אפשר להזין את סוגי הבדיקות 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 יגרום לסיום הבדיקה כשהיא תפעל עד שעה.

לדוגמה, הפקודה הבאה מריצה בדיקת לולאת משחק שמבצעת את הלולאות 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

מידע נוסף על ה-CLI של gcloud מופיע במאמרי העזרה.

שלב 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.