Google is committed to advancing racial equity for Black communities. See how.
דף זה תורגם על ידי Cloud Translation API.
Switch to English

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

מעבדת הבדיקה של Firebase מספקת תשתית מבוססת ענן לבדיקת אפליקציות אנדרואיד, כולל אינטגרציה מלאה עם ממשק שורת הפקודה gcloud (CLI). מסמך זה מכסה את ההתקנה והתצורה הנדרשים כדי להתחיל להשתמש במעבדה Test מ- CLI של gcloud.

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

צור פרויקט Firebase

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

אתה יכול להשתמש במעבדת הבדיקה למספר מוגבל של ביצוע בדיקות יומי בתכנית Spark. כדי להשתמש ב- Lab Lab ללא מגבלות מכס יומיות, עליך לשדרג לתוכנית Firebase Blaze.

הגדר את ה- CLI של gcloud

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

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

הגדר את הבדיקה שלך

בדוגמה זו, תוכלו להריץ כמה בדיקות באפליקציית Android רושמת הערות פשוטה בשם Notepad.

  1. הורד את קובץ ה- APK הבינארי עבור אפליקציית Notepad ( app-debug-unaligned.apk ) ובדיקות המכשור המתאימות שלו ( app-debug-test-unaligned.apk ) המסופקות ב- NotePad / app / build / outputs / apk / directory of notepad .zip .

  2. קבל את הרשימה הנוכחית של מכשירי Android הזמינים לבדיקה, כדלקמן:

    
    $ gcloud firebase test android models list
    
    gcloud firebase test android models list output העמודה הראשונה של פלט הפקודה, MODEL_ID , מכילה את המזהה שתוכל להשתמש בו מאוחר יותר להפעלת בדיקות על מודל ספציפי. העמודה OS_VERSION_ID מפרטת את גרסאות מערכת ההפעלה הנתמכות על ידי מכשיר זה. אם אינך מציין מול אלו MODEL_ID לבדוק, ברירת המחדל המצוינת בעמודה TAGS משמשת.

  3. למידע נוסף על אנדרואיד ספציפי MODEL_ID עם firebase test android models describe הפקודה, כדלקמן:

    
    $ gcloud firebase test android models describe Nexus5
    
    פקודת הדוגמה המוצגת לעיל מספקת מידע מפורט על דגם Nexus5 , כולל מותג, יצרן ורמות ה- API הנתמכות, והאם המודל פיזי או וירטואלי.

  4. קבל את הרשימה הנוכחית של גרסאות מערכת ההפעלה של Android הזמינות לבדיקה:

    
    $ gcloud firebase test android versions list
    
    gcloud android versions list אתה יכול להשתמש במזהה משתי העמודות הראשונות של פלט הפקודה ( OS_VERSION_ID ו- VERSION ), כדי לבצע מאוחר יותר בדיקות כנגד גרסת מערכת הפעלה של Android. אם אינך מציין את גרסאות מערכת ההפעלה אנדרואיד לבדיקה, נעשה שימוש בברירת המחדל המצוינת בעמודה TAGS .

  5. קבל את הרשימה הנוכחית של המקומות הזמינים לבדיקה מול:

    
    $ gcloud firebase test android locales list
    
    העמודה הראשונה של פלט הפקודה, LOCALE , מכילה את המזהה שבו תוכל להשתמש מאוחר יותר להפעלת בדיקות מול אזור. אם אינך מציין את האזורים שאליהם נבדק, אנגלית משמשת כמיקום ברירת המחדל. פלט הפקודה לא מוצג כאן מכיוון שמאות מקומות זמינים.

מבחני ריצה

כעת, כאשר אתה מכיר את מגוון דגמי המכשירים, גרסאות מערכת ההפעלה והמקומות הזמינים לשימוש בעת בדיקת האפליקציה שלך, אתה יכול להשתמש במידע זה כדי לציין התקני בדיקה באמצעות 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 ערך --type . אתה יכול לראות את הסט השלם של אפשרויות שורת הפקודה להפעלת בדיקות על ידי הקלדה: gcloud help firebase test android run . כחלופה לציון כל הארגומנטים הללו בשורת הפקודה, באפשרותך לציין את הארגומנטים שלך בקובץ ארגומנטים בפורמט YAML. הפעל gcloud topic arg-files כדי ללמוד כיצד להשתמש בתכונה זו.

עיין בסעיף ניתוח תוצאות הבדיקה שלך כדי ללמוד כיצד לחקור את תוצאות הבדיקה ממבחן הרובו.

הפעלת מבחני המכשור שלך

כעת השתמש בכלי שורת הפקודה gcloud להפעלת בדיקות האספרסו של אפליקציית Notepad בתצורות מכשיר Android המצוינות שלך, תוך שימוש בסוג בדיקת 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 כדי ללמוד כיצד להשתמש בתכונה זו.

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

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

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

מעבדת הבדיקה תומכת בכלי דיווח כיסוי קוד EMMA ו- JaCoCo . אם יש לך כלי משולב בבניית האפליקציה שלך, אתה יכול לקבל דוח כיסוי קוד לבדיקות מעבדת הבדיקה על ידי הפעלת 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. לחץ על תוצאות בדיקה כדי לעבור לדלי אחסון הענן של Google עם תוצאות הבדיקה של אותה ביצוע.
  4. פתח artifacts/coverage.ec כדי לראות את דוח כיסוי הקוד שלך.

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

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

Command test results

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

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

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

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

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

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