יצירת בדיקות ממשק משתמש באמצעות Espresso Test Recorder

הכלי Espresso Test Recorder מאפשר ליצור בדיקות ממשק משתמש לאפליקציה בלי לכתוב קוד בדיקה. כשמקליטים תרחיש בדיקה, אפשר להקליט את האינטראקציות עם המכשיר ולהוסיף הצהרות כדי לאמת רכיבי ממשק משתמש בתמונות מצב ספציפיות של האפליקציה. לאחר מכן, הכלי Espresso Test Recorder לוקח את ההקלטה השמורה ומפיק באופן אוטומטי בדיקת ממשק משתמש תואמת שאפשר להריץ כדי לבדוק את האפליקציה.

‫Espresso Test Recorder כותב בדיקות שמבוססות על Espresso Testing framework, ‏ API ב-AndroidX Test. ממשק ה-API של Espresso מעודד אתכם ליצור בדיקות תמציתיות ומהימנות של ממשק המשתמש על סמך פעולות משתמש. הצהרת הציפיות, האינטראקציות והטענות בלי גישה ישירה לפעילויות ולתצוגות של האפליקציה הבסיסית מונעת את חוסר היציבות של הבדיקה ומייעלת את מהירות הרצת הבדיקה.

השבתת האנימציות במכשיר הבדיקה

לפני שמשתמשים ב-Espresso Test Recorder, חשוב להשבית את האנימציות במכשיר הבדיקה כדי למנוע תוצאות לא צפויות. פועלים לפי ההוראות להגדרת Espresso, אבל חשוב לזכור שלא צריך להגדיר הפניה לתלות בספריית Espresso באופן ידני, כי כלי הקלטת הבדיקות עושה את זה אוטומטית כששומרים הקלטה. צריך לבצע את השלבים האלה רק פעם אחת לכל פרויקט.

הקלטת בדיקת Espresso

בדיקות Espresso מורכבות משני רכיבים עיקריים: אינטראקציות עם ממשק המשתמש וטענות לגבי רכיבי View. אינטראקציות עם ממשק המשתמש כוללות פעולות הקשה והקלדה שאדם עשוי להשתמש בהן כדי ליצור אינטראקציה עם האפליקציה. טענות מאמתות את קיומם של אלמנטים חזותיים במסך או את התוכן שלהם. לדוגמה, בדיקת Espresso עבור אפליקציית בדיקת ההערות עשויה לכלול אינטראקציות עם ממשק המשתמש, כמו לחיצה על לחצן וכתיבת הערה חדשה, אבל היא תשתמש באסרטיביות כדי לוודא שהלחצן קיים ומה התוכן של ההערה.

בקטע הזה נסביר איך ליצור את שני רכיבי הבדיקה האלה באמצעות Espresso Test Recorder, ואיך לשמור את ההקלטה המוגמרת כדי ליצור את הבדיקה.

תיעוד אינטראקציות עם ממשק המשתמש

כדי להתחיל להקליט בדיקה באמצעות Espresso Test Recorder, מבצעים את הפעולות הבאות:

  1. לוחצים על Run > Record Espresso Test (הפעלה > הקלטת בדיקת Espresso).
  2. בחלון Select Deployment Target (בחירת יעד הפריסה), בוחרים את המכשיר שבו רוצים להקליט את הבדיקה. אם צריך, יוצרים מכשיר וירטואלי חדש של Android. לוחצים על אישור.
  3. כלי 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: בדיקה אם רכיב התצוגה קיים בהיררכיית התצוגות הנוכחית שמוצגת במסך
  • לא קיים: בודק שרכיב התצוגה לא מופיע בהיררכיית התצוגות הנוכחית

כדי להוסיף הצהרה לבדיקה, מבצעים את הפעולות הבאות:

  1. לוחצים על Add Assertion (הוספת הצהרה). מופיעה תיבת דו-שיח של Screen Capture (צילום מסך) בזמן ש-Espresso מקבל את היררכיית ממשק המשתמש ומידע נוסף על מצב האפליקציה הנוכחי. תיבת הדו-שיח נסגרת אוטומטית אחרי ש-Espresso מצלם את צילום המסך.
  2. פריסת המסך הנוכחי מופיעה בחלונית בצד ימין של החלון Record Your Test. כדי לבחור רכיב View שעליו רוצים ליצור טענה, לוחצים על הרכיב בצילום המסך או משתמשים בתפריט הנפתח הראשון בתיבה Edit assertion (עריכת טענה) בחלק התחתון של החלון. אובייקט התצוגה שנבחר מודגש בתיבה אדומה.
  3. בתפריט הנפתח השני בתיבה Edit assertion (עריכת הצהרה), בוחרים את ההצהרה שרוצים להשתמש בה. ‫Espresso מאכלס את התפריט בטענות תקפות עבור רכיב התצוגה שנבחר.
    • אם בוחרים באסרשן text is, ‏ Espresso מוסיף באופן אוטומטי את הטקסט שמופיע כרגע בתוך רכיב View שנבחר. אפשר לערוך את הטקסט כדי שיתאים לאימות הרצוי באמצעות שדה הטקסט בתיבה עריכת אימות.
  4. כדי ליצור עוד הצהרה, לוחצים על שמירה והוספה של הצהרה נוספת. כדי לסגור את חלוניות ההצהרה, לוחצים על שמירת ההצהרה.

צילום המסך באיור 2 מציג טענת אימות מסוג text is (הטקסט הוא) שנוצרת כדי לוודא שהכותרת של ההערה היא Happy Testing!‎ (בדיקה נעימה!):

איור 2. התיבה עריכת הצהרה אחרי שנבחר רכיב View (באדום).

במהלך יצירת טענה, אפשר להמשיך באינטראקציה עם האפליקציה, גם אם חלוניות הטענה עדיין פתוחות בחלון Record Your Test. הכלי Espresso Test Recorder ימשיך לתעד את הפעולות שלכם, אבל האסרשן שאתם עורכים יופיע לפני האינטראקציות האלה אחרי שתשמרו אותו. צילום המסך של האסרטיון שומר גם על הפריסה שהייתה למכשיר או לאמולטור בזמן שלחצתם על הלחצן הוספת אסרטיון.

שמירת הקלטה

אחרי שמסיימים את האינטראקציה עם האפליקציה ואת הוספת הטענות, פועלים לפי השלבים הבאים כדי לשמור את ההקלטה וליצור את בדיקת Espresso:

  1. לוחצים על סיום ההקלטה. מופיע החלון בחירת שם לכיתת הבדיקה.
  2. לכל בדיקה שמוקלטת באמצעות Espresso Test Recorder ניתן שם ייחודי בחבילה שלה, על סמך השם של הפעילות שהופעלה. אם רוצים לשנות את השם המוצע, משתמשים בשדה הטקסט שם מחלקת הבדיקה. לוחצים על שמירה.
    • אם לא הוספתם את יחסי התלות של Espresso לאפליקציה, תופיע תיבת הדו-שיח Missing Espresso dependencies (חסרים יחסי תלות של Espresso) כשתנסו לשמור את הבדיקה. לוחצים על כן כדי להוסיף באופן אוטומטי את התלויות לקובץ build.gradle.
  3. הקובץ נפתח אוטומטית אחרי ש-Espresso Test Recorder יוצר אותו, ו-Android Studio מציג את מחלקת הבדיקה כבחירה בחלון Project של סביבת הפיתוח המשולבת (IDE).
    • המיקום שבו הבדיקה נשמרת תלוי במיקום של שורש בדיקת המכשור, וגם בשם החבילה של הפעילות שהופעלה. לדוגמה, בדיקות של אפליקציית הבדיקה Notes נשמרות בתיקייה src > androidTest > java > com.example.username.appname של מודול האפליקציה שבו הקלטתם את הבדיקה.

הרצת בדיקת Espresso באופן מקומי

כדי להריץ בדיקת Espresso, משתמשים בחלון Project בצד ימין של סביבת הפיתוח המשולבת (IDE) של Android Studio:

  1. פותחים את התיקייה של מודול האפליקציה הרצוי ועוברים לבדיקה שרוצים להריץ. המיקום של הבדיקה תלוי במיקום של שורש בדיקת המכשיר ובשם החבילה של הפעילות שהופעלה. בדוגמאות הבאות אפשר לראות איפה נשמרת בדיקה באפליקציית הבדיקה Notes:
    • אם אתם משתמשים בתצוגת Android בחלון, עוברים אל java > ‏com.example.username.appname (androidTest).
    • אם אתם משתמשים בתצוגה Project בתוך החלון, עוברים אל src > androidTest > java > com.example.username.appname בתוך תיקיית המודול.
  2. לוחצים לחיצה ימנית על הבדיקה ואז על Run ‘testName.’
    • לחלופין, אפשר לפתוח את קובץ הבדיקה וללחוץ לחיצה ימנית על מחלקת הבדיקה או על שיטת הבדיקה שנוצרו. מידע נוסף על הפעלת בדיקות זמין בדף בדיקת האפליקציה.
  3. בחלון Select Deployment Target (בחירת יעד פריסה), בוחרים את המכשיר שבו רוצים להריץ את הבדיקה. אם צריך, יוצרים מכשיר וירטואלי חדש של Android. לוחצים על אישור.

אפשר לעקוב אחר התקדמות הבדיקה בחלון Run (הפעלה) בתחתית סביבת הפיתוח המשולבת. ‫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 בכמה מכשירים.