הרצת סקריפט Robo (ב-Android)

במסמך הזה מוסבר איך להשתמש בסקריפטים Robo, שהם בדיקות שעושים אוטומטית משימות ידניות לבקרת איכות באפליקציות לנייד, ומאפשרות אינטגרציה רציפה (CI) ואסטרטגיות לבדיקה לפני הפעלה. לדוגמה, אפשר להשתמש בסקריפטים של Robo כדי לבדוק תהליך משתמש נפוץ או לספק קלט ספציפי של ממשק משתמש (UI), כמו שם משתמש וסיסמה. סקריפטים של Robo הם תכונה של בדיקת Robo.

באמצעות סקריפטים של Robo, אתם מתעדים את עצמכם מבצעים תהליך עבודה באפליקציה, ואז מעלים את ההקלטה למסוף Firebase כדי להריץ אותה בבדיקות Robo. כשמריצים בדיקת Robo עם סקריפט מצורף, Robo מבצע קודם את הפעולות שנקבעו מראש בסקריפט ואז בודק את האפליקציה כרגיל.

סקריפטים של Robo משתמשים ב-בדיקת Robo בתור מנוע הבדיקה. בצורתו הבסיסית ביותר, סקריפט של Robo מורכב מרצף של פעולות בממשק המשתמש, כמו הזנת הטקסט 'username' ואז הקשה על הלחצן OK. סקריפטים של Robo יכולים לכלול גם פעולות כמו המתנה לאלמנט שיופיע, הקשה בנקודה ספציפית באלמנט והפעלת פקודות מעטפת של Android Debug Bridge‏ (adb).

לסקריפטים של Robo יש את היתרונות הבאים על פני frameworks רגילים לבדיקות:

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

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

  • תנאי הפעלה שונים, למשל, שם של חבילה מסוימת של האפליקציה פעיל (או לא) או שרכיב ספציפי מוצג במסך (או לא).
  • אמצעי בקרה על ביצוע, למשל מספר פעולות מקסימלי, עדיפות, שלב הסריקה הרלוונטי.
  • סוגים לא רגילים של פעולות (מותנות, התעלמות מרכיבים, סגירת מסך).

מומלץ להשתמש בסקריפטים של Robo כשהדבר אפשרי, כי אפשר לתחזק אותם בקלות. לדוגמה, אפשר להשתמש בסקריפט של Robo כדי:

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

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

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

חשוב לזכור שסקריפטים של Robo לא מחליפים את כל סוגי הבדיקות. עדיין צריך לבצע בדיקות יחידה כדי לזהות באגים לוגיים ברמה נמוכה באפליקציה. בדרך כלל, לא נדרשת סביבה של Android או iOS כדי לבצע את הבדיקות האלה. מומלץ להשלים את הבדיקות של סקריפטים של Robo באמצעות בדיקות מכשור ממוקדות, שיכולות לכלול טענות נכוֹנוּת (assertions) ספציפיות ומפורטות לגבי לוגיקה עסקית, שהכי קל להביע בקוד.

הקלטת סקריפט Robo באמצעות Test Lab ב-Android Studio

באמצעות מכשיר ההקלטה של סקריפטים של Robo ב-Android Studio תוכלו להקליט סקריפטים של Robo על ידי אינטראקציה ישירה עם האפליקציה במכשיר. כדי להתחיל בכתיבת סקריפטים Robo באמצעות כלי Firebase ב-Android Studio, צריך לבצע את ההוראות הבאות:

  1. פותחים את Android Studio ובוחרים באפשרות כלים -> Firebase.

  2. בחלונית Firebase, לוחצים על Record Robo Script and Use it to Guide Robo Test.

  3. לוחצים על Record Robo script. תיבת הדו-שיח Select Deployment Target מופיעה.

  4. בוחרים את המכשיר שבו רוצים להקליט את סקריפט ה-Robo.

  5. אחרי שמקליטים את סקריפט ה-Robo במכשיר, שומרים את הקובץ כקובץ JSON במיקום הרצוי.

  6. פותחים את הדף Test Lab במסוף Firebase ומעלים את קובץ הסקריפט בפורמט JSON ואת חבילת ה-APK של האפליקציה.

  7. לחץ על הלחצן המשך button. תתבקשו לבחור את המכשיר ואת רמת ה-API. בסיום הסקריפט של הבדיקה, Test Lab יוצר את דוח הבדיקה.

  8. (אופציונלי) כדי להעתיק או להוריד את ה-logcat של דוח הבדיקה והסרטון, לוחצים על View Source Files.

כברירת מחדל, מנגנוני החוסן של סקריפטים של Robo מונעים מהם להיכשל בשלב מוקדם. אם בוחרים במצב הביצוע strict וסקריפט של Robo נכשל בשלב כלשהו, Test Lab מפסיק את כל השלבים הבאים בסקריפט וממשיך בסריקה הרגילה של Robo. ברוב המקרים, סקריפטים של Robo נכשלים כי Robo לא יכול למצוא את הרכיב הנדרש במסך. כדי למנוע כשלים, חשוב לוודא שהניווט באפליקציה צפוי ושהמסכים מוצגים בסדר דטרמיניסטי.

הפעלת סקריפט של Robo ב-Test Lab

כדי להריץ סקריפט של Robo ב-Test Lab, פועלים לפי ההוראות הבאות:

  1. פותחים את הדף Test Lab במסוף Firebase.

  2. מעלים את קובץ ה-APK או ה-AAB של האפליקציה בשדה קובץ APK או AAB של האפליקציה.

  3. מעלים את קובץ הסקריפט של Robo שהוקלט או נוצר באופן ידני בשדה Robo script (אופציונלי).

איך מספקים סקריפט של Robo להרצה מקומית של בדיקת Robo

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

--robo-script-file <robo-script-path>

מחליפים את <robo-script-path> בנתיב לקובץ Robo של מערכת הקבצים המקומית. פועלים לפי ההוראות להרצת בדיקה מקומית של Robo.

ציון סקריפט Robo בהפעלת בדיקה של ה-CLI של gcloud

כדי לציין סקריפט Robo בהפעלת בדיקה של CLI של gcloud, משתמשים בדגל הבא של CLI של gcloud:

--robo-script = <robo-script-path>

מחליפים את <robo-script-path> בנתיב לקובץ Robo במערכת הקבצים המקומית או ב-Cloud Storage באמצעות הסימון gs://. לדוגמה:

gcloud firebase test android run --app = <path_to_app_apk_file> --robo-script = <robo-script-path>

השלבים הבאים