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

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

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

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

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

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

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

  3. ודא שהתקנת עַדכָּנִי:
    gcloud components update
    
  4. היכנסו CLI gcloud באמצעות חשבון 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 .

    gcloud firebase test android models describe MODEL_ID
    

    הפלט מכיל את מותג דגם המכשיר, היצרן, גרסאות מערכת ההפעלה, רמות API נתמכות, תאריכי יציאה והאם המכשיר פיזי או וירטואלי.

  • versions list : קבלו רשימה של גרסאות OS זמין כרגע יש לבצע בדיקה.

    gcloud firebase test android versions list
    

    אתה יכול להשתמש המזהה משני של שתי העמודות הראשונות של פלט הפקודה ( OS_VERSION_ID ו VERSION ), כדי בדיקות מכן תריץ נגד גרסת מערכת ההפעלה אנדרואיד. אם לא תציין את גרסאות Android לבדיקה מול, ברירת המחדל ציין תחת TAGS טור משמש.

    פלט לדוגמא

    gcloud android versions list

  • locales list : קבל את הרשימה הנוכחית של מקומות זמינים מבחן נגד.

    gcloud firebase test android versions list
    

    הטור הראשון של פלט הפקודה, LOCALE , מכיל מזהה כי אתה יכול להשתמש מאוחר יותר כדי להריץ בדיקות נגד האזור. אם לא תציין את המקומות שאליהם יש לבדוק, אנגלית משמשת כאתר ברירת המחדל.

ריצות מבחנים

עכשיו שאתה יודע את מגוון דגמי המכשיר, מקומות, וכן גרסאות OS זמין לצורך בדיקת האפליקציה שלך, אתה יכול לציין התקנים באמצעות gcloud firebase test android run הפקודה ואת --device הדגל כדי להריץ בדיקות רובו או המכשור.

הפעלת מבחן רובו

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

--type robo הפרמטר מובלע אם לא --type ערך מצוין. אתה יכול לראות את סט שלם של אפשרויות שורת פקודה להפעלת בדיקות על ידי הקלדה: 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

--type instrumentation הפרמטר מובלע אם APK מבחן צוין עם --test . כחלופה לציון כל הארגומנטים הללו בשורת הפקודה, באפשרותך לציין אופציונליות שלך בקובץ ארגומנט בפורמט YAML. הפעלת gcloud topic arg-files כדי ללמוד כיצד להשתמש בתכונה זו.

ב- CLI gcloud תומך Orchestrator מבחן אנדרואיד . Orchestrator דורש AndroidJUnitRunner גרסה 1.0 ומעלה. כדי להפעיל אותו, השימוש gcloud firebase test android run עם
--use-orchestrator הדגל. כדי להשבית אותו להשתמש --no-use-orchestrator הדגל.

הערה: ניתן גם לשלוט Test Lab מפעילה בדיקות המכשור באמצעות דגלים נוספים שאינם המוצג לעיל. לדוגמא, אתה יכול להשתמש --test-targets דגל לבדוק מחלקה אחת או שיטה בכיתה שמוצגת APK המבחן שלך. תוכל גם לברר אם הבדיקה שלך שנכשלה הייתה למעשה רעועה או לא באמצעות הדגל '--num-flaky-test-ניסיונות', המציין את מספר הפעמים שיש לבצע בדיקה חוזרת של בדיקה אם אחת או יותר ממנה מקרי הבדיקה נכשלים מכל סיבה שהיא. כדי ללמוד עוד, ראה ריצת אנדרואיד מבחן firebase gcloud .

דוחות כיסוי קוד לבדיקות מכשור

Test Lab תומך כיסוי קוד כלי דיווח EMMA ו JaCoCo . אם יש לך גם כלי להשתלב לבנות את האפליקציה שלך, אתה יכול לקבל דו"ח כיסוי קוד לבדיקות Test Lab ידי הפעלת gcloud firebase test android run הפקודה עם הטיעונים הבאים:

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/coverage.ec" \
  --directories-to-pull /sdcard

כאשר Test Lab תסיים להריץ את הבדיקות שלך, מצא את דוחות כיסוי הקוד שלך ב- Google Cloud Storage:

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

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

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

Command test results

הפלט של בדיקת שורת הפקודה שלך כולל גם קישור לצפייה בתוצאות הבדיקה. כדי ללמוד עוד על כיצד לפרש את התוצאות האלה, לראות ניתוח Firebase Test Lab עבור תוצאות אנדרואיד .

כניסה מותאמת אישית וקלט טקסט עם מבחן רובו

מבחן רובו משלים אוטומטית הכניסה המסכים להשתמש בחשבון Google לאימות, אלא אם כן אתה משתמש --no-auto-google-login פרמטר. זה יכול גם להשלים מסכי התחברות מותאמים אישית באמצעות אישורי חשבון הבדיקה שאתה מספק. תוכל גם להשתמש בפרמטר זה כדי לספק טקסט קלט מותאם אישית לשדות טקסט אחרים המשמשים את האפליקציה שלך.

לשדות טקסט מלאים באפליקציה, להשתמש --robo-directives הפרמטר ולספק רשימה מופרדת בפסיקים של key-value זוגות, שבו key הוא שם משאב אנדרואיד של אלמנט UI היעד, ואת value הוא מחרוזת הטקסט . תוכל גם להשתמש בדגל זה כדי לספר לרובו להתעלם מרכיבי ממשק משתמש ספציפיים (למשל, כפתור "יציאה"). EditText שדות נתמכים אבל לא שדות טקסט WebView רכיבי ממשק משתמש.

לדוגמה, תוכל להשתמש בפרמטר הבא לכניסה מותאמת אישית:

--robo-directives username_resource=username,password_resource=password

פקודות ודגלים זמינים

ל- Test Lab gcloud CLI מספר פקודות ודגלים זמינים המאפשרים לך להריץ בדיקות עם מפרטים שונים:

  • דגל מבחן Orchestrator אנדרואיד : דגל לאפשר Orchestrator, כלי המאפשר לך להפעיל כל הבדיקות באפליקציה בתיאורו משלה Instrumentation . Test Lab תמיד מריץ את הגירסה העדכנית ביותר של Orchestrator.

  • דגלי מבחן המשחק Loop : קבוצת דגלי config המאפשרים לשלוט במצב "דמו" לפעולות שחקן לדמות אפליקציות משחק. למידע נוסף על הפעלת בדיקות Loop משחק עם Test Lab .

  • דגל Sharding אחיד (בגרסת בטא) : דגל המציין את מספר הפיצולים שלתוכו אתה רוצה להפיץ באופן שווה מקרי מבחן. הרסיסים מופעלים במקביל במכשירים נפרדים.

  • דגל Sharding ידני (בגרסת בטא) : דגל המציין קבוצה של חבילות, כיתות, ו / או מקרי מבחן לרוץ שבר (קבוצת מקרי מבחן). הרסיסים מופעלים במקביל במכשירים נפרדים.

  • דגל פרופילי תעבורת רשת (בגרסת בטא) : דגל המציין באיזה פרופיל ברשת הבדיקות שלך להשתמש עם תקנים פיסיים. פרופילי רשת מחקים מגוון תנאי רשתות, ומאפשרים לך לבדוק את ביצועי האפליקציה שלך ברשתות לא אמינות או בלתי צפויות.

סקריפט פקודות gcloud עם Test Lab

אתה יכול להשתמש בסקריפטים או בקבצי אצווה לאוטומטי פקודות בדיקת אפליקציות לנייד שאחרת היית מפעיל באמצעות שורת הפקודה gcloud. הדוגמא הבאה של bash script מריצה בדיקת מכשור עם פסק זמן של שתי דקות, ומדווחת אם הפעלת הבדיקה הסתיימה בהצלחה:

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

סקריפט קודי יציאה עבור Test Lab

יציאת קוד הערות
0 כל הוצאות להורג של הבדיקות עברו.
1 אירע כשל כללי. סיבות אפשריות כוללות: שם קובץ שאינו קיים או שגיאת HTTP/רשת.
2 הבדיקה יצאה מכיוון שניתנו פקודות או ארגומנטים לא ידועים.
10 מקרה אחד או יותר של בדיקות (שיעורים שנבדקו או שיטות כיתה) בתוך ביצוע בדיקה לא עברו.
15 מעבדת הבדיקות של Firebase לא הצליחה לקבוע אם מטריצת הבדיקה עברה או נכשלה בגלל שגיאה בלתי צפויה.
18 סביבת הבדיקה לביצוע בדיקה זו אינה נתמכת בגלל ממדי בדיקה לא תואמים. שגיאה זו עלולה להתרחש אם רמת התמיכה ב- Android API שנבחרה אינה נתמכת על ידי סוג המכשיר שנבחר.
19 מטריצת הבדיקה בוטלה על ידי המשתמש.
20 אירעה שגיאת תשתית בדיקה.