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
- קוד המקור של TradeFed Cluster
התקנת OmniLab ATS
פועלים לפי דרישות החומרה והתוכנה של חבילות המקרים לבדיקה שאתם מריצים.
הדרישות של CTS מפורטות בכתובת source.android.com.
אין דרישות חומרה נוספות ל-OmniLab ATS, אבל אנחנו ממליצים להשתמש בדרישות המארח של CTS כנקודת התחלה.
יש שתי דרכים להתקין את OmniLab ATS:
- מפעילים את תוכנית ההתקנה.
- להתקין אותו ידנית, מה שמחייב התקנה של כמה תוכנות ומשאבים.
התקנה באמצעות תוכנת ההתקנה
תוכנת ההתקנה נתמכת ב-Ubuntu מגרסה 22.04 ואילך. מנהל ההתקנה מתקין ומגדיר את כל התוכנות והמשאבים שנדרשים כדי להפעיל את OmniLab ATS.
כדי להשתמש בתוכנת ההתקנה:
מפעילים את תוכנת ההתקנה:
curl https://storage.googleapis.com/android-mtt.appspot.com/prod/install.sh | bash
מריצים את
mtt versionכדי לבדוק את הגרסה המותקנת של OmniLab ATS CLI.
הטמעה ידנית
התקנת Docker
פועלים לפי ההוראות להתקנת Docker Community Edition (CE) במחשב Linux.
פועלים לפי השלבים לניהול Docker כמשתמש שאינו Root אחרי ההתקנה.
יכול להיות שתצטרכו להפעיל מחדש את חלון הטרמינל או לצאת ולהיכנס שוב כדי שהשינויים בהרשאות ייכנסו לתוקף.
מתקינים את Python 3
כדי להשתמש ב-OmniLab ATS CLI, צריך את Ubuntu 22.04 ואילך. ה-CLI מאומת מול גרסאות Python 3.10 עד 3.13.
כדי להתקין את Python 3, מריצים את הפקודות הבאות:
sudo apt-get updatesudo apt install python3 python3-distutils
אם אתם צריכים גרסה של Python 3 שלא כלולה בהפצה הרגילה, קודם צריך להוסיף את המאגר של Python 3 באחת מהדרכים הבאות:
מריצים את הפקודה הבאה:
sudo add-apt-repository ppa:deadsnakes/ppa
בונים ומתקינים את המאגר מהמקור.
כדי להתקין גרסה ספציפית של Python 3 (לדוגמה, 3.10), מריצים את הפקודות הבאות:
sudo apt-get updatesudo 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 (אופציונלי).
איור 5. הגדרות של נקודת Wi-Fi לשיתוף אינטרנט.
אחרי שמסיימים את אשף ההגדרה, הדף נטען מחדש עם ההגדרות החדשות.
חיבור מכשיר
כדי להשתמש במכשיר לבדיקה, צריך להפעיל את ניפוי הבאגים ב-USB. כדי להפעיל את ניפוי הבאגים:
פועלים לפי ההוראות במאמר הפעלת אפשרויות למפתחים וניפוי באגים.
אם אתם מתכננים להשתמש בגרסאות build של Android לבדיקה שנטענו מראש עם מפתחות ADB בהתאמה אישית, שימו את קובצי ה-
.adb_keyבהתאמה אישית בספרייה~/.android/.הקבצים נטענים באופן אוטומטי ומועברים ל-ADB כדי להפעיל באופן אוטומטי ניפוי באגים ב-USB אחרי צריבת המכשיר במכשירים שבהם פועלים ה-builds האלה.
מחברים את המכשיר למכונה המארחת באמצעות 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 להורדה וללחוץ על הכפתור בחירה כדי לאשר את הבחירה.
איור 15. הכלי לבחירת משאבים לבדיקה – כתובת URL.
אם העליתם משאבים ל-Google Drive, ל-Google Cloud Storage (GCS) או לערוצים אחרים, אתם יכולים גם לעבור לכרטיסייה של הערוץ הספציפי ולבחור שם את המשאבים. הנה דוגמה לבחירת משאב מ-Google Drive.
איור 16. כלי לבחירת משאבים לבדיקה – Google Drive.
בנוסף לבחירת קבצים, אפשר להשתמש בתווים כלליים לחיפוש בשדה Filename. כאן אפשר למצוא את המסמכים.
איור 17. בורר משאבים לבדיקה – תמיכה בתבניות של תווים כלליים לחיפוש.
אפשר גם לבחור קובץ מאחסון הקבצים המקומי של OmniLab ATS. אתם יכולים להעלות קבצים לאחסון הזה, או להשתמש ישירות בקבצים ובספריות מקומיים.
איור 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. הכרטיסייה "פעולות במכשיר".
הוספת פעולה חדשה במכשיר
לוחצים על פעולה חדשה במכשיר.
איור 37. כפתור פעולה חדש במכשיר.
מזינים שם ותיאור.
איור 38. שם הפעולה במכשיר.
לוחצים על הוספת מכין בקשה לטירגוט.
מזינים את שם המחלקה המלא של Target Preparer ב-Trade Federation, לדוגמה
com.android.tradefed.targetprep.RunHostCommandTargetPreparer.
איור 39. הוספת מכין דוחות יעד.
רשימה של מכיני היעדים הזמינים מופיעה במאמר העזר com.android.tradefed.targetprep.
איור 40. רשימת מכיני הדוחות למיקוד.
מוסיפים את האפשרויות שרוצים להשתמש בהן עם הכלי להכנת היעד. כדי לראות את האפשרויות הזמינות, חפשו את targetprep בקוד המקור של כל מכין יעד ב-AOSP:
איור 41. דוגמה לאפשרות פעולה.
כדי להוסיף אפשרות, לוחצים על Add Target Preparer Option ומזינים את הערכים הנדרשים.
איור 42. דוגמה לפקודת פעולה.
מגדירים את משאבי הבדיקה שנדרשים כדי לבצע את פעולת המכשיר, למשל, תמונות build לצריבה. כדי להוסיף הגדרת משאב, לוחצים על Add Test Resource וממלאים את שדות החובה. אם אתם יודעים איפה הקבצים נמצאים, אתם יכולים ללחוץ על browse כדי לציין כתובת URL שתוביל להורדה שלהם. אם המכינים של היעד מקבלים ספרייה כמשאב בדיקה, בוחרים באפשרות Decompress (ביטול דחיסה). אחר כך מציינים את ספריית היעד היחסית בספריית העבודה הזמנית ואת שמות הקבצים שרוצים לפרוס. אם לא צוינו שמות של קבצים, כל הקבצים יחולצו ממשאב הבדיקה.
איור 43. משאבים לבדיקת פעולות.
לוחצים על עדכון.
איור 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. ארכיטקטורה של מצב ריבוי מארחים.
כדי להפעיל את בקר ה-ATS, משתמשים בפקודה הבאה:
mtt start --operation_mode=ON_PREMISEבודקים אם אפשר לגשת לבקר בכתובת
http://${CONTROLLER_HOSTNAME}:8000.כדי להפעיל את ה-workers, משתמשים בפקודה הבאה:
mtt start --control_server_url=http://CONTROLLER_HOSTNAME:8000 --operation_mode=ON_PREMISE
אם הרשת שלכם לא מאפשרת למארחים לתקשר זה עם זה, אתם צריכים לפעול לפי הוראות ההגדרה המתקדמות יותר שבהמשך, בקטע "עובד ATS".
מחברים בין שני המארחים באמצעות מנהרות SSH. בוחרים יציאות לשרת הראשי ולשרת הקבצים, לדוגמה, 9000 ו-9006.
ssh -L ATS_PORT:localhost:8000 -L FS_PORT:localhost:8006 CONTROLLER_HOSTNAMEמגדירים ומפעילים את 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 מפורטים פרטים על הגרסה האחרונה. כדי לדווח על באגים או להציע הצעות, שלחו דוח על באג. שותפים צריכים לדווח על באגים או לשלוח הצעות דרך ערוצי השותפים שלהם.