מדריך זה מתאר כיצד להפעיל בדיקת מכשור, Robo או Game Loop באמצעות gcloud CLI .
לרשימה מלאה של פקודות gcloud
שבהן תוכל להשתמש עם אפליקציית Android שלך ב-Test Lab, בקר בתיעוד העזר עבור gcloud firebase test android
.
לפני שאתה מתחיל
אם עדיין לא עשית זאת, הוסף את Firebase לפרויקט Android שלך .
שלב 1. הגדר את gcloud CLI
- הורד את Google Cloud SDK
- ודא שההתקנה שלך מעודכנת:
gcloud components update
- היכנס ל-gcloud CLI באמצעות חשבון Google שלך:
gcloud auth login
- הגדר את פרויקט Firebase שלך ב-gcloud, כאשר PROJECT_ID הוא המזהה של פרויקט Firebase שלך:
gcloud config set project PROJECT_ID
זה כולל את הכלי gcloud CLI.
שלב 2. בדוק את התקני הבדיקה הזמינים
השתמש בפקודות gcloud הבאות כדי להציג התקני בדיקה ומקומות הזמינים לבדיקה שלך.
כאופציה, אתה יכול גם להוריד את אפליקציית Notepad לדוגמה כדי להתחיל להפעיל את הפקודות מיד. השתמש בקובץ הבינארי app-debug-unaligned.apk
ובקובץ בדיקות המכשור app-debug-test-unaligned.apk
, שנמצאים ב- NotePad/app/build/outputs/apk/
.
models list
: קבל רשימה עדכנית של מכשירי אנדרואיד זמינים לבדיקה מולם.gcloud firebase test android models list
בפלט הפקודה:
- העמודה
MODEL_ID
מכילה את המזהה שבו תוכל להשתמש מאוחר יותר כדי להפעיל בדיקות בדגם המכשיר. - עמודה
OS_VERSION_ID
מכילה את גרסאות מערכת ההפעלה הנתמכות על ידי המכשיר.
פלט לדוגמה
- העמודה
models describe
: קבל מידע נוסף עלMODEL_ID
ספציפי של Android.gcloud firebase test android models describe MODEL_ID
הפלט מכיל את המותג של דגם המכשיר, היצרן, גרסאות מערכת ההפעלה, רמות ה-API הנתמכות, ממשקי יישומים בינאריים נתמכים (ABI), תאריכי שחרור והאם המכשיר הוא פיזי או וירטואלי.
versions list
: קבל רשימה של גרסאות מערכת ההפעלה הזמינות כרגע לבדיקה מולן.gcloud firebase test android versions list
אתה יכול להשתמש במזהה מכל אחת משתי העמודות הראשונות של פלט הפקודה (
OS_VERSION_ID
ו-VERSION
), כדי להפעיל מאוחר יותר בדיקות מול גרסת מערכת ההפעלה אנדרואיד. אם לא תציין את גרסאות מערכת ההפעלה אנדרואיד שיש לבדוק מולן, נעשה שימוש ברירת המחדל המצוינת בעמודהTAGS
.פלט לדוגמה
locales list
: קבל את הרשימה הנוכחית של המקומות הזמינים לבדיקה מולם.gcloud firebase test android versions list
העמודה הראשונה של פלט הפקודה,
LOCALE
, מכילה את המזהה שבו תוכל להשתמש מאוחר יותר כדי להריץ בדיקות מול אזור. אם לא תציין את המקומות שבהם יש לבדוק, האנגלית משמשת כמקום ברירת המחדל.
שלב 3. הפעל את הבדיקה שלך
כעת, כשאתה יודע את מגוון דגמי המכשירים, המקומות וגרסאות מערכת ההפעלה הזמינות לבדיקת האפליקציה שלך, אתה יכול לציין מכשירים באמצעות פקודת gcloud firebase test android run
ודגל --device
כדי להפעיל בדיקות Robo או מכשור.
הרץ מבחן רובו
גם אם אין לך בדיקות מכשור, אתה עדיין יכול לחפש באגים באפליקציה שלך. השתמש במבחן Robo כדי לבצע בדיקה אוטומטית של ממשק המשתמש של האפליקציה שלך. מבחן רובו מפעיל את האפליקציה על ידי ביצוע ניתוח סטטי של הנתיבים השונים דרך ממשק המשתמש של האפליקציה, ולאחר מכן זוחל דרך האפליקציה כדי למצוא קריסות ובעיות פוטנציאליות אחרות.
כדי להפעיל בדיקת רובו, הפעל את הפקודה הבאה לדוגמה:
gcloud firebase test android run \ --type robo \ --app app-debug-unaligned.apk \ --device model=Nexus6,version=21,locale=en,orientation=portrait \ --device model=Nexus7,version=19,locale=fr,orientation=landscape \ --timeout 90s \ --client-details matrixLabel="Example matrix label"
- הפרמטר
--type robo
משתמע אם לא צוין ערך--type
. - כדי לעזור לך לזהות ולאתר את מטריצות הבדיקה שלך במסוף Firebase, תוכל להשתמש בדגל האופציונלי
--client-details matrixLabel="Example matrix label"
כדי לתייג את מטריצת הבדיקה שלך. - אתה יכול לראות את הסט המלא של אפשרויות שורת הפקודה להפעלת בדיקות על ידי הקלדת:
gcloud help firebase test android run
.
כחלופה לציון ארגומנטים אלה בשורת הפקודה, באפשרותך לציין את הארגומנטים שלך באופן אופציונלי בקובץ ארגומנטים בפורמט YAML. הפעל gcloud topic arg-files
כדי ללמוד כיצד להשתמש בתכונה זו.
כדי ללמוד כיצד לחקור את תוצאות הבדיקה מבדיקת רובו, ראה ניתוח תוצאות הבדיקה שלך .
הפעל בדיקת מכשור
כעת השתמש בכלי שורת הפקודה gcloud
כדי להפעיל את מבחני האספרסו של אפליקציית Notepad בתצורות מכשיר האנדרואיד שציינת. השתמש בסוג בדיקת instrumentation
כדי להפעיל את הבדיקות ב- app-debug-test-unaligned.apk
באופן הבא:
gcloud firebase test android run \ --type instrumentation \ --app app-debug-unaligned.apk \ --test app-debug-test-unaligned.apk \ --device model=Nexus6,version=21,locale=en,orientation=portrait \ --device model=Nexus7,version=19,locale=fr,orientation=landscape --client-details matrixLabel="Example matrix label"
- הפרמטר
--type
instrumentation הוא מרומז אם APK לבדיקה מצוין עם--test
. - כדי לעזור לך לזהות ולאתר את מטריצות הבדיקה שלך במסוף Firebase, תוכל להשתמש בדגל האופציונלי
--client-details matrixLabel="Example matrix label"
כדי לתייג את מטריצת הבדיקה שלך. - אתה יכול לראות את הסט המלא של אפשרויות שורת הפקודה להפעלת בדיקות על ידי הקלדת
gcloud help firebase test android run
.
כחלופה לציון ארגומנטים אלה בשורת הפקודה, באפשרותך לציין את הארגומנטים שלך באופן אופציונלי בקובץ ארגומנטים בפורמט YAML. הפעל gcloud topic arg-files
כדי ללמוד כיצד להשתמש בתכונה זו.
ה-gcloud CLI תומך ב-Android Test Orchestrator . Orchestrator דורש AndroidJUnitRunner v1.1 ומעלה. כדי להפעיל את זה, השתמש ב- gcloud firebase test android run
עם
--use-orchestrator
. כדי להשבית את זה השתמש בדגל --no-use-orchestrator
.
אתה יכול גם לשלוט כיצד Test Lab מפעיל את בדיקות המכשור שלך באמצעות דגלים נוספים שאינם מוצגים למעלה. לדוגמה, אתה יכול להשתמש בדגל --test-targets
כדי לבדוק מחלקה בודדת או שיטת מחלקה המשמשת את ה-APK שלך לבדיקה. אתה יכול גם לברר אם הבדיקה שלך שנכשלה באמת הייתה מתקלקלת או לא על ידי שימוש בדגל --num-flaky-test-attempts
, המציין את מספר הפעמים שיש לנסות מחדש ביצוע בדיקה אם אחד או יותר ממקרי הבדיקה שלו להיכשל מכל סיבה שהיא. למידע נוסף, ראה בדיקת gcloud firebase הפעלת אנדרואיד .
דוחות כיסוי קוד לבדיקות מכשור
Test Lab תומכת בכלי דיווח כיסוי קוד EMMA ו- JaCoCo . אם יש לך אחד מהכלים המשולבים ב-build עבור האפליקציה שלך, אתה יכול לקבל דוח כיסוי קוד עבור בדיקות מעבדת בדיקות על ידי הפעלת gcloud firebase test android run
עם כמה ארגומנטים נוספים. אם Android Test Orchestrator אינו מופעל, השתמש בפעולות הבאות:
gcloud firebase test android run \ --type instrumentation \ --app your-app.apk \ --test your-app-test.apk \ --device model=TestDevice,version=AndroidVersion \ --environment-variables coverage=true,coverageFile="/sdcard/Download/coverage.ec" \ --directories-to-pull /sdcard/Download
אם אתה יוצר דוחות כיסוי קוד תוך שימוש גם ב-Android Test Orchestrator, שנה את משתני הסביבה שלך באופן הבא:
gcloud firebase test android run \ --type instrumentation \ --app your-app.apk \ --test your-app-test.apk \ --device model=TestDevice,version=AndroidVersion \ --environment-variables clearPackageData=true,coverage=true,coverageFilePath="/sdcard/Download/" \ --directories-to-pull /sdcard/Download
כשמעבדת הבדיקה תסיים להפעיל את הבדיקות שלך, מצא את דוחות כיסוי הקוד שלך ב-Google Cloud Storage:
- פתח את הקישור למסוף Firebase שכלי
gcloud
הדפיס מעל לטבלת תוצאות הבדיקה במסוף שלך. - לחץ על ביצוע בדיקה מהרשימה בקישור זה כדי לפתוח את דף הפרטים של אותה ביצוע.
- לחץ על תוצאות בדיקה כדי לעבור לדלי של Cloud Storage עם תוצאות הבדיקה של אותה ביצוע.
- פתח
artifacts/coverage.ec
כדי לראות את דוח כיסוי הקוד שלך.
נתח את תוצאות הבדיקה שלך
לאחר מספר דקות, סיכום בסיסי של תוצאות הבדיקה שלך מודפס על ידי הכלי gcloud:
הפלט של ריצת הבדיקה של שורת הפקודה שלך כולל גם קישור לצפייה בתוצאות הבדיקה. למידע נוסף על איך לפרש את התוצאות האלה, ראה ניתוח Firebase Test Lab for Android תוצאות .
התחברות מותאמת אישית והזנת טקסט עם מבחן רובו
בדיקת רובו משלימה אוטומטית מסכי כניסה המשתמשים בחשבון Google לצורך אימות, אלא אם כן אתה משתמש בפרמטר --no-auto-google-login
. זה יכול גם להשלים מסכי התחברות מותאמים אישית באמצעות אישורי חשבון בדיקה שאתה מספק. אתה יכול גם להשתמש בפרמטר זה כדי לספק טקסט קלט מותאם אישית עבור שדות טקסט אחרים המשמשים את האפליקציה שלך.
כדי להשלים שדות טקסט באפליקציה שלך, השתמש בפרמטר --robo-directives
וספק רשימה מופרדת בפסיקים של צמדי key-value
, כאשר key
הוא שם המשאב של Android של רכיב ממשק המשתמש היעד, value
הוא מחרוזת הטקסט. . אתה יכול גם להשתמש בדגל זה כדי לומר לרובו להתעלם ממרכיבי ממשק משתמש ספציפיים (למשל, כפתור "יציאה"). שדות EditText
נתמכים אך לא שדות טקסט ברכיבי ממשק משתמש WebView
.
לדוגמה, תוכל להשתמש בפרמטר הבא עבור התחברות מותאמת אישית:
--robo-directives username_resource=username,password_resource=password
פקודות ודגלים זמינים
למעבדת הבדיקה gcloud CLI יש מספר פקודות ודגלים זמינים המאפשרים לך להריץ בדיקות עם מפרטים שונים:
דגל Android Test Orchestrator : דגל להפעלת Orchestrator, כלי המאפשר לך להריץ כל אחד מהבדיקות של האפליקציה שלך בהקראה משלו של
Instrumentation
. Test Lab מפעיל תמיד את הגרסה העדכנית ביותר של Orchestrator.דגלי בדיקת לולאת משחק : קבוצה של דגלי תצורה המאפשרים ושולטים ב"מצב הדגמה" כדי לדמות פעולות שחקן באפליקציות משחק. למידע נוסף על הפעלת בדיקות Game Loop עם Test Lab .
דגל חלוקה אחיד (בגרסת בטא) : דגל המציין את מספר הרסיסים שלתוכם ברצונך לחלק מקרי בדיקה באופן שווה. הרסיסים מופעלים במקביל במכשירים נפרדים.
דגל Sharding ידני (בגרסת בטא) : דגל המציין קבוצת חבילות, מחלקות ו/או מקרי בדיקה להפעלה ב-shard (קבוצה של מקרי בדיקה). הרסיסים מופעלים במקביל במכשירים נפרדים.
דגל פרופילי תעבורת רשת (בגרסת בטא) : דגל המציין באיזה פרופיל רשת משתמשים בבדיקות שלך עם מכשירים פיזיים. פרופילי רשת מחקים מגוון תנאי רשת, ומאפשרים לך לבדוק את ביצועי האפליקציה שלך ברשתות לא אמינות או בלתי צפויות.
סקריפט של פקודות gcloud עם Test Lab
אתה יכול להשתמש בסקריפטים של מעטפת או בקבצי אצווה כדי להפוך פקודות בדיקת אפליקציות לנייד לאוטומטיות שאחרת היית מפעיל באמצעות שורת הפקודה gcloud. תסריט ה-bash לדוגמה הבא מריץ בדיקת מכשור עם פסק זמן של שתי דקות, ומדווח אם הפעלת הבדיקה הושלמה בהצלחה:
if gcloud firebase test android run --app my-app.apk --test my-test.apk --timeout 2m then echo "Test matrix successfully finished" else echo "Test matrix exited abnormally with non-zero exit code: " $? fi
קודי יציאה מהסקריפט
Test Lab מספקת מספר קודי יציאה שבהם תוכל להשתמש כדי להבין טוב יותר את תוצאות הבדיקות שאתה מפעיל באמצעות סקריפטים או קבצי אצווה.
Scripting קודי יציאה עבור Test Lab
קוד יציאה | הערות |
---|---|
0 | כל ביצוע הבדיקות עברו. |
1 | אירע כשל כללי. סיבות אפשריות כוללות: שם קובץ שאינו קיים או שגיאת HTTP/רשת. |
2 | הבדיקה יצאה מכיוון שסופקו פקודות או ארגומנטים לא ידועים. |
10 | מקרה מבחן אחד או יותר (מחלקות שנבדקו או שיטות מחלקות) בתוך ביצוע בדיקה לא עברו. |
15 | Firebase Test Lab לא הצליח לקבוע אם מטריצת הבדיקה עברה או נכשלה, בגלל שגיאה בלתי צפויה. |
18 | סביבת הבדיקה לביצוע בדיקה זו אינה נתמכת בגלל ממדי בדיקה לא תואמים. שגיאה זו עלולה להתרחש אם רמת ה-API של Android שנבחרה אינה נתמכת על ידי סוג המכשיר שנבחר. |
19 | מטריצת הבדיקה בוטלה על ידי המשתמש. |
20 | אירעה שגיאת תשתית בדיקה. |