התחל לבדוק עם gcloud CLI

מדריך זה מתאר כיצד להפעיל בדיקת מכשור, Robo או Game Loop באמצעות gcloud CLI .

לרשימה מלאה של פקודות gcloud שבהן תוכל להשתמש עם אפליקציית Android שלך ב-Test Lab, בקר בתיעוד העזר עבור gcloud firebase test android .

לפני שאתה מתחיל

אם עדיין לא עשית זאת, הוסף את Firebase לפרויקט Android שלך .

שלב 1. הגדר את gcloud CLI

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

  3. ודא שההתקנה שלך מעודכנת:
    gcloud components update
    
  4. היכנס ל-gcloud CLI באמצעות חשבון Google שלך:
    gcloud auth login
    
  5. הגדר את פרויקט Firebase שלך ​​ב-gcloud, כאשר PROJECT_ID הוא המזהה של פרויקט Firebase שלך:
    gcloud config set project PROJECT_ID
    

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

    פלט לדוגמה

    gcloud firebase test android models list output

  • 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 .

    פלט לדוגמה

    gcloud android versions list

  • 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:

  1. פתח את הקישור למסוף Firebase שכלי gcloud הדפיס מעל לטבלת תוצאות הבדיקה במסוף שלך.
  2. לחץ על ביצוע בדיקה מהרשימה בקישור זה כדי לפתוח את דף הפרטים של אותה ביצוע.
  3. לחץ על תוצאות בדיקה כדי לעבור לדלי של Cloud Storage עם תוצאות הבדיקה של אותה ביצוע.
  4. פתח artifacts/coverage.ec כדי לראות את דוח כיסוי הקוד שלך.

נתח את תוצאות הבדיקה שלך

לאחר מספר דקות, סיכום בסיסי של תוצאות הבדיקה שלך מודפס על ידי הכלי gcloud:

Command test results

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