דף זה מספק עזרה בפתרון בעיות ותשובות לשאלות נפוצות לגבי הפעלת בדיקות עם Firebase Test Lab. גם בעיות ידועות מתועדות. אם אינך מוצא את מה שאתה מחפש או זקוק לעזרה נוספת, הצטרף לערוץ #test-lab ב-Firebase Slack או צור קשר עם התמיכה של Firebase .
פתרון תקלות
כאשר אתה בוחר מכשיר עם רמת קיבולת גבוהה בקטלוג Test Lab, הבדיקות עשויות להתחיל מהר יותר. כאשר למכשיר יש קיבולת נמוכה, ביצוע הבדיקות עשוי להימשך זמן רב יותר. אם מספר הבדיקות שהופעלו גדול בהרבה מהקיבולת של המכשירים שנבחרו, סיום הבדיקות עשוי להימשך זמן רב יותר.
בדיקות הפועלות בכל רמת קיבולת המכשיר עשויות להימשך זמן רב יותר עקב הגורמים הבאים:
- תנועה, המשפיעה על זמינות המכשיר ומהירות הבדיקה.
- כשלים במכשיר או בתשתית, שיכולים לקרות בכל עת. כדי לבדוק אם יש תשתית מדווחת עבור Test Lab, עיין בלוח המחוונים של הסטטוס של Firebase .
למידע נוסף על קיבולת המכשיר ב-Test Lab, ראה מידע על קיבולת המכשיר עבור Android ו- iOS .
תוצאות בדיקה לא חד משמעיות מתרחשות בדרך כלל בגלל ריצות בדיקה שבוטלו או שגיאות תשתית.
שגיאות תשתית נגרמות כתוצאה מבעיות פנימיות במעבדת בדיקות, כמו שגיאות רשת או התנהגויות בלתי צפויות של מכשירים. מעבדת הבדיקה מוציאה לפועל ריצות בדיקה שמייצרות שגיאות תשתית מספר פעמים לפני דיווח על תוצאה לא חד משמעית; עם זאת, אתה יכול להשבית ניסיונות חוזרים אלה באמצעות failFast .
כדי לקבוע את סיבת השגיאה, בצע את השלבים הבאים:
- בדוק אם יש הפסקות ידועות בלוח המחוונים של הסטטוס של Firebase .
נסה שוב את הבדיקה ב-Test Lab כדי לוודא שהיא ניתנת לשחזור.
נסה להפעיל את הבדיקה במכשיר אחר או בסוג אחר, אם רלוונטי.
אם הבעיה נמשכת, צור קשר עם צוות Test Lab בערוץ #test-lab ב-Firebase Slack.
פיצול עלול לגרום לבדיקות שלך להימשך זמן רב יותר כאשר מספר הרסיסים שציינת חורג ממספר המכשירים הזמינים לשימוש ב-Test Lab. כדי להימנע ממצב זה, נסה לעבור למכשיר אחר. למידע נוסף על בחירת התקן אחר, ראהקיבולת התקן .
כאשר אתה שולח בקשת בדיקה, האפליקציה שלך מאומתת לראשונה, נחתמת מחדש וכו' כהכנה להפעלת בדיקות במכשיר. בדרך כלל, תהליך זה מסתיים תוך פחות מכמה שניות, אך הוא יכול להיות מושפע מגורמים כמו גודל האפליקציה שלך.
לאחר הכנת האפליקציה שלך, ביצועי בדיקה מתוזמנים ונשארים בתור עד שמכשיר מוכן להפעיל אותה. עד שכל ביצועי הבדיקה יסיימו לרוץ, סטטוס המטריצה יהיה "בהמתנה" (ללא קשר אם ביצועי הבדיקה נמצאים בתור או פועלים באופן פעיל).
לאחר סיום ביצוע הבדיקה, פריטי בדיקה יורדים מהמכשיר, מעובדים ומועלים ל-Cloud Storage. משך שלב זה יכול להיות מושפע מכמות וגודל החפצים.
חפצי ביצוע בדיקה (כגון צילומי מסך וקובצי יומן) מאוחסנים ב-Google Cloud Storage ומעובדים ישירות לתוך מסוף Firebase. אם ביצוע הבדיקה שלך בוצע במהלך 90 הימים האחרונים, ודא שהקצית תפקידים ברמת הפרויקט (בעל פרויקט, עורך פרויקט או מציג פרויקט). אנא ודא גם כי רישום ביקורת ענן אינו מופעל עבור הפרויקט שלך או הארגון שלך.
אם הביצוע בוצע לפני יותר מ-90 יום, סביר להניח שחפצי הבדיקה נמחקו אוטומטית. אתה יכול לבדוק את תצורת דלי התוצאות על ידי לחיצה על הכרטיסייה תוצאות בדיקה בלוח המחוונים של מעבדת הבדיקה. דלי התוצאות המוגדר כברירת מחדל מוגדר לשמור אובייקטים למשך 90 יום.
כדי לשמור על חפצי הבדיקה שלך זמן רב יותר, הפעל את הפקודה gcloud firebase test android run
עם הדגל --results-bucket
ועבור בשם דלי התוצאות. למידע נוסף, בקר בתיעוד ההפניה gcloud firebase test android run
.
כאשר אתה מפעיל בדיקות מכשור, אתה עשוי לראות שגיאות בדיקה המצביעות על תוצאות חלקיות המכילות הודעות כמו Test run failed to complete. Expected x tests, received y
(כאשר y
קטן מ- x
). שגיאה זו פירושה ש-Test Lab לא יכלה לנתח את ה-logcat עבור סמני התחלה או סיום של מקרה בדיקה שנוצרים בדרך כלל על ידי AndroidJUnitRunner .
להלן הגורמים הנפוצים לבעיה זו:
תיאור הבעיה | רזולוציה אפשרית |
---|---|
מקרה הבדיקה לא פעל בגלל פסק זמן. אם משך הזמן הכולל של הבדיקות ארוך מזמן קצוב שציינת או ארוך מזמן קצוב מקסימלי , Test Lab תבטל את שאר מקרי הבדיקה. |
|
מקרה הבדיקה לא הושלם כי הוא יצא בטרם עת או נתקע. מקרה המבחן עלול לצאת בטרם עת בגלל חריג שלא נתפס או טעות בטענה. מקרי בדיקה יכולים להיתקע בלולאה אינסופית או שלא תוכל להמשיך, למשל, אם האפליקציה לא מציגה את התצוגה הנכונה והמקרה המבחן לא יכול לבצע את הפעולה בממשק המשתמש. | בדוק את הסרטון ואת ה- logcat כדי לבדוק היכן נעצרה הבדיקה. |
רץ בדיקה מותאם אישית (כולל הרחבת AndroidJUnitRunner) קרס באופן בלתי צפוי או כתב סמני התחלה או סיום של מקרה בדיקה בלתי צפויים ל- logcat . | בדוק את קוד רץ המבחן שלך. |
יומנים מוגזמים נכתבו ל- logcat , מה שהכריע את המאגר או הרס את תהליך logcat . | צמצם את הכתיבה ל- logcat . |
האפליקציה הנבדקת קרסה. | ניפוי באגים באפליקציה שלך. |
שאלות נפוצות
מעבדת הבדיקות של Firebase מציעה מכסות ללא עלות לבדיקות במכשירים ולשימוש ב-Cloud APIs. שימו לב שמכסת הבדיקות משתמשת בתוכנית התמחור הרגילה של Firebase, בעוד שמכסות ה-API של Cloud לא.
מכסת בדיקות
מכסות הבדיקה נקבעות לפי מספר המכשירים המשמשים להפעלת בדיקות. לתוכנית Firebase Spark יש מכסת בדיקות קבועה ללא עלות למשתמשים. עבור תוכנית Blaze, המכסות שלך עשויות לגדול אם השימוש שלך ב-Google Cloud יגדל עם הזמן. אם אתה מגיע למכסת הבדיקות שלך, המתן ליום המחרת או שדרג לתוכנית Blaze אם אתה כרגע בתוכנית Spark. אם אתה כבר בתוכנית Blaze, אתה יכול לבקש הגדלת מכסה. למידע נוסף, ראה מכסת בדיקה .
אתה יכול לעקוב אחר השימוש במכסת הבדיקות שלך במסוף Google Cloud .
מכסת API של בדיקות ענן
ה-Cloud Testing API מגיע עם שתי מגבלות מכסה: בקשות ליום לפרויקט, ובקשות לכל 100 שניות לפרויקט. אתה יכול לעקוב אחר השימוש שלך במסוף Google Cloud .
מכסת ה-API של Cloud Tool Results
ה-Cloud Tool Results API מגיע עם שתי מגבלות מכסה: שאילתות ליום לפרויקט, ושאילתות לכל 100 שניות לפרויקט. אתה יכול לעקוב אחר השימוש שלך במסוף Google Cloud .
עיין במכסות Cloud API עבור Test Lab למידע נוסף על מגבלות API. אם הגעת למכסת API:
שלח בקשה למכסות גבוהות יותר על ידי עריכת המכסות שלך ישירות במסוף Google Cloud (שים לב שרוב המגבלות מוגדרות למקסימום כברירת מחדל), או
בקש מכסות API גבוהות יותר על ידי מילוי טופס בקשה במסוף Google Cloud או על ידי פנייה לתמיכה של Firebase .
מהקצה העורפי שלך, תוכל לקבוע אם תעבורה מגיעה ממכשירי בדיקה המתארחים ב-Firebase על ידי בדיקת כתובת ה-IP המקור מול טווחי ה-IP שלנו.
Test Lab לא עובד עם VPC-SC, אשר חוסם את ההעתקה של אפליקציות וחפצי בדיקה אחרים בין האחסון הפנימי של Test Lab לבין דלי תוצאות המשתמשים.
כדי לזהות התנהגות מתקלפת בבדיקות שלך, אנו ממליצים להשתמש באפשרות--num-flaky-test-attempts. שידורים חוזרים של Deflake מחויבים או נספרים כחלק מהמכסה היומית שלך בדומה לביצוע בדיקות רגילות.
זכור את הדברים הבאים:
- כל ביצוע הבדיקה פועל שוב כאשר מזוהה כשל. אין תמיכה בניסיון חוזר רק מקרי בדיקה שנכשלו.
- ריצות נסיונות חוזרות של Deflake מתוכננות לפעול בו-זמנית, אך לא מובטחות לפעול במקביל, למשל, כאשר התעבורה עולה על מספר המכשירים הזמינים.
כן! Test Lab תומכת ב-Google Pixel Watch. כעת תוכל להריץ בדיקות באפליקציית Wear העצמאית שלך ב-Google Pixel Watches. למידע נוסף על מכשירי Test Lab, ראה בדיקה במכשירים זמינים .
כן! Test Lab תומכת בטאבלט Google Pixel וב-Google Pixel Fold. אתה יכול להריץ את הבדיקות שלך במכשירים הפיזיים העצמאיים שלך. למידע נוסף על מכשירי Test Lab, ראה בדיקה במכשירים זמינים .
אם אתה בודק את האפליקציה שלך ב-Firebase או מפעיל בדיקות לדוח טרום-השקה ב-Play Console, תוכל לזהות אם בוצעה בדיקה במכשיר שמתארח ב-Firebase על ידי בדיקת מאפיין המערכת firebase.test.lab
ב- קובץ MainActivity
שלך. לאחר מכן תוכל לבצע הצהרות נוספות על סמך הערך הבוליאני עבור testLabSetting
. למידע נוסף, ראה התנהגויות בדיקה שהשתנו .
בעוד שחלק מהפריטים הללו נמצאים במפת הדרכים שלנו, איננו יכולים כרגע לספק מחויבות לתמיכה בפלטפורמות הבדיקות ופיתוח האפליקציות הללו. עם זאת, אם בניתם את האפליקציה שלכם עם מסגרת שתומכת באספרסו (לדוגמה, Flutter), תוכלו לכתוב מבחן מכשור באמצעות אספרסו ולאחר מכן להריץ את הבדיקה ב-Test Lab.
מעבדת הבדיקה אינה תומכת במפורש בערפול או ביטול ערפול. בעוד שהאפליקציה תפעל, ככל הנראה, כל נתוני אפליקציה מעורפלים, כמו עקבות מחסנית, יופיעו כמעורפלים ביומנים.
כן! אתה יכול לבדוק את המכשיר המתקפל שלך במצבים ובתנוחות מתקפלות .
מכשירים מתקפלים יכולים להיות במצבים מקופלים שונים, כגון FLAT
(פתוח לחלוטין) או HALF_OPENED
(בין פתוח לחלוטין לסגור לחלוטין).
תנוחות, לעומת זאת, מורכבות מכיוון מכשיר ספציפי ומצב מתקפל. לדוגמה, תנוחת שולחן, שהיא מצב HALF_OPENED
בכיוון אופקי, או תנוחת ספר, שהיא מצב HALF_OPENED
בכיוון אנכי.
אם אתה מפעיל מבחני מכשור, אתה יכול להשתמש בספריית Jetpack WindowManager ולעקוב אחר בדיקת האפליקציה שלך בתיעוד מתקפל כדי לבדוק מצבים ותנוחות שונות.
לחלופין, מצבים זמינים הם ספציפיים למכשיר וניתן ליצור איתם אינטראקציה באמצעות adb shell command cmd device_state
.
- כדי לרשום את המצב הנוכחי, הפעל את
adb shell cmd device_state state
. - כדי להגדיר או לעקוף את המצב הנוכחי, הפעל
adb shell cmd device_state state <IDENTIFIER>
. - כדי לאפס את המצב, הפעל את
adb shell cmd device_state state reset
. - כדי לבדוק מצבים זמינים, הפעל את הפקודה
adb shell cmd device_state print-states
בהתקן המתקפל.
Google Pixel Fold (מזהה דגם felix
)
$ adb shell cmd device_state print-states Supported states: [ DeviceState{identifier=0, name='CLOSED', app_accessible=true}, DeviceState{identifier=1, name='HALF_OPENED', app_accessible=true}, DeviceState{identifier=2, name='OPENED', app_accessible=true}, DeviceState{identifier=3, name='REAR_DISPLAY_STATE', app_accessible=true}, ]
Samsung Galaxy Z Fold4 (מזהה דגם q4q
)
$ adb shell cmd device_state print-states Supported states: [ DeviceState{identifier=0, name='CLOSE', app_accessible=true}, DeviceState{identifier=1, name='TENT', app_accessible=true}, DeviceState{identifier=2, name='HALF_FOLDED', app_accessible=true}, DeviceState{identifier=3, name='OPEN', app_accessible=true}, ]
בניגוד למוצרים אחרים של Firebase, אינך צריך להוסיף Firebase SDK כדי להשתמש ב-Test Lab. אם עדיין אין לך אפליקציה, תוכל להוריד APK מקוון או לבנות אפליקציה ו-APK לניסיון מאחת הדוגמאות במאגר AndroidX GitHub . שים לב שאתה צריך רק את קובץ ה-APK של האפליקציה שלך כדי להפעיל בדיקת רובו, בעוד שבדיקת מכשור דורשת גם אפליקציה וגם APK לבדיקה שנבנו מקוד מקור. למידע נוסף, קרא על בדיקות מכשירים .
למידע נוסף על תכונות Test Lab, ראה התחלת בדיקות עבור Android עם Firebase Test Lab .
בדיקת צילום מסך היא המקום שבו קביעות הבדיקה מבוססות על השוואת תמונות מסך שהתקבלו תוך כדי הפעלת בדיקה לתמונות מוזהבות המייצגות התנהגות צפויה. בדיקות כאלה עשויות להיות שבירות יותר בסוגי מכשירים מסוימים מאשר באחרים. אנו ממליצים למקד להתקני אמולטור Arm ( *.arm
) לסוגים אלה של בדיקות. מכשירי אמולטור זרוע משתמשים בתמונות הדומות מאוד או זהות לאמולטורים 'גנריים' של Android Studio.
אנו ממליצים גם לחקור ספריות בדיקה שיכולות לעזור להפוך את בדיקות צילום המסך ליציבות יותר בנוכחות שינויים צפויים.
כן! מכשירים וירטואליים מתעדכנים כאשר מתבצעים השינויים הבאים:
- עדכונים לתמונות קיימות
- הוצאה משימוש ברמות API קודמות
- רמות API חדשות של Android מתווספות
כדי להפעיל דוחות כיסוי, הוסף שדה coverage=true
to environmentVariables
. אם אתה משתמש ב-Android Test Orchestrator, תצטרך לספק ספרייה לאחסון תוצאות הכיסוי:
--environment-variables coverage=true,coverageFilePath=/sdcard/Download/
אם אינך משתמש ב- Orchestrator, תוכל לציין נתיב לקובץ:
--environment-variables coverage=true,coverageFile=/sdcard/Download/coverage.ec
מידע מפורט על המכשיר זמין דרך ה-API וניתן לגשת אליו מלקוח gcloud באמצעות הפקודה describe :
gcloud firebase test android models describe MODEL
בעיות ידועות
בדיקת רובו אינה יכולה לעקוף מסכי כניסה הדורשים פעולת משתמש נוספת מעבר להזנת אישורים לכניסה, למשל, השלמת CAPTCHA.
מבחן Robo עובד בצורה הטובה ביותר עם אפליקציות המשתמשות ברכיבי ממשק משתמש ממסגרת ממשק המשתמש של אנדרואיד (כולל אובייקטי View
, ViewGroup
ו- WebView
). אם אתה משתמש במבחן Robo כדי להפעיל אפליקציות המשתמשות במסגרות משתמש אחרות, כולל אפליקציות המשתמשות במנוע המשחק Unity, הבדיקה עשויה לצאת מבלי לחקור מעבר למסך הראשון.