בדף הזה מפורטות תשובות לשאלות נפוצות בנושא הפעלת בדיקות באמצעות Firebase Test Lab, וכן עזרה בפתרון בעיות. בנוסף, מתועדות בעיות ידועות. אם לא מצאתם את מה שחיפשתם או שאתם צריכים עזרה נוספת, תוכלו להצטרף לערוץ #test-lab ב-Firebase Slack או לפנות לתמיכה של 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. משך השלב הזה יכול להיות מושפע מהכמות והגודל של פריטי המידע שנוצרו בתהליך הפיתוח (Artifact).
שאלות נפוצות
מהן המכסות ללא עלות של 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, יכול להיות שהבדיקה תסתיים בלי לבדוק מעבר למסך הראשון.