OmniLab Android Test Station

‫OmniLab ATS הוא כלי בדיקה שמפתחי Android ומהנדסי בדיקות יכולים להשתמש בו כדי להפעיל ממשק משתמש להרצת חבילות בדיקה סטנדרטיות של Android, כמו חבילת הבדיקות לתאימות של Android‏ (CTS). הכלי הזה פועל כממשק אינטרנט למסגרות בדיקה שונות, כמו 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, מוסיפים את הדגל --force_ats_version 2 לפקודה mtt start:

mtt start --force_ats_version 2

במהלך תקופת המעבר, מומלץ להשתמש בתג 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 20.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 נבדקה עם Python בגרסאות 3.7 עד 3.11.

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

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

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

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

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

כדי להתקין גרסה ספציפית של 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, אתם יכולים להעלות את הקובץ כדי להעתיק את כל התצורות ששונו מהמארח הזה. לשם כך, לוחצים על הלחצן העלאת קובץ.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

הגדרות Wi-Fi

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

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

חיבור מכשיר

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

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

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

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

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

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

    חיבור מכשיר

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

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

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

הרצת בדיקה

בחירת בדיקה

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

בחירת בדיקה

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

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

הגדרת בדיקה

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

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

הגדרת בדיקה

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

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

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

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

    cts --retry 0 -m ShortModuleName
    

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

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

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

      הפעלה קודמת של בדיקה מקומית

      איור 9. הפעלה מקומית קודמת של בדיקה.

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

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

      איור 10. הפעלה מרחוק של בדיקה קודמת.

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

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

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

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

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

product:bramble;product:bramble;product:bramble

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

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

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

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

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

פעולות מכשיר

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

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

הוספת פעולות

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

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

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

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

משאבי בדיקה

איור 14. בדיקת משאבים.

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

בדיקת בוחר משאבים – כתובת URL לאינטרנט

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

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

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

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

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

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

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

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

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

איור 18. בדיקת בוחר המשאבים – חנות קבצים מקומית.

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

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

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

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

התחלת בדיקה

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

התחלת הרצת ניסיון

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

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

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

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

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

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

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

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

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

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

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

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

הגדרת בדיקה

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

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

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

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

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

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

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

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

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

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

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

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

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

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

רשימת הרצות לניסיון

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

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

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

פרטים על הרצת ניסיון

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

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

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

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

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

אלה הסטטוסים של בדיקת ההרצה:

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

ביטול בדיקה

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

ביטול הרצת ניסיון

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

תוצאות של הרצה לניסיון

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

תוצאות של הרצה לניסיון

איור 30. תוצאות ההרצה לניסיון.

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

יומנים של הרצת ניסיון

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

התוצאות של כל מודול נמצאות בכרטיסייה Test Results (תוצאות הבדיקה).

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

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

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

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

איור 33. הכרטיסייה 'מקורות מידע על בדיקות'.

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

הכרטיסייה 'הגדרת הבדיקה'

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

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

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

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

// 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. מזינים את השם המלא של המחלקה של Trade Federation Target Preparer, לדוגמה, com.android.tradefed.targetprep.RunHostCommandTargetPreparer.

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

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

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

    רשימת מכיני מסמכים

    איור 40. רשימת מכיני היעד.

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

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

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

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

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

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

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

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

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

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

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

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

ניהול בדיקות

עריכת בדיקה

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

עריכת בדיקה

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

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

כדי להוסיף בדיקה חדשה, עוברים לדף Tests (בדיקות) ולוחצים על Create a New Test (יצירת בדיקה חדשה). מזינים את הפרטים המתאימים ולוחצים על יצירה.

יצירת בדיקה

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

העתקת מבחן

איור 47. העתקת מבחן.

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

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

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

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

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

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

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

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

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

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

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.

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

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

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

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

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

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

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

  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 יש שתי הגדרות ברירת מחדל לארכוב תוצאות של הרצת בדיקות ומחיקה של קבצים זמניים. במדריך הזה מוסבר איך להתאים אישית את כללי המדיניות וההגדרות כדי לנהל את הקבצים בצורה יעילה.

מדיניות

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

סוג הפעולהפרמטרים
ARCHIVEremove_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. עורכים את ההגדרה של כלי ניקוי הקבצים.

איפוס

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

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

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

תמיכה

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

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