בדיקה באמצעות 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 דקות. מידע נוסף על יצירת חיבור מבוסס אסימון ל-APN.

קבוצות של אפליקציות

מזהי קבוצות האפליקציות הם ייחודיים בכל מקום. כלומר, כשאנחנו מאשרים מחדש את האפליקציות של המשתמשים, אנחנו יכולים להשתמש רק במזהה קבוצת האפליקציות שמשויך לחשבון הפיתוח 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 ב-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 כדי ללמוד על אפשרויות הבדיקה זמינים לכלל המשתמשים (GA) או בבטא.