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

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

שלב 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 של המכשיר), מחליפים את הערך dimension ב-models, ב-versions או ב-locales בפקודה הבאה:

    gcloud firebase test ios dimension list

    כיוון המסך פשוט יותר, כי האפשרויות היחידה שלו הן portrait ו-landscape.

    בודקים את רשימת המאפיינים לבדיקה ובוחרים כמה שילובים שרוצים להריץ את הבדיקה שלהם. בדף תוכניות תמחור תוכלו לראות את המספר המקסימלי של שילובים שאפשר להריץ בכל יום.

  3. אחרי שבוחרים קבוצה של מאפייני בדיקה, אפשר להריץ את הבדיקות באמצעות הפקודה 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 משאבים שמכילים הפניות ישירות למזהה החבילה של האפליקציה.

הרשאות נתמכות:
  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 מאלץ את הבדיקה להסתיים אחרי שעה.

לדוגמה, הפקודה הבאה מפעילה בדיקה של 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 תוכלו לקרוא על אפשרויות בדיקה שזמינות לכלל המשתמשים או בגרסת בטא.