אנחנו שמחים להודיע על השקת גרסת Preview של ממשק שורת הפקודה (CLI) של gcloud beta device-run ב-Developer Device Platform (DDP), שיפור של gcloud
firebase test CLI.
gcloud beta device-run CLI מפשט ומעדכן את ההרצה של בדיקות אוטומציה ובדיקות מכשור במכשיר, פיזי או וירטואלי. בגרסת הפרה-אלפא, יש תמיכה ב-Android Instrumentation וב-iOS XCTest. הוראות מופיעות במאמר בנושא סקירה כללית של הפעלת מכשיר.
סקירה כללית והטבות
מעבר מ-Firebase Test Lab אל Developer Device Platform (DDP) מציע כמה יתרונות משמעותיים, במיוחד מבחינת חיסכון בעלויות, מהירות ביצוע הבדיקות, ניפוי באגים מתקדם ותמיכה מובנית בתהליכי עבודה מבוססי-AI.
מפתחים שמריצים בדיקות לנייד בענן צריכים להתמודד עם מודלים שונים של הגדרות (Firebase Test Lab) או לתחזק צינורות נוספים ושכבות של כלי עזר (Flank).
gcloud beta device-run CLI בפלטפורמת מכשירי הפיתוח משלב את היכולות האלה ישירות ב-Google Cloud CLI. הוא מספק ממשק קצה עורפי חזק יותר, הצהרתי וניתן להרחבה, שמריץ בדיקות בצורה צפויה ויעילה במכשירים פיזיים וגם במכשירים וירטואליים.
התכונות והיכולות העיקריות שהופכות את DDP לפלטפורמה עדיפה בהשוואה ל-Firebase Test Lab כוללות:
פיצול חכם מתקדם
ב-Firebase Test Lab, ההסתמכות היא על נתוני תזמון של ריצה יחידה כדי לפצל את הבדיקות, אבל התכונה Smart Sharding של DDP הרבה יותר חכמה:
- נתונים היסטוריים מ-30 ימים: התכונה DDP מנתחת עד 30 ימים של היסטוריית ביצוע כדי לחלק את הבדיקות לשברים יציבים שעברו אופטימיזציה.
- מעקב אחר משך הזמן לפי מכשיר: DDP עוקב אחרי זמני הריצה של ביצוע הבדיקות לפי דגם מכשיר ספציפי, במקום להשתמש בממוצעים כלליים של הפלטפורמה בכל המכשירים.
- מודלים של תקורה של Orchestrator: DDP לוקח בחשבון את התקורה של הפעלת Android Test Orchestrator לכל מופע בדיקה, כדי לוודא שהשברים לא חורגים ממשך הזמן המוגדר שלהם.
ניסיונות חוזרים פרטניים וחסכוניים
ב-Test Lab, אם מקרה בדיקה יחיד בתוך שבר נכשל, צריך להפעיל מחדש את כל השבר (יכול להיות שמדובר בעשרות בדיקות), מה שמגדיל את זמני ההפעלה ואת עלויות החיוב. ב-DDP יש מנגנוני ניסיון חוזר יעילים מאוד:
- ניסיונות חוזרים ממוקדים ברמת מקרה הבדיקה: מבודדים ומנסים שוב רק את מקרי הבדיקה הספציפיים שנכשלו בתוך שבר.
- ניסיונות חוזרים של בדיקות לא יציבות ברצף: כברירת מחדל, ניסיונות חוזרים של בדיקות לא יציבות מבוצעים ברצף (במקום במקביל כמו ב-Test Lab). השילוב הזה עם ניסיונות חוזרים ברמת תרחיש הבדיקה מקצר באופן משמעותי את משך הבדיקות הכולל, וכך חוסך עלויות משמעותיות בחיוב על המכשיר.
תמיכה מתקדמת בבדיקות ל-Android
DDP מטפל במגבלות קיימות בממשק ה-API של Test Lab לבדיקות:
- בדיקת קובץ APK בלבד (ללא אפליקציות פיקטיביות): בעבר, כדי להריץ בדיקות עם מכשור עצמי ב-Test Lab, היה צורך באפליקציה פיקטיבית. DDP תומך בהרצת בדיקות אינסטרומנטציה עם APK לבדיקה בלבד.
- הארכת הזמן הקצוב לתפוגה של שבר: DDP מגדיל את מגבלת ההרצה המקסימלית של שבר אחד של בדיקת אינסטרומנטציה מ-45 דקות (המגבלה ב-Test Lab) ל-3 שעות.
- מספר כלי תזמור: DDP תומך בכמה גרסאות של תזמור בדיקות ל-Android.
- תמיכה מובנית בקבצים בינאריים של C++: DDP תומך בהרצה של קבצים בינאריים של C++ ל-Android.
אינטראקציות משופרות עם מכשירים וניפוי באגים מתקדם
התכונה DDP מספקת אינטראקציות מעמיקות יותר במכשיר וארטיפקטים עשירים יותר לניפוי באגים מאלה שזמינים ב-Test Lab:
- מיקומים מדומים: DDP תומך בהדמיה של קואורדינטות GPS של מכשיר.
- תמיכה ב-ApkSets: מפתחים יכולים להתקין ApkSets (קבצים מסוג .
apks) ישירות במכשירים מרוחקים. - ניפוי באגים מתקדם: DDP חושף יומני מערכת חיוניים ומידע על ניפוי באגים, כולל
dumpsysו-bugreport, ישירות למפתח.
קטלוג מכשירים עם יכולת הרחבה גבוהה
DDP מחליף את קטלוג הסביבות הנוקשה והכבד של Test Lab ב-Device Catalog API שעבר עיצוב מחדש לחלוטין:
- סינון בצד השרת: מאפשר למפתחים לסנן מכשירים בצד השרת, וכך להאיץ את השאילתות ולקצר את זמן האחזור של מטען הייעודי (payload).
- נתוני זמינות בזמן אמת: DDP מספק נתוני זמינות של מכשירים בזמן אמת ישירות ל-הרצה במכשיר, כך שתוכלו לבחור מכשירים עם זמינות גבוהה ולהימנע מזמני המתנה ארוכים בתור – תכונה שחסרה לחלוטין ב-Test Lab.
בחירת מסלול ההעברה
אוטומציה של ההעברה באמצעות AI
כדי שהמעבר הזה יהיה חלק, פיתחנו סוכן תרגום ייעודי: migrating-device-run.
אם אתם משתמשים בסוכני AI לתכנות, כמו Antigravity, Claude Code או Codex, אתם יכולים לתרגם בקלות את סקריפטים הבדיקה המותאמים אישית שלכם. פשוט מעתיקים את כתובת ה-URL של סכמת העברת המיומנות ומדביקים אותה בסביבת העבודה של העוזר הדיגיטלי מבוסס ה-AI, כמו שמתואר כאן.
תבנית לפרומפט להעברה
You are an expert migration assistant. I want to migrate my test command and
configuration to the new `gcloud beta device-run` command format.
Use this migration guideline as your ruleset:
https://docs.cloud.google.com/developer-device-platform/device-run/migrate/migration-skill
Translate the following command and configuration to the new `gcloud beta
device-run` CLI: (Insert your raw Firebase Test / Flank YAML or bash script
here.)
העברה ידנית
כדי לבצע העברה ידנית מ-Firebase Test Lab ל-DDP, צריך לפעול לפי ההוראות לתרגום פקודות ודגלים. כשמתכוננים להעברה, חשוב לזכור את ההבדלים הבאים במבנה:
- ארכיטקטורת CLI ממוקדת משאבים: ב-
gcloud beta device-runנעשה שימוש בתבנית פקודות מודרנית<resource> <verb>בשלוש קבוצות משאבים עיקריות:-
devices: גישה ישירה ל-CLI למלאי של קטלוג המכשירים ולפרטים מקיפים על המכשירים, במקום הפקודות המפוצלות שלfirebase test android/ios models/versions/localesמדור קודם. -
software-versions: גישה ישירה ל-CLI לגרסאות תוכנה נתמכות (כמו גרסאות של Xcode ותזמור בדיקות ל-Android), במקוםfirebase test ios xcode-versions listמדור קודם. -
sessions: ניהול מחזור החיים של סשן מקצה לקצה ישירות במסוף, כוללsessions submit instrumentation,sessions submit xctest,sessions wait,sessions describe [--full],sessions listו-sessions cancel.
-
- מבנה פקודות משנה: סוגי הבדיקות הם סטנדרטיים ומקוננים מתחת ל-
sessions submitכפקודות משנה נקיות, במקום להשתמש בדגלי סוג.- DDP:
gcloud beta device-run sessions submit instrumentation(Android) אוgcloud beta device-run sessions submit xctest(iOS) - Test Lab:
gcloud firebase test android run --type=instrumentation(Android) אוgcloud firebase test ios run --type=xctest(iOS)
- DDP:
- אפליקציות ברבים ואפליקציות שמוזגו: קובצי APK רגילים וקובצי APK משניים מוזגים ברשימת הדגלים
--appsברבים (לדוגמה,--apps=app.apk,helper.apk) במקום פיצול ל---appול---additional-apks. - ארגומנטים מובנים של מילון ורשימה: החלפנו קבצים מופרדים בפסיקים או רשימות של סביבות בפורמטים מובנים של מילון ורשימה ב-CLI:
--other-files-to-push KEY=VALUE,--additional-test-options KEY=VALUE,--paths-to-pullו---test-targets. - אמצעי בקרה מאוחדים לפיצול ולניסיון חוזר: תמיכה חלקה בפיצול אחיד ובפיצול חכם, יחד עם ניסיונות חוזרים מקבילים (
--flaky-test-parallel-retry,--flaky-test-retry-level) ואבחון בזמן ריצה (--dumpsys,--bugreport,--video). - ביצוע אסינכרוני:
gcloud beta device-runתומך בביצוע אסינכרוני, כך שאפשר להריץ בדיקות בלי לחכות לסיום שלהן. משתמשים ב-gcloud beta device-run sessions wait <SESSION_ID>כדי להמתין לסיום. - הגדרת YAML הצהרתית (
--flags-file): צוותים שעוברים מ-Flank ומעדיפים קובצי YAML עם בקרת גרסאות על פני מחרוזות של סקריפטים של מעטפת יכולים להשתמש בתמיכה האוניברסלית שלgcloudב---flags-file=device-run-flags.yaml.
המאמרים הבאים
- כדי להגדיר את Developer Device Platform, אפשר להיעזר במדריך למתחילים.
- כדאי לעיין בקטלוג המכשירים כדי לראות את כל המכשירים הזמינים.
- כדי להתחיל להריץ בדיקות, אפשר לקרוא מידע על הרצה במכשיר.
- בתרגומים של פקודות ודגלים אפשר לראות מיפוי של דגלים ב-Test Lab וב-Flank ל-DDP.