בדף הזה מפורטות תשובות לשאלות נפוצות בנושא הפעלת בדיקות באמצעות Firebase Test Lab, וכן עזרה בפתרון בעיות. בנוסף, מתועדות בעיות ידועות. אם לא מצאתם את מה שחיפשתם או שדרושה לכם עזרה נוספת, תוכלו להצטרף לערוץ #test-lab ב-Slack של Firebase או לפנות אל התמיכה של Firebase.
פתרון בעיות
למה הבדיקה נמשכת כל כך הרבה זמן?
אם בוחרים במכשיר עם רמת קיבולת גבוהה בקטלוג Test Lab, יכול להיות שהבדיקות יתחילו מהר יותר. אם קיבולת המכשיר נמוכה, ייתכן שהבדיקות יימשכו זמן רב יותר. אם מספר הבדיקות שמפעילים גדול בהרבה מהקיבולת של המכשירים שנבחרו, זמן השלמת הבדיקות עשוי להתארך.
בדיקות שפועלות בכל רמת קיבולת של מכשיר עשויות להימשך זמן רב יותר בגלל הגורמים הבאים:
תנועה, שמשפיעה על זמינות המכשיר ועל מהירות הבדיקה.
כשלים במכשיר או בתשתית, שיכולים לקרות בכל שלב. כדי לבדוק אם יש דיווח על תשתית עבור Test Lab, אפשר להיכנס ללוח הבקרה של סטטוס Firebase.
למידע נוסף על קיבולת המכשיר ב-Test Lab, אפשר לעיין במידע על קיבולת המכשיר ב-Android וב-iOS.
למה מופיעות תוצאות בדיקה לא חד-משמעיות?
תוצאות בדיקה לא חד-משמעיות נובעות בדרך כלל מביטולי הפעלות בדיקה או משגיאות בתשתית.
שגיאות בתשתית נגרמות כתוצאה מבעיות פנימיות ב-Test Lab, כמו שגיאות ברשת או התנהגות לא צפויה של המכשיר. Test Lab משבית באופן פנימי את ההרצות של הבדיקות שמניבות שגיאות בתשתית כמה פעמים לפני שמדווח על תוצאה לא חד-משמעית. עם זאת, אפשר להשבית את הניסיונות החוזרים האלה באמצעות failFast.
מנסים שוב את הבדיקה ב-Test Lab כדי לוודא שאפשר לשחזר אותה.
אם רלוונטי, נסו להריץ את הבדיקה במכשיר אחר או בסוג מכשיר אחר.
אם הבעיה נמשכת, אפשר לפנות לצוות Test Lab בערוץ#test-lab ב-Slack של Firebase.
למה חלוקת המטא-נתונים לחלקים (sharding) הגדילה את משך הזמן של הרצת הבדיקות?
חלוקה למקטעים עלולה לגרום להארכת משך הזמן של הרצת הבדיקות אם מספר המקטעים שציינתם חורג ממספר המכשירים שזמינים לשימוש ב-Test Lab. כדי למנוע את המצב הזה, נסו לעבור למכשיר אחר. למידע נוסף על בחירת מכשיר אחר, קראו את המאמר
קיבולת המכשיר.
למה לוקח זמן רב כל כך להתחיל את הבדיקה?
כששולחים בקשת בדיקה, האפליקציה עוברת אימות, חתימה מחדש וכו' כדי להתכונן להרצת בדיקות במכשיר. בדרך כלל התהליך הזה מסתיים תוך כמה שניות, אבל הוא עשוי להימשך יותר זמן בגלל גורמים כמו גודל האפליקציה.
אחרי שהאפליקציה מוכנה, הרצת הבדיקות מתזמנת ונשארת בתור עד שמכשיר מוכן להריץ אותה. עד שכל הרצות הבדיקות יסתיימו, סטטוס המטריצה יהיה 'בהמתנה' (ללא קשר לכך שהרצות הבדיקות נמצאות בתור או שפועלות באופן פעיל).
למה הבדיקה נמשכת זמן רב?
בסיום ביצוע הבדיקה, נכסי הבדיקה מורידים מהמכשיר, עוברים עיבוד ומועלים אל Cloud Storage. משך הזמן של השלב הזה עשוי להשתנות בהתאם לכמות ולגודל של הארטיפקטים.
שאלות נפוצות
מהן המכסות ללא עלות של Test Lab? מה עושים אם נגמרים לכם שטחי האחסון?
Firebase Test Lab מציע מכסות ללא עלות לבדיקה במכשירים ולשימוש בממשקי Cloud API. חשוב לזכור שבמכסה לבדיקה נעשה שימוש בתוכנית התמחור הרגילה של Firebase, ואילו במכסות של Cloud API לא נעשה שימוש בתוכנית כזו.
בדיקת המכסה
מכסות הבדיקה נקבעות על סמך מספר המכשירים שבהם נעשה שימוש להרצת בדיקות.
בתוכנית Firebase Spark יש מכסה קבועה של בדיקות ללא עלות למשתמשים. בתוכנית Blaze, המכסות עשויות לגדול אם השימוש שלכם ב-Google Cloud יגדל עם הזמן. אם תגיעו למכסת הבדיקות, תוכלו לחכות עד למחר או לשדרג למינוי Blaze אם אתם משתמשים כרגע במינוי Spark.
אם כבר רכשתם את המינוי ל-Blaze, תוכלו לבקש הגדלה של המכסה.
מידע נוסף זמין במאמר בדיקת המכסה.
לשלוח בקשה להגדלת המכסות על ידי עריכת המכסות ישירות במסוף Google Cloud (לתשומת ליבכם: רוב המגבלות מוגדרות למקסימום כברירת מחדל).
כדי לבקש הגדלה של מכסות ה-API, אפשר למלא טופס בקשה במסוף Google Cloud או לפנות לתמיכה של Firebase.
איך אפשר לדעת אם התנועה שמגיעה לקצה העורפי שלי מגיעה מ-Test Lab?
כדי לקבוע אם התנועה מגיעה ממכשירי בדיקה שמתארחים ב-Firebase, תוכלו לבדוק את כתובת ה-IP של המקור מול טווחי ה-IP שלנו בקצה העורפי.
האם Test Lab פועל עם VPC-SC?
Test Lab לא פועל עם VPC-SC, שמחסום את ההעתקה של אפליקציות וארטיפקטים אחרים של בדיקות בין האחסון הפנימי של Test Lab לבין הקטגוריות של תוצאות המשתמשים.
איך מזהים בדיקות לא יציבות ב-Test Lab?
כדי לזהות התנהגות לא יציבה בבדיקות, מומלץ להשתמש באפשרות
--num-flaky-test-attempts
. הרצות חוזרות של Deflake מחוייבות או נספרות במסגרת המכסה היומית בדיוק כמו הרצות רגילות של בדיקות.
זכור את הנקודות הבאות:
כל ביצוע הבדיקה מופעל מחדש כשמזוהה כשל. אין תמיכה בניסיון חוזר רק לתרחישים בדיקה שנכשלו.
ניסיונות חוזרים של Deflake מתוזמנים לפעול באותו זמן, אבל אין ערובה שהם יפעלו במקביל. לדוגמה, כשנפח התנועה חורג ממספר המכשירים הזמינים.
האם Test Lab תומך ב-Appium, Flutter/FlutterDriver, ReactNative/Jest או Cucumber?
חלק מהפריטים האלה נכללים בתוכנית העבודה שלנו, אבל בשלב הזה אנחנו לא יכולים להתחייב לתמיכה בפלטפורמות האלה לפיתוח אפליקציות ובבדיקות.
איפה אפשר למצוא את פרטי המכשיר, כמו הרזולוציה וכו'?
פרטים מפורטים על המכשיר זמינים דרך ה-API, וניתן לגשת אליהם מלקוח gcloud באמצעות הפקודה describe:
gcloud firebase test ios models describe MODEL
האם אפשר להשתמש בחלוקה לפלחים בבדיקות ל-iOS?
אין תמיכה מובנית בחלוקה למקטעים ב-Test Lab ל-iOS. עם זאת, אפשר להשתמש בלקוח Flank כדי לפצל תרחישי בדיקה ל-iOS.
כדי לעשות זאת, מגדירים את המפתח OnlyTestIdentifiers ואת הערכים בקובץ .xctestrun.
פרטים נוספים זמינים בדף man של xcodebuild.xctestrun.
בעיות מוכרות
captcha לכניסה
בדיקת הרובוט לא יכולה לעקוף מסכי כניסה שדורשים פעולה נוספת של המשתמש מעבר להזנת פרטי הכניסה, למשל השלמת CAPTCHA.
תמיכה במסגרת של ממשק המשתמש
בדיקת Robo פועלת בצורה הטובה ביותר באפליקציות שמשתמשות ברכיבי ממשק משתמש מסגרת ממשק המשתמש של Android (כולל אובייקטים מסוג View, ViewGroup ו-WebView). אם משתמשים ב-Robo Test כדי לבדוק אפליקציות שמשתמשות במסגרות אחרות של ממשק משתמש, כולל אפליקציות שמשתמשות במנוע המשחקים של Unity, יכול להיות שהבדיקה תסתיים בלי לבדוק מעבר למסך הראשון.