הכלי Espresso Test Recorder מאפשר ליצור בדיקות של ממשק המשתמש באפליקציה בלי לכתוב קוד בדיקה. כשמקליטים תרחיש בדיקה, אפשר להקליט את האינטראקציות עם המכשיר ולהוסיף הצהרות כדי לאמת רכיבי ממשק משתמש בתמונות מצב ספציפיות של האפליקציה. לאחר מכן, הכלי Espresso Test Recorder לוקח את ההקלטה שנשמרה ומפיק באופן אוטומטי בדיקת ממשק משתמש תואמת שאפשר להריץ כדי לבדוק את האפליקציה.
Espresso Test Recorder כותב בדיקות שמבוססות על מסגרת הבדיקות של Espresso, API ב-AndroidX Test. ממשק ה-API של Espresso מעודד אתכם ליצור בדיקות תמציתיות ומהימנות של ממשק המשתמש על סמך פעולות המשתמש. הגדרת ציפיות, אינטראקציות וטענות בלי גישה ישירה לפעילויות ולתצוגות של האפליקציה הבסיסית מונעת תנודות בבדיקה ומבצעת אופטימיזציה של מהירות הרצת הבדיקה.
השבתת האנימציות במכשיר הבדיקה
לפני שמשתמשים ב-Espresso Test Recorder, חשוב להשבית את האנימציות במכשיר הבדיקה כדי למנוע תוצאות לא צפויות. פועלים לפי ההוראות להגדרת Espresso, אבל חשוב לזכור שלא צריך להגדיר הפניה לתלות בספריית Espresso באופן ידני, כי כלי הקלטת הבדיקות עושה את זה אוטומטית כששומרים הקלטה. צריך לבצע את השלבים האלה רק פעם אחת לכל פרויקט.
הקלטת בדיקת Espresso
בדיקות Espresso מורכבות משני רכיבים עיקריים: אינטראקציות עם ממשק המשתמש וטענות לגבי רכיבי View. אינטראקציות עם ממשק המשתמש כוללות פעולות הקשה והקלדה שאדם עשוי להשתמש בהן כדי ליצור אינטראקציה עם האפליקציה. טענות מאמתות את קיומם של אלמנטים חזותיים במסך או את התוכן שלהם. לדוגמה, בדיקת Espresso עבור אפליקציית בדיקת ההערות עשויה לכלול אינטראקציות עם ממשק המשתמש, כמו לחיצה על לחצן וכתיבת הערה חדשה, אבל היא תשתמש באסרטיבים כדי לוודא שהלחצן קיים ומה התוכן של ההערה.
בקטע הזה נסביר איך ליצור את שני רכיבי הבדיקה האלה באמצעות הכלי Espresso Test Recorder, ואיך לשמור את ההקלטה המוגמרת כדי ליצור את הבדיקה.
תיעוד אינטראקציות עם ממשק המשתמש
כדי להתחיל להקליט בדיקה באמצעות Espresso Test Recorder, מבצעים את הפעולות הבאות:
- לוחצים על Run > Record Espresso Test.
- בחלון Select Deployment Target (בחירת יעד הפריסה), בוחרים את המכשיר שבו רוצים להקליט את הבדיקה. אם צריך, יוצרים מכשיר וירטואלי חדש של Android. לוחצים על אישור.
- הכלי Espresso Test Recorder מפעיל בנייה של הפרויקט, והאפליקציה צריכה להיות מותקנת ומופעלת לפני שתוכלו להשתמש בכלי Espresso Test Recorder. החלון Record Your Test (הקלטת הבדיקה) מופיע אחרי הפעלת האפליקציה, ומכיוון שעדיין לא הייתה אינטראקציה עם המכשיר, בחלונית הראשית מופיעה ההודעה 'No events recorded yet' (עדיין לא הוקלטו אירועים). כדי להתחיל לרשום ביומן אירועים כמו פעולות של הקשה והקלדה, צריך ליצור אינטראקציה עם המכשיר.
הערה: לפני שמתחילים לתעד אינטראקציות, יכול להיות שיופיע בדיאלוג במכשיר הכיתוב 'המתנה למאתר הבאגים' או 'צירוף מאתר הבאגים'. הכלי Espresso Test Recorder משתמש במאגר הבאגים כדי לרשום ביומן אירועים של ממשק המשתמש. כשמצורף מאתר הבאגים, תיבת הדו-שיח תיסגר באופן אוטומטי. אל תלחצו על סגירה בכוח.
האינטראקציות שתועדו יופיעו בחלונית הראשית בחלון Record Your Test, כמו שמוצג באיור 1 למטה. כשמריצים את הבדיקה, בדיקת Espresso מנסה לבצע את הפעולות האלה באותו הסדר.
איור 1. החלון Record Your Test עם אינטראקציות מתועדות בממשק המשתמש.
הוספת הצהרות לאימות רכיבי ממשק משתמש
הצהרות מאמתות את הקיום או את התוכן של רכיב View באמצעות שלושה סוגים עיקריים:
- text is: בודק את תוכן הטקסט של רכיב התצוגה שנבחר
- exists: בדיקה אם רכיב התצוגה קיים בהיררכיית התצוגה הנוכחית שמוצגת במסך
- לא קיים: בודק שרכיב התצוגה לא קיים בהיררכיית התצוגה הנוכחית
כדי להוסיף הצהרה לבדיקה, מבצעים את הפעולות הבאות:
- לוחצים על Add Assertion (הוספת הצהרה). מופיעה תיבת דו-שיח של Screen Capture (צילום מסך) בזמן ש-Espresso מקבל את היררכיית ממשק המשתמש ומידע אחר על מצב האפליקציה הנוכחי. תיבת הדו-שיח תיסגר אוטומטית אחרי ש-Espresso יצלם את צילום המסך.
- פריסת המסך הנוכחי מופיעה בחלונית בצד שמאל של החלון Record Your Test. כדי לבחור רכיב View שעליו רוצים ליצור טענה, לוחצים על הרכיב בצילום המסך או משתמשים בתפריט הנפתח הראשון בתיבה Edit assertion (עריכת טענה) בחלק התחתון של החלון. אובייקט התצוגה שנבחר מודגש בתיבה אדומה.
- בתפריט הנפתח השני בתיבה Edit assertion (עריכת הצהרה), בוחרים את ההצהרה שרוצים להשתמש בה. Espresso מאכלס את התפריט בטענות תקפות לרכיב View שנבחר.
- אם בוחרים באסרשן 'הטקסט הוא', Espresso מוסיף באופן אוטומטי את הטקסט שמופיע כרגע בתוך רכיב התצוגה שנבחר. אפשר לערוך את הטקסט כך שיתאים לאישור הרצוי באמצעות שדה הטקסט בתיבה עריכת הצהרה.
- כדי ליצור עוד הצהרה, לוחצים על שמירה והוספה של הצהרה נוספת. כדי לסגור את חלוניות ההצהרה, לוחצים על שמירת ההצהרה.
צילום המסך באיור 2 מציג טענה מסוג text is (הטקסט הוא) שנוצרת כדי לוודא שהכותרת של ההערה היא Happy Testing! (בדיקה מוצלחת!):
איור 2. התיבה Edit assertion אחרי שנבחר רכיב View (באדום).
במהלך יצירת טענה, אפשר להמשיך באינטראקציה עם האפליקציה, גם אם חלוניות הטענה עדיין פתוחות בחלון Record Your Test. הכלי Espresso Test Recorder ימשיך לתעד את הפעולות שלכם, אבל האסרטיון שאתם עורכים יופיע לפני האינטראקציות האלה אחרי שתשמרו אותו. צילום המסך של הטענה שומר גם על הפריסה שהייתה למכשיר או לאמולטור בזמן שלחצתם על הלחצן הוספת טענה.
שמירת הקלטה
אחרי שמסיימים את האינטראקציה עם האפליקציה ואת הוספת הטענות, פועלים לפי השלבים הבאים כדי לשמור את ההקלטה וליצור את בדיקת Espresso:
- לוחצים על סיום ההקלטה. מופיע החלון בחירת שם לכיתת הבדיקה.
- Espresso Test Recorder נותן לבדיקה שם ייחודי בחבילה שלה
על סמך השם של הפעילות שהופעלה. אם רוצים לשנות את השם המוצע, משתמשים בשדה הטקסט שם מחלקת הבדיקה. לוחצים על שמירה.
- אם לא הוספתם את יחסי התלות של Espresso לאפליקציה, כשאתם מנסים לשמור את הבדיקה מופיעה תיבת הדו-שיח Missing Espresso dependencies (חסרים יחסי תלות של Espresso). לוחצים על כן כדי להוסיף באופן אוטומטי את התלויות לקובץ
build.gradle.
- אם לא הוספתם את יחסי התלות של Espresso לאפליקציה, כשאתם מנסים לשמור את הבדיקה מופיעה תיבת הדו-שיח Missing Espresso dependencies (חסרים יחסי תלות של Espresso). לוחצים על כן כדי להוסיף באופן אוטומטי את התלויות לקובץ
- הקובץ נפתח אוטומטית אחרי ש-Espresso Test Recorder יוצר אותו, ו-Android Studio מציג את מחלקת הבדיקה כבחירה בחלון Project של סביבת הפיתוח המשולבת (IDE).
- מיקום השמירה של הבדיקה תלוי במיקום של שורש בדיקת המכשור ובשם החבילה של הפעילות שהופעלה. לדוגמה, בדיקות של אפליקציית הבדיקה Notes נשמרות בתיקייה src > androidTest > java > com.example.username.appname של מודול האפליקציה שבו הקלטתם את הבדיקה.
הרצת בדיקת Espresso באופן מקומי
כדי להריץ בדיקת Espresso, משתמשים בחלון Project
בצד ימין של סביבת הפיתוח המשולבת (IDE) של Android Studio:
- פותחים את התיקייה של מודול האפליקציה הרצוי ועוברים לבדיקה שרוצים להריץ.
המיקום של הבדיקה תלוי במיקום של שורש בדיקת המכשור ובשם החבילה של הפעילות שהופעלה. בדוגמאות הבאות אפשר לראות איפה נשמרת בדיקה באפליקציית הבדיקה Notes:
- אם אתם משתמשים בתצוגת Android בחלון, עוברים אל java > com.example.username.appname (androidTest).
- אם אתם משתמשים בתצוגה Project בתוך החלון, עוברים אל src > androidTest > java > com.example.username.appname בתוך תיקיית המודול.
- לוחצים לחיצה ימנית על הבדיקה ואז על Run ‘testName.’
- לחלופין, אפשר לפתוח את קובץ הבדיקה וללחוץ לחיצה ימנית על מחלקת הבדיקה או על שיטת הבדיקה שנוצרו. מידע נוסף על הפעלת בדיקות זמין בדף בדיקת האפליקציה.
- בחלון Select Deployment Target (בחירת יעד הפריסה), בוחרים את המכשיר שבו רוצים להריץ את הבדיקה. אם צריך, יוצרים מכשיר וירטואלי חדש של Android. לוחצים על אישור.
אפשר לעקוב אחר התקדמות הבדיקה בחלון Run (הפעלה) בתחתית סביבת הפיתוח המשולבת (IDE). Android Studio מריץ build מלא של הפרויקט ופותח כרטיסייה עם שם הבדיקה בחלון Run (הפעלה), כמו שמוצג באיור 3. בכרטיסייה הזו אפשר לבדוק אם הבדיקה עברה או נכשלה, וגם כמה זמן לקח להפעיל אותה. אחרי שהבדיקה מסתיימת, בכרטיסייה יופיע היומן 'הבדיקות הסתיימו'.
איור 3. דוגמה לפלט בחלון Run אחרי הרצת בדיקת Espresso באופן מקומי.
מידע נוסף על כתיבת הגדרות של הרצת בדיקה מופיע בקטע 'הגדרת תצורת בדיקה עבור מחלקה או שיטה' במאמר יצירה ועריכה של הגדרות הרצה/ניפוי באגים.
הרצת בדיקת Espresso באמצעות Firebase Test Lab for Android
אתם יכולים להשתמש בבדיקות שנוצרו על ידי Espresso Test Recorder עם Firebase Test Lab כדי לבדוק את האפליקציה בענן במאות תצורות של מכשירים. אין חיוב על בדיקת האפליקציה באמצעות Test Lab במסגרת המכסה היומית בחינם בתוכנית Spark. כדי להריץ בדיקות Espresso באמצעות Firebase Test Lab, צריך ליצור פרויקט Firebase לאפליקציה ואז לפעול לפי ההוראות להפעלת הבדיקות באמצעות Firebase Test Lab מ-Android Studio.
איור 4. פלט לדוגמה בחלון Run אחרי הרצת בדיקה באמצעות Firebase Test Lab בכמה מכשירים.