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

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

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

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

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

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

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

  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 הדגל כדי להריץ בדיקות רובו או המכשור.

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

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

נתחיל בהפעלת פקודה לדוגמא:

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

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

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

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

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

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

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

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

סקריפטים של פקודות gcloud עם מעבדת הבדיקה

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

קודי יציאה מתסריט

מעבדת הבדיקה מספקת מספר קודי יציאה שבהם תוכלו להשתמש כדי להבין טוב יותר את תוצאות הבדיקות שאתם מבצעים באמצעות סקריפטים או קבצי אצווה.

קודי יציאה מתסריט למעבדת הבדיקה

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