יש כמה דרכים להשתמש ב-Firebase Test Lab כדי להריץ בדיקות באפליקציית Android, כולל ממשק שורת הפקודה, Android Studio, ממשק המשתמש של Test Lab במסוף Firebase ו-Testing API. לא משנה איך תבחרו להתחיל את הבדיקות, התוצאות יישמרו בפרויקט Firebase שתציינו. אפשר לעיין בתוצאות באמצעות ToolResults API, בנוסף לכל אחד מהכלים שלמעלה. בדף הזה מוסבר איך בודקים ומנתחים את תוצאות הבדיקה.
מושגים מרכזיים
כדי לראות את התוצאות מכל ההרצות הקודמות של הבדיקות, בוחרים באפשרות Test Lab בחלונית הניווט הימנית של הפרויקט במסוף Firebase. בדף הזה מוצגות כל הרצות של הבדיקות מהאפליקציות שנבדקו בפרויקט באמצעות Test Lab.
כדי לבדוק את תוצאות הבדיקה, קודם צריך להבין שלושה מושגים:
כשמריצים בדיקה או קבוצה של תרחישי בדיקה במכשירים ובהגדרות שבחרתם, Test Lab מריץ את הבדיקה באפליקציה שלכם באצווה, ואז מציג את התוצאות כמטריצת בדיקה.
מכשירים × הרצות בדיקה = מטריצת בדיקה
- מכשיר
- מכשיר פיזי או וירטואלי (Android בלבד) שבו מריצים בדיקה, כמו טלפון, טאבלט או מכשיר לביש. מכשירים במטריצת בדיקה מזוהים לפי דגם המכשיר, גרסת מערכת ההפעלה, כיוון המסך והלוקאל (נקרא גם הגדרות גיאוגרפיות ושפה).
- בדיקה, ביצוע בדיקה
- בדיקה (או קבוצה של מקרי בדיקה) שצריך להריץ במכשיר. אפשר להריץ בדיקה אחת לכל מכשיר, או לחלק את הבדיקה ולהריץ את תרחישי הבדיקה שלה במכשירים שונים.
- מטריצת בדיקה
- מכיל את הסטטוסים ואת תוצאות הבדיקות של הרצות הבדיקה. אם ביצוע של בדיקה כלשהי במטריצה נכשל, כל המטריצה נכשלת.
בקטעים הבאים מוסבר איך לעיין בתוצאות הבדיקה.
פירוש התוצאות של היסטוריית הבדיקות
כשעוברים לתוצאות הבדיקה על ידי בחירה באפשרות Test Lab, מוצגות תוצאות הבדיקות שהפעלתם עד עכשיו.
היסטוריית הבדיקות מקובצת לפי אפליקציה. מוצגות רק חמש מטריצות הבדיקה האחרונות לכל אפליקציה. אם יש עוד מטריצות, אפשר ללחוץ על הקישור כל המטריצות בתחתית רשימת בדיקות האפליקציה כדי לראות את הרשימה המלאה של אותה אפליקציה.
פירוש התוצאות של מטריצת הבדיקה
כשמתחילים בדיקה דרך ממשק המשתמש של Test Lab, מועברים לדף שבו אפשר לראות את מטריצת הבדיקה וללחוץ על הפעלת בדיקה ספציפית כדי לראות את תוצאות הבדיקה. Android Studio ופקודת gcloud מספקות גם כתובת URL לדף התוצאות של מטריצת הבדיקה.
במטריצת בדיקה טיפוסית, יכול להיות שתריצו בדיקה בכעשרה מכשירים שונים. לכל הרצה של בדיקה יכולה להיות תוצאה שונה. התוצאות האפשריות של כל הרצה של בדיקה במטריצת בדיקות כוללות את האפשרויות הבאות:
- עבר
: לא נתגלו כשלים.
- נכשל
: אירעה לפחות שגיאה אחת.
- לא חד-משמעי
: תוצאות הבדיקה לא היו חד-משמעיות, יכול להיות בגלל שגיאה Test Lab.
- דילוג על
: ערכי המאפיינים שנבחרו בחלק מהרצות הבדיקה במטריצה לא היו תואמים. המצב הזה קורה כשהמכשירים שבחרת לא תואמים לרמה אחת או יותר של Android API שבחרת.
כדי לעיין בתוצאות הבדיקה המצטברות של כל מטריצות הבדיקה של אפליקציה מסוימת בפרויקט Firebase, לוחצים על שם האפליקציה, כמו בדוגמה הבאה:
דוגמה לדף תוצאות של מטריצת בדיקות עם ארבע הרצות בדיקה בלבד
כך תגיעו לרשימת מטריצות הבדיקה של האפליקציה. תוכלו ללחוץ על השם של כל מטריצת בדיקה כדי לראות את התוצאות שלה, או ללחוץ על שם האפליקציה (שמופיע בתיבה האדומה שלמטה) כדי לראות את רשימת מטריצות הבדיקה של אפליקציות אחרות שמשויכות לפרויקט שלכם ב-Firebase.
דף רשימת מטריצות בדיקה לדוגמה
מטריצת בדיקה יכולה לעבור, להיכשל או להיות לא חד משמעית. מטריצת בדיקות מוצגת כנכשלת או כלא חד-משמעית אם אחת מהבדיקות במטריצה נכשלת או לא חד-משמעית.
פירוש תוצאות בדיקת Robo
אם הפעלתם את הבדיקות באמצעות Robo, התוצאות יכללו סרטונים וצילומי מסך של Robo שסורק את ממשק המשתמש, בנוסף למדדי הבדיקה הרגילים. הסרטון וצילומי המסך האלה כוללים אינדיקציות ויזואליות לפעולות ש-Robo ביצע במהלך הסריקה, בדומה לתכונה 'הצגת נגיעות' ב-Android. אפשר להשתמש בהוראות כדי לעקוב אחרי ההתקדמות של Robo ולשחזר באגים שהוא עשוי לגלות.
דוגמה לסרטון עם תוצאות של בדיקת Robo
פירוש תוצאות מביצוע של בדיקה יחידה
בדף התוצאות של מטריצת הבדיקה, לוחצים על אחת מהרצות הבדיקה כדי לראות את התוצאה של הרצת הבדיקה הספציפית הזו.
דוגמה לדף תוצאות של הרצת בדיקה
בדף הזה אפשר לראות את הזמן שנדרש לכל הרצה של בדיקה. אפשר גם לראות את התוצאות של תרחישי בדיקה ספציפיים שתואמים לשיטות בחבילת ה-APK של הבדיקה (במקרה של בדיקות מכשור), וכן תוצאות בדיקה מפורטות, כולל יומני בדיקה, צילומי מסך וסרטונים. בבדיקת Robo, תוצאות הבדיקה המפורטות כוללות גם מפת פעילות שמציגה באופן גרפי את נתיבי ממשק המשתמש שבהם בוצעה בדיקת Robo.
תוצאות של בדיקות אינסטרומנטציה עם חלוקה למחיצות
כדי לעזור לכם להבין את תוצאות הבדיקה עם המכשיר, Test Lab מפריד כל בדיקה לדף דוח מפורט משלה, שכולל עקבות מחסנית, יומנים וסרטונים. התכונה הזו פועלת גם אם משתמשים ב-Android Orchestrator וגם אם לא.
דף תוצאות של תרחיש בדיקה לדוגמה
פירוש תוצאות הנגישות
בדיקות Robo משתמשות ב-Accessibility Scanner ל-Android כדי לזהות בעיות נגישות באפליקציה (שימו לב שאפשר גם להריץ סריקה באופן מקומי במכשיר). הוראות לבדיקה ולפרשנות של תוצאות הנגישות של בדיקת Robo זמינות במאמר תחילת העבודה עם Accessibility Scanner.
מידע כללי על שיפור הנגישות של האפליקציה זמין בתיעוד למפתחים של Android בנושא נגישות.
מדדי ביצועים
בדיקות שמופעלות במכשירים פיזיים מחזירות גם מדדי ביצועים:
מדד | הגדרת מכשיר נדרשת |
---|---|
זמן ההפעלה של האפליקציה | API 19 ומעלה |
ניצול יחידת העיבוד המרכזית (CPU) | API 21 ואילך |
שימוש בזיכרון | |
פעילות ברשת | |
FPS | API 21 ומעלה, וכולל SurfaceView |
תוצאות מפורטות של הבדיקה
תוצאות מפורטות של הבדיקה זמינות למשך 90 ימים אחרי שמריצים בדיקה, והן מאוחסנות בדלי Google Cloud Storage (אבל אפשר לראות אותן גם במסוף Firebase). כדי לראות את תוצאות הבדיקה המפורטות, לוחצים על תוצאות הבדיקה בדף התוצאות של הרצת הבדיקה.Cloud Storage גם אם התוצאות המפורטות של הבדיקה כבר לא זמינות, עדיין אפשר לראות אילו בדיקות עברו בהצלחה ואילו נכשלו.
אם רוצים לשמור את התוצאות המפורטות של הבדיקה למשך יותר מ-90 ימים, אפשר לשלוח אותן ל-bucket בבעלותכם באמצעות האפשרות --results-bucket בשורת הפקודה של gcloud.Cloud Storage לאחר מכן אפשר להגדיר את ההגדרה גיל כדי לקבוע למשך כמה זמן התוצאות יאוחסנו בקטגוריה Cloud Storage. במאמר תנאים למחזור חיים מוסבר איך לשנות את ההגדרה גיל.
כשמריצים בדיקה, אם מופיעה השגיאה does not have storage.objects.create access to the Google Cloud Storage object. Permission 'storage.objects.create' denied on resource (or it may not exist)..
, יכול להיות שלחשבון המשתמש שמריץ את הבדיקה אין את ההרשאה הנכונה בפרויקט. כברירת מחדל, Firebase יוצר בשבילכם קטגוריה ב-Google Cloud Storage, אבל נדרש שהגורם הראשי שמבצע את הבדיקה יהיה בעל התפקיד roles/editor, שהוא תפקיד עם הרשאות רחבות. אם אין לכם אפשרות להקצות את התפקיד הזה לחשבון המשתמש, אתם יכולים להשתמש באפשרות --results-bucket בשורת הפקודה gcloud.