במסמך הזה מוסבר איך להשתמש בסקריפטים של Robo, שהם בדיקות שמבצעות באופן אוטומטי משימות QA ידניות לאפליקציות לנייד, ומאפשרות אסטרטגיות של אינטגרציה רציפה (CI) ובדיקות טרום-השקה. לדוגמה, אתם יכולים להשתמש בסקריפטים של Robo כדי לבדוק תהליך נפוץ שעובר המשתמש או לספק קלט ספציפי לממשק המשתמש (UI), כמו שם משתמש וסיסמה. סקריפטים של Robo הם תכונה של בדיקת Robo.
באמצעות סקריפטים של Robo, אתם מקליטים את עצמכם מבצעים תהליך עבודה באפליקציה, ואז מעלים את ההקלטה למסוף Firebase כדי להריץ אותה בבדיקות Robo. כשמריצים בדיקת Robo עם סקריפט מצורף, קודם כל Robo מבצעת את הפעולות שהוגדרו מראש בסקריפט, ואז בודקת את האפליקציה כרגיל.
סקריפטים של Robo משתמשים בבדיקת Robo כמנוע הבדיקה. בצורה הכי בסיסית שלו, סקריפט Robo מורכב מרצף של פעולות בממשק המשתמש, כמו הזנת הטקסט 'שם משתמש' ואז לחיצה על הלחצן 'אישור'. סקריפטים של Robo יכולים גם לכלול פעולות כמו המתנה להופעת רכיב, הקשה על נקודה ספציפית בתוך רכיב והרצת פקודות מעטפת של Android Debug Bridge (adb).
לסקריפטים של Robo יש את היתרונות הבאים על פני frameworks מסורתיות לבדיקה:
| יכולת | תיאור |
| חזק מאוד | סקריפטים של Robo יכולים להתמודד עם הבדלים משמעותיים במבנה ובהתנהגות בין גרסאות של אפליקציות, ועם חוסר יציבות של אפליקציות. |
| שאלה פתוחה | אחרי שסקריפט Robo מסתיים, בדיקת Robo הבסיסית יכולה להמשיך לבדוק את האפליקציה. גישת הבדיקה המתמשכת הזו מאפשרת כמה תרחישים לדוגמה. לדוגמה, אפשר להשתמש בסקריפט Robo כדי להעביר אפליקציה למצב מסוים על ידי ביצוע תהליך כניסה בהתאמה אישית. |
| ניתן להקלטה | אין צורך לכתוב קוד לסקריפטים של Robo באופן ידני. אפשר להקליט אותם באמצעות מקליט הסקריפטים של Robo ב-Android Studio. בדרך כלל לא צריך ידע בפיתוח לנייד כדי ליצור או לשנות סקריפטים של Robo. |
| גמיש | סקריפטים של Robo יכולים לקיים אינטראקציה עם רכיבים לא מקוריים בממשק המשתמש, שהם נפוצים במשחקים. |
סקריפטים של Robo מופעלים באופן מותנה במהלך בדיקת Robo, מה שמאפשר למשתמשים להרחיב את ההתנהגות של Robo – בדרך כלל כדי להשיג כיסוי רחב יותר או להתמקד בפונקציונליות ספציפית. בניגוד למסגרות בדיקה מסורתיות, סקריפטים של Robo תומכים בפעולות הבאות:
- תנאים שונים להפעלה, למשל שם חבילת APK מסוים שפעיל (או לא) או רכיב ספציפי שמוצג במסך (או לא).
- אמצעי בקרה על ההפעלה, למשל, מספר הפעלות מקסימלי, עדיפות, שלב סריקה רלוונטי.
- סוגי פעולות לא שגרתיים (מותנות, התעלמות מרכיבים, סגירת מסך).
מומלץ להשתמש בסקריפטים של Robo כשאפשר, כי קל לתחזק אותם. לדוגמה, אתם יכולים להשתמש בסקריפט Robo כדי:
- לנווט בתהליכי עבודה משמעותיים כדי להגיע לליבה של הפונקציונליות של האפליקציה. לדוגמה, אפשר לבצע כניסה, להגדיר את מצב האפליקציה אחרי ההפעלה הראשונה ולרשום משתמש חדש.
- כדי להפיק את המקסימום מבדיקת Robo, אפשר למקד את Robo בחלק מסוים של האפליקציה. סקריפט Robo מנחה את בדיקת Robo להגיע לחלק הרלוונטי באפליקציה, שבו בדיקת Robo ממשיכה בסריקה אוטומטית מלאה.
- להעביר אפליקציה למצב או למסך ספציפיים כדי לבצע ניתוח, למשל כדי לנתח הודעה בתוך האפליקציה, מדיניות פרטיות או שלב ספציפי במשחק.
- מבצעים בדיקת אינסטרומנטציה מקצה לקצה, עם או בלי בדיקת Robo, וממשיכים בסריקה אוטומטית לחלוטין אחרי שסקריפט ה-Robo מסתיים.
אתם יכולים להשתמש בתכונות מתקדמות יותר של סקריפטים של Robo כדי:
- לבצע פעולות לפני ש-Robo מתחיל לסרוק את האפליקציה שנבדקת או אחרי שהסריקה מסתיימת. לדוגמה, לנקות את נתוני האפליקציה שנבדקת לפני הסריקה או לשנות את הגדרות המכשיר.
- לשנות היבטים בהתנהגות של הרובוט במהלך סריקה, ובמיוחד:
- להגדיר ל-Robo להתעלם מווידג'טים מסוימים בממשק המשתמש או ממסכים מסוימים באפליקציה.
- מגדירים פעולה מותאמת אישית ש-Robo יבצע כשהוא חוזר אחורה ממסך מסוים.
- אפשר להגדיר ל-Robo לבצע פעולות ספציפיות בכל פעם שהוא נתקל במסך מסוים באפליקציה במהלך הסריקה.
- התאמה אישית מלאה של אופן הסריקה של Robo. לדוגמה, אפשר להשתמש בשילוב של פעולות מותנות ולא מותנות כדי להשאיר את האפליקציה הנבדקת ברקע לאורך כל הסריקה, תוך ביצוע פעולות במכשיר וסגירת תיבות דו-שיח קופצות שמופיעות בדרך.
חשוב לזכור שסקריפטים של Robo לא מחליפים את כל סוגי הבדיקות. עדיין צריך בדיקות יחידה כדי לזהות באגים לוגיים ברמה נמוכה באפליקציה. בדרך כלל, הבדיקות האלה לא דורשות סביבת Android או iOS. מומלץ להוסיף לבדיקות של Robo Script בדיקות אינסטרומנטציה ממוקדות, שיכולות לכלול טענות נכונות (assertions) ספציפיות ומפורטות לגבי הלוגיקה העסקית, שהכי טוב לבטא בקוד.
הקלטת סקריפט Robo באמצעות Test Lab ב-Android Studio
מקליט הסקריפטים של Robo ב-Android Studio מאפשר לכם להקליט סקריפטים של Robo על ידי אינטראקציה ישירה עם האפליקציה במכשיר. כדי להתחיל להשתמש בסקריפטים של Robo באמצעות הכלי של Firebase ב-Android Studio, פועלים לפי ההוראות הבאות:
פותחים את Android Studio ובוחרים באפשרות Tools -> Firebase (כלים -> Firebase).
בחלונית Firebase, לוחצים על Record Robo Script and Use it to Guide Robo Test.
לוחצים על Record Robo script (הקלטת סקריפט Robo). תיבת הדו-שיח Select Deployment Target מופיעה.
בוחרים את המכשיר שבו רוצים להקליט את סקריפט Robo.
אחרי שמקליטים את סקריפט Robo במכשיר, שומרים את הקובץ כקובץ JSON במיקום הרצוי.
פותחים את הדף Test Lab במסוף Firebase ומעלים את קובץ הסקריפט בפורמט JSON ואת קובץ ה-APK של האפליקציה.
לחץ על הלחצן המשך button. תתבקשו לבחור את המכשיר ואת רמת ה-API. אחרי שסקריפט הבדיקה מסתיים, Test Lab יוצר את דוח הבדיקה.
(אופציונלי) כדי להעתיק או להוריד את ה-logcat של דוח הבדיקה והסרטון, לוחצים על View Source Files.
כברירת מחדל, מנגנוני החוסן של סקריפט Robo מונעים ממנו להיכשל בשלב מוקדם.
אם בוחרים במצב ההפעלה strict וסקריפט Robo נכשל בשלב כלשהו, Test Lab נוטש את כל השלבים הבאים בסקריפט וממשיך בסריקה רגילה של Robo. ברוב המקרים, סקריפטים של Robo נכשלים כי Robo לא מצליח למצוא רכיב נדרש במסך. כדי למנוע כשלים, חשוב לוודא שהניווט באפליקציה צפוי ושהמסכים מוצגים בסדר קבוע.
הרצת סקריפט Robo ב-Test Lab
כדי להריץ סקריפט Robo ב-Test Lab, פועלים לפי ההוראות הבאות:
פותחים את הדף Test Lab במסוף Firebase.
מעלים את קובץ ה-APK או ה-AAB של האפליקציה בשדה "קובץ APK או AAB של האפליקציה".
מעלים את קובץ הסקריפט של Robo שהוקלט או נוצר באופן ידני בשדה סקריפט Robo (אופציונלי).
הוספת סקריפט 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>
השלבים הבאים
- במדריך העזר של סקריפטים של Robo מוסבר על המבנה, היכולות, השימוש והפעולות של סקריפטים של Robo.
- מריצים בדיקת Robo.