OmniLab Android Test Station

‫OmniLab ATS הוא כלי בדיקה שמפתחי Android ומהנדסי בדיקות יכולים להשתמש בו כדי להפעיל ממשק משתמש להרצת חבילות מקרים לבדיקה סטנדרטיות של Android, כמו חבילה לבדיקות תאימות (CTS) של Android. הכלי הזה משמש כממשק אינטרנט למסגרות בדיקה שונות, כמו Trade Federation (TF)‎ ו-Google Mobly, ומאפשר לכם להריץ בדיקות CTS ובדיקות של כמה מכשירים על קבוצה של מכשירי בדיקה בהגדרה מינימלית, וגם לקבוע לוח זמנים להרצת בדיקות באופן רציף.

מבוא ל-OmniLab ATS 2.0

ב-OmniLab ATS 2.0, תשתית ביצוע הבדיקות הבסיסית מועברת מ-Trade Federation ל-OmniLab. השינוי הזה מספק קצה עורפי חזק ויעיל יותר, תוך שמירה על ממשק המשתמש ותהליכי העבודה של OmniLab ATS 1.0.

היתרונות העיקריים של OmniLab ATS 2.0:

  • תשתית מודרנית: מינוף פלטפורמת OmniLab לשיפור היציבות והביצועים.
  • מעבר חלק: אין שינויים בממשק המשתמש באינטרנט או בתהליכי העבודה העיקריים של ביצוע הבדיקות.
  • מוכנות לעתיד: התשתית הזו תואמת לתשתית הבדיקות המאוחדת של Google, וכך מאפשרת לאמץ תכונות חדשות מהר יותר.

‫OmniLab ATS 2.0 כולל תכונות חדשות כמו עדכונים בכמות גדולה של תוכניות בדיקה, הקצאת מכשירים מתקדמת ועוד. כדאי לבדוק את הערות המוצר כדי לראות אם יש עדכונים.

שדרוג ל-OmniLab ATS 2.0:

כדי להשתמש ב-OmniLab ATS 2.0, צריך לשדרג את התחנה לגרסה R52 או לגרסה חדשה יותר. משתמשים בדגל --force_ats_version 2 כדי לעבור לגרסה החדשה של Omnilab ATS 2.0, ובדגל --force_update עם הפקודה mtt start כדי לשדרג לגרסה העדכנית:

mtt start --force_ats_version 2 --force_update

במהלך תקופת ההעברה, מומלץ להשתמש בתג dogfood כדי לגשת לגרסה היציבה האחרונה עם תכונות OmniLab ATS 2.0:

mtt start --force_ats_version 2 --tag dogfood --force_update

אנחנו מתכננים להפוך את OmniLab ATS 2.0 לגרסת ברירת המחדל ברבעון השלישי של 2026. אנחנו מתכננים להוציא משימוש את OmniLab ATS 1.0 עד סוף 2026.

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

הגדרת OmniLab ATS

בקטע הזה מוסבר איך להתקין ולהגדיר את OmniLab ATS.

‫OmniLab ATS משתמש בקוד מקור מהמיקומים הבאים:

התקנת OmniLab ATS

פועלים לפי דרישות החומרה והתוכנה של חבילות המקרים לבדיקה שאתם מריצים.

הדרישות של CTS מפורטות בכתובת source.android.com.

אין דרישות חומרה נוספות ל-OmniLab ATS, אבל אנחנו ממליצים להשתמש בדרישות המארח של CTS כנקודת התחלה.

יש שתי דרכים להתקין את OmniLab ATS:

התקנה באמצעות תוכנת ההתקנה

תוכנת ההתקנה נתמכת ב-Ubuntu מגרסה 22.04 ואילך. מנהל ההתקנה מתקין ומגדיר את כל התוכנות והמשאבים שנדרשים כדי להפעיל את OmniLab ATS.

כדי להשתמש בתוכנת ההתקנה:

  1. מפעילים את תוכנת ההתקנה:

    curl https://storage.googleapis.com/android-mtt.appspot.com/prod/install.sh | bash
    
  2. מריצים את mtt version כדי לבדוק את הגרסה המותקנת של OmniLab ATS CLI.

הטמעה ידנית

התקנת Docker
  1. פועלים לפי ההוראות להתקנת Docker Community Edition (CE)‎ במחשב Linux.

  2. פועלים לפי השלבים לניהול Docker כמשתמש שאינו Root אחרי ההתקנה.

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

מתקינים את Python 3

כדי להשתמש ב-OmniLab ATS CLI, צריך את Ubuntu 22.04 ואילך. ה-CLI מאומת מול גרסאות Python‏ 3.10 עד 3.13.

כדי להתקין את Python 3, מריצים את הפקודות הבאות:

sudo apt-get update
sudo apt install python3 python3-distutils

אם אתם צריכים גרסה של Python 3 שלא כלולה בהפצה הרגילה, קודם צריך להוסיף את המאגר של Python 3 באחת מהדרכים הבאות:

  • מריצים את הפקודה הבאה:

    sudo add-apt-repository ppa:deadsnakes/ppa
    
  • בונים ומתקינים את המאגר מהמקור.

כדי להתקין גרסה ספציפית של Python 3 (לדוגמה, 3.10), מריצים את הפקודות הבאות:

sudo apt-get update
sudo apt install python3.10 python3.10-distutils

הורדת OmniLab ATS CLI

כאן אפשר להוריד את חבילת ממשק שורת הפקודה (CLI).

הפעלת OmniLab ATS

מפעילים את OmniLab ATS באמצעות הפקודה הבאה:

mtt start

בפעם הראשונה שמפעילים את ממשק המשתמש, יכול להיות שיעברו כמה דקות עד שהוא יופיע. ב-CLI מוצגת כתובת URL של דף אינטרנט כדי לגשת לממשק המשתמש בדפדפן. כברירת מחדל, כתובת ה-URL היא localhost:8000. במקרה הצורך, אפשר לשנות את יציאת ברירת המחדל בזמן ההפעלה באמצעות הדגל --port.

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

כדי לעדכן לגרסה הנוכחית, מריצים את הפקודה:

mtt start --force_update

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

mtt stop

כדי לראות רשימה של פקודות אחרות, משתמשים בפקודה:

mtt --help

גיבוי ושחזור של מסד הנתונים

כדי לגבות את מסד הנתונים של OmniLab ATS, עוצרים את האפליקציה ומריצים את הפקודה הבאה, שמגבה את מסד הנתונים הנוכחי לקובץ TAR בשם mtt-backup.tar בספריית הבית:

docker run --rm --mount source=mtt-data,target=/data -v ~:/out ubuntu bash -c "cd /data && tar cvf /out/mtt-backup.tar ."

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

docker run --rm --mount source=mtt-data,target=/data -v ~:/out ubuntu bash -c "cd /data && tar xvf /out/mtt-backup.tar"

אשף ההגדרה

אחרי שמתקינים ומפעילים את OmniLab ATS בפעם הראשונה, אשף ההגדרה מנחה אתכם בכמה שלבים כדי לעזור לכם להתאים אישית את הכלי לסביבה שלכם. אפשר לשנות את ההגדרות האלה בכל שלב בדף ההגדרות.

שחזור גיבוי של הגדרות אישיות

אם יש לכם קובץ תצורה מגובה ממארח אחר של OmniLab ATS, אתם יכולים להעלות את הקובץ כדי להעתיק את כל התצורות ששונו מהמארח הזה. כדי לעשות את זה, לוחצים על הכפתור Upload File.

שחזור גיבוי של הגדרות אישיות

איור 1. שחזור גיבוי של הגדרות אישיות.

הגדרת חשבון השירות שמוגדר כברירת מחדל

אתם יכולים להגדיר חשבון שירות ש-OmniLab ATS ישתמש בו כברירת מחדל כשהוא ניגש למשאבים שלכם (לדוגמה, Google Cloud Storage, ‏Google Drive). כדי לאמת את חשבון השירות, לוחצים על Upload Service Account Key ובוחרים את קובץ המפתח בפורמט JSON של חשבון השירות.

הגדרת חשבון שירות

איור 2. הגדרת חשבון השירות.

אחרי שחשבון השירות מאומת, כתובת האימייל של החשבון מופיעה בפינה הימנית העליונה של הדף. כדי לשנות את חשבון השירות, לוחצים על שם החשבון, מסירים את חשבון ברירת המחדל הנוכחי ומעלים מפתח חדש לחשבון השירות.

שינוי חשבון השירות

איור 3. שינוי חשבון השירות.

ייבוא קבוצות של הגדרות אישיות

קבוצת הגדרות היא חבילה של הגדרות להרצת חבילות מקרים לבדיקה, כולל פעולות קשורות במכשיר וערוצי build. קבוצות ההגדרות מתארחות בקטגוריה ספציפית של Google Cloud Storage ‏ (GCS). אחרי אימות ערוץ ה-build של GCS באמצעות חשבון Google, תופיע רשימה של כל קבוצות ההגדרות שזמינות לכם.

בוחרים את קבוצות ההגדרות שרוצים להוסיף למארח של תחנת הבדיקה ולוחצים על ייבוא הפריטים שנבחרו.

ייבוא קבוצות של הגדרות אישיות

איור 4. ייבוא של קבוצת הגדרות אישיות.

כולל הגדרות Wi-Fi

בחלק מבדיקות ה-CTS צריך לחבר את המכשיר לנקודה לשיתוף אינטרנט (Hotspot) ב-Wi-Fi. כדי לבחור את רשת ה-Wi-Fi, מזינים את מזהה ה-SSID של ה-Wi-Fi ואת מפתח ה-PSK של ה-Wi-Fi (אופציונלי).

הגדרות Wi-Fi

איור 5. הגדרות של נקודת Wi-Fi לשיתוף אינטרנט.

אחרי שמסיימים את אשף ההגדרה, הדף נטען מחדש עם ההגדרות החדשות.

חיבור מכשיר

כדי להשתמש במכשיר לבדיקה, צריך להפעיל את ניפוי הבאגים ב-USB. כדי להפעיל את ניפוי הבאגים:

  1. פועלים לפי ההוראות במאמר הפעלת אפשרויות למפתחים וניפוי באגים.

  2. אם אתם מתכננים להשתמש בגרסאות build של Android לבדיקה שנטענו מראש עם מפתחות ADB בהתאמה אישית, שימו את קובצי ה-.adb_key בהתאמה אישית בספרייה ~/.android/.

    הקבצים נטענים באופן אוטומטי ומועברים ל-ADB כדי להפעיל באופן אוטומטי ניפוי באגים ב-USB אחרי צריבת המכשיר במכשירים שבהם פועלים ה-builds האלה.

  3. מחברים את המכשיר למכונה המארחת באמצעות USB.

    המכשיר יופיע בכרטיסייה Devices ב-OmniLab ATS תוך דקה אחרי שתרעננו את ממשק האינטרנט. בכרטיסייה הזו אפשר גם לראות את מצב המכשירים.

    חיבור מכשיר

    איור 6. חיבור מכשיר.

מצבי המכשיר השונים הם:

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

מבצעים בדיקה

בחירת בדיקה

‫OmniLab ATS כולל קבוצה של הגדרות CTS מובנות מראש. כדי להריץ אחת מהבדיקות האלה, עוברים לכרטיסייה חבילות מקרים לבדיקה ולוחצים על Run test בבדיקה שנבחרה.

בחירת בדיקה

איור 7. בחירת בדיקה.

כדי לערוך או להוסיף בדיקות חדשות, עיינו בקטע הוספת בדיקות.

הגדרת הרצת בדיקה

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

אפשר להשלים את השלב הזה באמצעות ערכי ברירת המחדל, אבל אתם יכולים לשנות כל אחד מהפרמטרים, כמו Max Retry ו-Command, בהתאם לצרכים שלכם.

הגדרת הרצת הבדיקה

איור 8. הגדרת הרצת בדיקה.

הפרמטרים של הרצת הבדיקה הם:

  • שם – השם של חבילת המקרים לבדיקה שרוצים להריץ.
  • ‫Run Count – מספר הפעמים שהרצת הבדיקה הזו תתבצע כשהיא מתוזמנת. ההרצות של הבדיקות מתוזמנות באמצעות Trade Federation, שמריץ עד 20 הרצות של בדיקות במקביל אם יש קיבולת לכך.
  • ‫Max Retry – המספר המקסימלי של ניסיונות חוזרים להרצת בדיקה אם לפחות בדיקה אחת נכשלת. בדרך כלל מגדירים 4-6 ניסיונות חוזרים להרצה מלאה של CTS כדי לטפל בבדיקות לא יציבות (flaky tests).
  • זמן קצוב לתפוגה בתור – אם הרצת בדיקה נשארת במצב בתור יותר מדי זמן, היא מבוטלת באופן אוטומטי. כאן מציינים את משך הזמן שצריך להמתין לפני הביטול. ברירת המחדל היא 24 שעות.
  • ‫Command – הפקודה להרצת חבילת המקרים לבדיקה. כאן אפשר להזין ארגומנטים נוספים של שורת הפקודה. לדוגמה, כדי להריץ מודול ספציפי ב-CTS 8.1, משתמשים בפקודה:

    cts-suite -m ShortModuleName
    
  • פקודת ניסיון חוזר – הפקודה להרצה חוזרת של חבילת מקרים לבדיקה. כאן אפשר להוסיף עוד ארגומנטים בשורת הפקודה. לדוגמה, כדי לנסות שוב רק מודול ספציפי ב-CTS 8.1, משתמשים בפקודה:

    cts --retry 0 -m ShortModuleName
    

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

  • הרצת בדיקה קודמת – אם רוצים להריץ מחדש בדיקה קודמת:

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

      הרצת בדיקה קודמת מקומית

      איור 9. הרצת בדיקה מקומית קודמת.

    • ‫Remote (מרחוק) – אם ההרצה התחילה במארח אחר, מעלים את קובץ תוצאות הבדיקה: בוחרים באפשרות Remote, לוחצים על Upload Test Results File ובוחרים קובץ מהאחסון המקומי.

      הסרת הרצת הבדיקה הקודמת

      איור 10. הסרת הרצת הבדיקה הקודמת.

מכשירים נבחרים

מסמנים את התיבות של המכשירים שרוצים להקצות להרצת חבילת המקרים לבדיקה. מספר ה-shards אמור להשתנות באופן אוטומטי בהתאם למספר המכשירים שנבחרו.

בוחרים מכשירים

איור 11. בחירת מכשירים.

כדי לבחור מכשירים לפי מאפיינים אחרים, ולא לפי המספרים הסידוריים שלהם, אפשר להזין ידנית את "מפרט המכשיר". לדוגמה, כדי לבחור 3 מכשירים ששם המוצר שלהם הוא "bramble", מזינים את הפרטים הבאים:

product:bramble;product:bramble;product:bramble

המאפיינים הנתמכים הם:

  • build_id
  • device_serial
  • device_type
  • שם מארח
  • מכפלה
  • product_variant
  • sim_state

כדי להריץ את הבדיקה, כל המכשירים שנבחרו צריכים להיות במצב Available, וכולם עוברים למצב Allocated כשהבדיקה מופעלת. הרצת הבדיקה נמצאת במצב Queued בזמן שהיא ממתינה שהמכשירים יהיו זמינים.

הוספת פעולות במכשיר

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

פעולות מכשיר

איור 12. פעולות במכשיר.

כדי להוסיף פעולת מכשיר להרצת בדיקה, לוחצים על Add new action, מסמנים את התיבות של הפעולות שרוצים להוסיף ולוחצים על Add Action(s)‎. הפעולות במכשיר מתבצעות בזו אחר זו. כדי לשנות את הסדר של הפעולות, אפשר לגרור אותן.

הוספת פעולות

איור 13. שינוי סדר הפעולות.

הגדרת משאבי הבדיקה

משאבי בדיקה הם קבצים שנדרשים כדי להריץ בדיקה. לדוגמה, כדי להריץ את CTS צריך קובץ android-cts*.zip, וכדי לצרוב מכשיר צריך לספק את קובץ האימג' של ה-build.

כתובת ה-URL להורדה של קובץ ה-ZIP של חבילת המקרים לבדיקה צריכה להיות כברירת מחדל הקישורים ל-Google Drive שניתנו לשותפים. כדי לבחור קובץ אחר, לוחצים על עיון. בחלון הקופץ, אתם יכולים להזין קישור להורדת קובץ, להשתמש בקובץ מערוץ build מאומת או להעלות קובץ מהאחסון המקומי.

משאבי בדיקה

איור 14. משאבי בדיקה.

למטה מוצג החלון הקופץ לבחירת משאב לבדיקה לפי כתובת URL. אתם יכולים להזין את כתובת ה-URL להורדה וללחוץ על הכפתור בחירה כדי לאשר את הבחירה.

Test Resource Selector - Web URL

איור 15. הכלי לבחירת משאבים לבדיקה – כתובת URL.

אם העליתם משאבים ל-Google Drive, ל-Google Cloud Storage (GCS) או לערוצים אחרים, אתם יכולים גם לעבור לכרטיסייה של הערוץ הספציפי ולבחור שם את המשאבים. הנה דוגמה לבחירת משאב מ-Google Drive.

Test Resource Selector - Google Drive

איור 16. כלי לבחירת משאבים לבדיקה – Google Drive.

בנוסף לבחירת קבצים, אפשר להשתמש בתווים כלליים לחיפוש בשדה Filename. כאן אפשר למצוא את המסמכים.

Test Resource Selector - Wildcard Pattern Support

איור 17. בורר משאבים לבדיקה – תמיכה בתבניות של תווים כלליים לחיפוש.

אפשר גם לבחור קובץ מאחסון הקבצים המקומי של OmniLab ATS. אתם יכולים להעלות קבצים לאחסון הזה, או להשתמש ישירות בקבצים ובספריות מקומיים.

Test Resource Selector - Local File Store

איור 18. Test Resource Selector - Local file store.

הוספת הגדרות להרצה חוזרת

אפשר לתזמן הרצות חוזרות שיתחילו אחרי שההרצה הראשית תסתיים ותטען את התוצאות שלה, אבל אפשר להשתמש במכשיר, בפעולות או במשאבים שונים.

הוספת הגדרות להרצה מחדש

איור 19. הוספת הגדרות להרצה מחדש.

התחלת הרצת בדיקה

אחרי שמזינים את המידע שנדרש להרצת הבדיקה, לוחצים על Start Test Run. אם כל המידע תקין, הרצת הבדיקה מתחילה ומועברים לדף שבו אפשר לראות את הפרטים וההתקדמות של הרצת הבדיקה.

התחלת הרצת בדיקה

איור 20. התחלת הרצת בדיקה.

יצירת תוכנית בדיקה

תוכניות בדיקה משמשות ליצירת הרצות של בדיקות לפי לוח זמנים קבוע. לדוגמה, הפעלת CTS 9.0 כל יום בשעה 17:00. כדי ליצור תוכנית בדיקה חדשה, לוחצים על Create a new test plan.

יצירת תוכנית לבדיקה

איור 21. יצירת תוכנית בדיקה.

הגדרת תוכנית הבדיקה

מזינים את השם של תוכנית הבדיקה וכל תווית שרוצים להוסיף. ואז בוחרים את לוח הזמנים שרוצים להשתמש בו.

  • ידני – תוכנית הבדיקה יוצרת הרצות של בדיקות רק כשמשתמש לוחץ על Run test plan בדף הרשימה של תוכניות הבדיקה.
  • תקופתית – תוכנית הבדיקה מתזמנת באופן אוטומטי את הרצות הבדיקה לפי לוח הזמנים התקופתי שנבחר. לדוגמה, תזמון הרצה של בדיקה כל יום בשעה 17:00.
  • בהתאמה אישית – תוכנית הבדיקה מתזמנת באופן אוטומטי את הרצות הבדיקה על סמך ביטוי ה-cron שהוזן. לדוגמה, כדי לתזמן הרצת בדיקה כל יום בשעה 17:00, ביטוי ה-cron הוא 0 17 * * *.

הגדרת תוכנית הבדיקה

איור 22. הגדרת תוכנית בדיקה.

הוספת חבילות מקרים לבדיקה

לוחצים על ‎+ Add test run configuration כדי להוסיף חבילות מקרים לבדיקה שרוצים לתזמן באמצעות תוכנית הבדיקה. בוחרים חבילת מקרים לבדיקה מהתפריט הנפתח Name ולוחצים על Next step. בוחרים את המכשירים שבהם רוצים להריץ את הבדיקה ולוחצים על Add Configuration. אפשר להוסיף כמה הגדרות לכל תוכנית בדיקה.

הגדרת הרצת הבדיקה

איור 23. הגדרת הרצת בדיקה.

הוספת פעולות במכשיר

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

הוספת פעולות במכשיר

איור 24. הוספת פעולות במכשיר.

הגדרת משאבי הבדיקה

הוספת משאבי בדיקה לתוכניות בדיקה זהה להוספה שלהם להרצות בדיקה נפרדות. פרטים נוספים זמינים במאמר הגדרת משאבים לבדיקה.

הגדרת משאבי בדיקה

איור 25. הגדרת משאבי בדיקה.

צפייה בהרצות של בדיקות

רשימת הרצות הבדיקה

בדף "הרצות של בדיקות" אפשר לראות את רשימת ההרצות המתוזמנות של הבדיקות. לוחצים על View כדי לראות פרטים נוספים על הרצת הבדיקה.

אפשר גם לסנן את הרשימה על ידי הזנת מחרוזת בסרגל הסינון ולחיצה על Enter. אפשר להשתמש בכמה מסננים, פשוט מפרידים ביניהם באמצעות פסיק. המסנן מחזיר את כל השורות שמכילות את הטקסט המדויק (ללא התאמה למחרוזת משנה) בכל עמודה, למעט Status ו-Created.

מסנן ריק מחזיר את כל השורות. כרגע אין דרך לסנן שורות עם ערכים ריקים.

רשימת הרצות של בדיקות

איור 26. רשימת הרצות של בדיקות.

פרטי הרצת הבדיקה

כאן אפשר לראות את פרטי הרצת הבדיקה, כמו הסטטוס, היומנים והתוצאות.

פרטי הרצת הבדיקה

איור 27. פרטי הרצת הבדיקה.

סטטוס הרצת הבדיקה

ההתקדמות של הרצת הבדיקה מוצגת בקטע "סטטוס". אם יש הודעה קשורה, כמו התקדמות ההורדה, סיבת הביטול או הודעת שגיאה, היא תוצג גם כאן.

סטטוס הרצת הבדיקה

איור 28. סטטוס הרצת הבדיקה.

אלה המצבים של הרצת הבדיקה:

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

ביטול של הרצת בדיקה

אם הרצת הבדיקה לא הסתיימה, אפשר לבטל אותה בלחיצה על Cancel ואז על Yes בתיבת הדו-שיח לאישור. הרצות של בדיקות מתבטלות באופן אוטומטי גם אם הן נשארות במצב Queued למשך זמן ארוך יותר מהשדה queue_timeout_seconds. אם מבטלים הרצה של בדיקה כשהיא במצב Running, יכול להיות שיעברו כמה דקות עד שהביטול ייכנס לתוקף.

ביטול הרצת הבדיקה

איור 29. ביטול של הרצת בדיקה.

תוצאות של הרצת בדיקה

אחרי שהרצת הבדיקה מסתיימת, המערכת אוספת את התוצאות ומציגה אותן. כדי לראות פרטים נוספים, לוחצים על החץ של כל הרצה. לוחצים על View Output Files כדי לראות את פריטי המידע שנאספו מהבדיקה, כמו test_result.xml ו-test_result_failures.html.

תוצאות של הרצת בדיקה

איור 30. תוצאות של הרצת בדיקה.

בכרטיסייה Logs אפשר לראות את היומנים של המארח ושל Tradefed בזמן אמת.

יומני הרצת בדיקה

איור 31. הכרטיסייה "יומנים".

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

הכרטיסייה "תוצאות הבדיקה"

איור 32. הכרטיסייה "תוצאות הבדיקה".

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

כרטיסיית משאבי בדיקה

איור 33. הכרטיסייה "משאבי בדיקה".

כדי לראות את פרטי הרצת הבדיקה, כמו create_time, עוברים לכרטיסייה Config.

הכרטיסייה "הגדרות אישיות לבדיקה"

איור 34. הכרטיסייה "הגדרה".

תכונות מתקדמות

ניהול קובצי תצורה

כדי לטעון אפשרויות מוגדרות מראש כמו בדיקות, ערוצי build ופעולות במכשיר, OmniLab ATS משתמש בקובצי תצורה שכתובים ב-YAML. הנה דוגמה לקובץ תצורה:

// example_file.yaml
tests:
- id : android.cts.9_0.arm
  name: CTS 9.0 (ARM)
  test_resource_defs:
  - name: android-cts.zip
    default_download_url: https://dl.google.com/dl/android/cts/android-cts-9.0_r7-linux_x86-arm.zip
    test_resource_type: TEST_PACKAGE
  command: cts
  env_vars:
  - name: TF_PATH
    value: ${TF_WORK_DIR}/android-cts/tools:${TF_WORK_DIR}/android-cts/testcases
  - name: LD_LIBRARY_PATH
    value: ${TF_WORK_DIR}/android-cts/lib:${TF_WORK_DIR}/android-cts/lib64
  setup_scripts:
  output_file_patterns:
  - android-cts/logs/latest/.*
  - android-cts/results/latest/.*\.html
  - android-cts/results/latest/compatibility_result\..*
  - android-cts/results/latest/logo.png
  - android-cts/results/latest/test_result.xml
  result_file: test_result.xml
  java_properties:
  - name: CTS_ROOT
    value: ${TF_WORK_DIR}
  context_file_dir: android-cts/results/
  context_file_pattern: '[\d_\.]+\.zip'
  retry_command_line: retry --retry 0
  runner_sharding_args: --shard-count ${TF_SHARD_COUNT}

build_channels:
- id: google_drive
  name: Google Drive
  provider_name: Google Drive

device_actions:
- id: flash
  name: Flash
  test_resource_defs:
  - name: bootloader.img
    test_resource_type: DEVICE_IMAGE
  - name: radio.img
    test_resource_type: DEVICE_IMAGE
  - name: img.zip
    test_resource_type: DEVICE_IMAGE
  tradefed_target_preparers:
  - class_name: com.android.tradefed.targetprep.RunHostCommandTargetPreparer
    option_values:
    - name: work-dir
      values:
      - ${TF_WORK_DIR}
    - name: host-setup-command
      values:
      - adb -s $SERIAL reboot-bootloader
      - fastboot -s $SERIAL flash bootloader bootloader.img
      - fastboot -s $SERIAL flash radio radio.img
      - fastboot -s $SERIAL reboot-bootloader
      - fastboot -s $SERIAL -w update img.zip
      - adb -s $SERIAL wait-for-device
    - name: host-cmd-timeout
      values:
      - 10m

כשמגדירים את המכונה של OmniLab ATS, אפשר לייצא את ההגדרות כקובץ ולשתף אותן עם משתמשים אחרים. כדי לעשות את זה, עוברים לדף ההגדרות ולוחצים על ייצוא בפינה השמאלית העליונה.

ניהול קובצי תצורה

איור 35. ניהול קובצי תצורה.

אחרי שקובץ התצורה יורד, משתפים אותו עם משתמשים אחרים. כדי להוסיף את קובץ התצורה למכונה של OmniLab ATS, לוחצים על Import ובוחרים את קובץ התצורה.

יצירת פעולה חדשה במכשיר

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

הכרטיסייה "פעולות במכשיר"

איור 36. הכרטיסייה "פעולות במכשיר".

הוספת פעולה חדשה במכשיר

  1. לוחצים על פעולה חדשה במכשיר.

    כפתור פעולה של מכשיר חדש

    איור 37. כפתור פעולה חדש במכשיר.

  2. מזינים שם ותיאור.

    שם הפעולה במכשיר

    איור 38. שם הפעולה במכשיר.

  3. לוחצים על הוספת מכין בקשה לטירגוט.

  4. מזינים את שם המחלקה המלא של Target Preparer ב-Trade Federation, לדוגמה com.android.tradefed.targetprep.RunHostCommandTargetPreparer.

    הוספת מכין דוח יעד

    איור 39. הוספת מכין דוחות יעד.

    רשימה של מכיני היעדים הזמינים מופיעה במאמר העזר com.android.tradefed.targetprep.

    רשימת מכיני היעד

    איור 40. רשימת מכיני הדוחות למיקוד.

  5. מוסיפים את האפשרויות שרוצים להשתמש בהן עם הכלי להכנת היעד. כדי לראות את האפשרויות הזמינות, חפשו את targetprep בקוד המקור של כל מכין יעד ב-AOSP:

    דוגמה לאפשרות פעולה

    איור 41. דוגמה לאפשרות פעולה.

  6. כדי להוסיף אפשרות, לוחצים על Add Target Preparer Option ומזינים את הערכים הנדרשים.

    דוגמה לפקודת פעולה

    איור 42. דוגמה לפקודת פעולה.

  7. מגדירים את משאבי הבדיקה שנדרשים כדי לבצע את פעולת המכשיר, למשל, תמונות build לצריבה. כדי להוסיף הגדרת משאב, לוחצים על Add Test Resource וממלאים את שדות החובה. אם אתם יודעים איפה הקבצים נמצאים, אתם יכולים ללחוץ על browse כדי לציין כתובת URL שתוביל להורדה שלהם. אם המכינים של היעד מקבלים ספרייה כמשאב בדיקה, בוחרים באפשרות Decompress (ביטול דחיסה). אחר כך מציינים את ספריית היעד היחסית בספריית העבודה הזמנית ואת שמות הקבצים שרוצים לפרוס. אם לא צוינו שמות של קבצים, כל הקבצים יחולצו ממשאב הבדיקה.

    מקורות מידע לבדיקת פעולות

    איור 43. משאבים לבדיקת פעולות.

  8. לוחצים על עדכון.

    פעולה: שמירת השינויים

    איור 44. פעולה: שמירת השינויים.

ניהול הבדיקות

עריכת בדיקה

כדי לערוך בדיקה שמורה, נכנסים לדף Tests ולוחצים על Edit בשורה של הבדיקה שרוצים לשנות. אחרי שמשנים את הגדרות הבדיקה, לוחצים על Update.

עריכת בדיקה

איור 45. עריכת בדיקה.

הוספת בדיקה חדשה

כדי להוסיף בדיקה חדשה, עוברים לדף "בדיקות" ולוחצים על יצירת בדיקה חדשה. מזינים את המידע המתאים ולוחצים על Create.

יצירת בדיקה

איור 46. יצירת בדיקה.

העתקת בדיקה

איור 47. העתקת בדיקה.

ייצוא הגדרות המארח

אחרי שמגדירים מארח, אפשר לייצא את ההגדרות שלו לקובץ. אתם יכולים להעלות את הקובץ הזה למארחים אחרים כדי להעתיק את ההגדרות האישיות השמורות.

כדי לייצא את ההגדרות של המארח, עוברים לדף Settings ולוחצים על Export בפינה הימנית העליונה.

ייצוא הגדרות המארח

איור 48. ייצוא הגדרות המארח.

כדי לייבא קובץ תצורה של מארח, עוברים לדף Settings ולוחצים על Import בפינה הימנית העליונה.

מתבצע ייבוא של הגדרות המארח

איור 49. ייבוא הגדרות של מארח.

שימוש בקבצים ובספריות מקומיים

החל מגרסה R11, קבצים בספרייה $HOME/.ats_storage נגישים באופן אוטומטי ב-OmniLab ATS. מעתיקים או מעבירים קובץ לספרייה הזו, ואז אפשר לבחור אותו מהכרטיסייה Local File כשמתזמנים הרצת בדיקה.

cp /path/to/file $HOME/.ats_storage

בחירת קובץ מקומי

איור 50. בחירת קובץ מהספרייה $HOME/.ats_storage.

אפשר לטעון ספריות נוספות למאגר הקבצים המקומי באמצעות הדגל --mount_local_path.

mtt start --mount_local_path=/path/to/dir1 --mount_local_path=/path/to/dir2:renamed_dir2

ספריות נוספות שנטענו

איור 51. ספריות נוספות שנטענו במאגר הקבצים המקומי.

הפעלת מצב מארחים מרובים

במצב Multi-host, המשתמשים יכולים להשתמש במארח בקר ATS אחד כדי לנהל את המכשירים והבדיקות בכמה מארחי ATS worker.

ארכיטקטורה של מצב ריבוי מארחים

איור 52. ארכיטקטורה של מצב ריבוי מארחים.

  1. כדי להפעיל את בקר ה-ATS, משתמשים בפקודה הבאה:

    mtt start --operation_mode=ON_PREMISE
    
  2. בודקים אם אפשר לגשת לבקר בכתובת http://${CONTROLLER_HOSTNAME}:8000.

  3. כדי להפעיל את ה-workers, משתמשים בפקודה הבאה:

    mtt start --control_server_url=http://CONTROLLER_HOSTNAME:8000 --operation_mode=ON_PREMISE
    

אם הרשת שלכם לא מאפשרת למארחים לתקשר זה עם זה, אתם צריכים לפעול לפי הוראות ההגדרה המתקדמות יותר שבהמשך, בקטע "עובד ATS".

  1. מחברים בין שני המארחים באמצעות מנהרות SSH. בוחרים יציאות לשרת הראשי ולשרת הקבצים, לדוגמה, 9000 ו-9006.

    ssh -L ATS_PORT:localhost:8000 -L FS_PORT:localhost:8006 CONTROLLER_HOSTNAME
    
  2. מגדירים ומפעילים את ATS.

    DOCKER_GATEWAY_IP_ADDRESS=$(ip -4 addr show dev docker0 | grep -Eo 'inet [.0-9]+/' | grep -Eo '[.0-9]+')
    socat tcp-listen:ATS_PORT,bind="${DOCKER_GATEWAY_IP_ADDRESS}",reuseaddr,fork tcp-connect:127.0.0.1:ATS_PORT &
    socat tcp-listen:FS_PORT,bind="${DOCKER_GATEWAY_IP_ADDRESS}",reuseaddr,fork tcp-connect:127.0.0.1:FS_PORT &
    mtt start --control_server_url=http://${DOCKER_GATEWAY_IP_ADDRESS}:ATS_PORT \
                    --control_file_server_url=http://${DOCKER_GATEWAY_IP_ADDRESS}:FS_PORT \
                    --operation_mode=ON_PREMISE
    

ניקוי קבצים

מנקה הקבצים הוא משימת cron שפועלת מדי שעה כדי לנקות קבצים על סמך הגדרות אישיות שהמשתמשים קבעו. ל-ATS יש שתי הגדרות ברירת מחדל להעברת תוצאות של הרצת בדיקות לארכיון ולמחיקת קבצים זמניים. במדריך הזה מוסבר איך להתאים אישית את כללי המדיניות וההגדרות כדי לנהל את הקבצים ביעילות.

מדיניות

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

סוג הפעולהפרמטרים
ARCHIVE‫remove_file: אם הערך הוא true, הקובץ יוסר אחרי ההעברה לארכיון.
DELETE

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

סוג הקריטריוןתיאורפרמטרים
LAST_MODIFIED_TIMEלסנן קבצים לפי התאריך והשעה של השינוי האחרון.‫ttl: יש תמיכה בסוגים שונים של ביטויי זמן, לדוגמה: 10m, 2h, 7 days, 4w. אפשר לעיין בpytimeparse כדי לראות את הפורמטים הנתמכים.
LAST_ACCESS_TIMEלסנן קבצים לפי התאריך והשעה של הגישה האחרונה אליהם.בדיוק כמו LAST_MODIFIED_TIME.
NAME_MATCHסינון קבצים לפי השם שלהם באמצעות ביטוי רגולרי.‫pattern: ביטוי רגולרי, לדוגמה, [a-f0-9]{8}-([a-f0-9]{4}-){3}[a-f0-9]{12}\.zip כדי להתאים לקובצי ZIP של תוצאות.
SYSTEM_AVAILABLE_SPACEלהפעיל פעולות על סמך השטח הפנוי במערכת.‫threshold: הפעלת פעולה כשהשטח הפנוי יורד מתחת לסף, לדוגמה, 200(B), ‏ 200KB, ‏ 200MB, ‏ 200GB, ‏ 2TB.

מדיניות חדשה לניקוי קבצים

איור 53. הוספת מדיניות חדשה לניקוי קבצים.

הגדרות אישיות

הגדרה משלבת כלל מדיניות אחד או יותר עם ספריות ספציפיות. הקבצים והספריות בתוך הספריות שצוינו מעובדים על סמך כללי המדיניות שהוגדרו. כללי המדיניות מוחלים לפי הסדר שבו הם מופיעים בקובץ התצורה.

כל ספריות היעד חייבות להיות בספרייה /data. אם בקובץ התצורה ספריית היעד מוגדרת כ-logs, היא תפורש כ-/data/logs.

עריכת ההגדרות של ניקוי הקבצים

איור 54. עורכים את ההגדרות של מנקה הקבצים.

איפוס

לחיצה על Reset Settings מחזירה את ההגדרות של ניקוי הקבצים למצב ברירת המחדל. הפעולה הזו מוחקת את כל הפריטים בהתאמה אישית.

איפוס ההגדרות של ניקוי הקבצים

איור 55. איפוס ההגדרות של ניקוי הקבצים.

תמיכה

דוחות איתור באגים

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