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