OmniLab ATS הוא כלי בדיקה שמפתחי Android ומהנדסי בדיקות יכולים להשתמש בו כדי להשתמש בממשק משתמש להרצת חבילות בדיקה רגילות של Android, כמו Android Compatibility Test Suite (CTS). הכלי הזה משמש כממשק אינטרנט למסגרות בדיקה שונות, כמו Trade Federation (TF) ו-Google Mobly. הוא מאפשר להריץ בדיקות CTS ובדיקות במספר מכשירים על קבוצה של מכשירי בדיקה עם הגדרה מינימלית, וגם לקבוע לוח זמנים להרצה רציפה של בדיקות.
הגדרת OmniLab ATS
בקטע הזה מוסבר איך להתקין ולהגדיר את OmniLab ATS.
OmniLab ATS משתמש בקוד מקור מהמיקומים הבאים:
- קוד המקור של OmniLab ATS
- קוד המקור של TradeFed Cluster
התקנת OmniLab ATS
פועלים לפי הדרישות של החומרה והתוכנה של חבילות הבדיקות שאתם מריצים.
הדרישות ל-CTS מופיעות בכתובת source.android.com.
אין דרישות חומרה נוספות ל-OmniLab ATS, אבל מומלץ להשתמש בדרישה למארח CTS כנקודת התחלה.
יש שתי דרכים להתקין את OmniLab ATS:
- מריצים את תוכנית ההתקנה.
- להתקין אותו באופן ידני, שתצטרכו להתקין לצורך כך כמה תוכנות ומשאבים.
התקנה באמצעות תוכנית ההתקנה
ב-Ubuntu 20.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 מאומת מול גרסאות 3.7 עד 3.11 של Python.
ב-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
קבלת ה-CLI של OmniLab ATS
מורידים את חבילת ממשק שורת הפקודה (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, תוצג רשימה של כל קבוצות ההגדרות שזמינות לכם.
בוחרים את קבוצות ההגדרות שרוצים להוסיף למארח של תחנת הבדיקה ולוחצים על Import selected (ייבוא).
איור 4. ייבוא של קבוצת תצורה.
הכללת הגדרות Wi-Fi
בחלק מבדיקות ה-CTS, המכשיר צריך להתחבר לנקודת Wi-Fi לשיתוף אינטרנט. כדי לבחור את רשת ה-Wi-Fi, מזינים את SSID ה-Wi-Fi ואת PSK ה-Wi-Fi (אופציונלי).
איור 5. הגדרות הנקודה לשיתוף אינטרנט (hotspot) ב-Wi-Fi.
אחרי שמשלימים את אשף ההגדרה, הדף נטען מחדש עם ההגדרות החדשות.
חיבור מכשיר
כדי להשתמש במכשיר לצורך בדיקה, צריך להפעיל את ניפוי הבאגים ב-USB. כדי להפעיל ניפוי באגים:
פועלים לפי ההוראות במאמר הפעלת אפשרויות למפתחים וניפוי באגים.
אם אתם מתכננים להשתמש בגרסאות build של Android לבדיקה שמוגדרים בהן מראש מפתחות ADB מותאמים אישית, צריך להעביר את קובצי
.adb_key
המותאמים אישית לספרייה~/.android/
.הקבצים נטענים באופן אוטומטי ומועברים ל-ADB כדי להפעיל אוטומטית את ניפוי הבאגים ב-USB אחרי שמיישמים את הקושחה במכשירים שפועלים בגרסאות ה-build האלה.
מחברים את המכשיר למכונה המארחת באמצעות USB.
המכשיר מופיע בכרטיסייה OmniLab ATS devices תוך דקה אחרי רענון ממשק האינטרנט. בכרטיסייה הזו אפשר גם לראות את המצב של המכשירים.
איור 6. חיבור מכשיר.
מצבי המכשיר השונים הם:
- זמין – המכשיר מחובר ומוכן להריץ בדיקה.
- הוקצה – המכשיר מחובר ומתבצעת בו בדיקה. כל מכשיר יכול להריץ רק בדיקה אחת בכל פעם, לכן המכשיר צריך לסיים את הבדיקה הנוכחית לפני שהוא יכול להריץ בדיקה חדשה.
הרצת בדיקה
בחירת בדיקה
OmniLab ATS מגיע עם קבוצה של הגדרות CTS מוגדרות מראש. כדי להריץ אחת מהבדיקות האלה, עוברים לכרטיסייה Test Suites ולוחצים על Run test לבדיקה שנבחרה.
איור 7. בחירת בדיקה.
כדי לערוך או להוסיף בדיקות חדשות, יש לעיין במאמר הוספת בדיקות.
הגדרת הרצה לניסיון
עורכים את הפרמטרים שישמשו להרצת הבדיקה הספציפית הזו. רוב הפרמטרים מאוכלסים מראש בערכים שהוגדרו בתצורת הבדיקה שנבחרה.
אפשר להשלים את השלב הזה באמצעות ערכי ברירת המחדל, אבל אפשר לשנות כל אחד מהפרמטרים, כמו Max Retry ו-Command, בהתאם לצרכים שלכם.
איור 8. הגדרת הרצה של בדיקה.
הפרמטרים של הרצת הבדיקה הם:
- Name – השם של חבילת הבדיקות שרוצים להריץ.
- Run count – מספר הפעמים שבהן צריך לבצע את הרצת הבדיקה הזו בזמן שנקבע. ההרצות של הבדיקות מתוזמנות באמצעות 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
- device_serial
- device_type
- שם מארח
- מוצר
- product_variant
- מצב_SIM
כל המכשירים שנבחרו צריכים להיות במצב זמין כדי להריץ את הבדיקה, והם עוברים למצב הוקצה כשהבדיקה מופעלת. הרצת בדיקה נמצאת במצב 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. Test Resource Selector – תמיכה בתבניות עם תווים כלליים לחיפוש.
אפשר גם לבחור קובץ מאחסון הקבצים המקומי של OmniLab ATS. אפשר להעלות קבצים לאחסון הזה או להשתמש ישירות בקבצים ובספריות המקומיים.
איור 18. בורר המשאבים לבדיקה – מאגר קבצים מקומי.
הוספת הגדרות להפעלה חוזרת
אפשר לתזמן הרצות חוזרות שיתחילו אחרי שההרצה הראשית תושלם ויטענו את התוצאות שלה, אבל אפשר להשתמש במכשיר, בפעולות או במשאבים שונים.
איור 19. הוספת הגדרות להרצה חוזרת.
התחלת ריצה של בדיקה
אחרי שמזינים את המידע הדרוש להרצת הבדיקה, לוחצים על Start Test Run. אם כל הפרטים תקינים, אז הרצת הבדיקה תתחיל ותופנו לדף שבו תוכלו לראות את הפרטים ואת ההתקדמות של הרצת הבדיקה.
איור 20. התחלת הרצה של בדיקה.
יצירת תוכנית בדיקה
תוכניות בדיקה משמשות ליצירת פעולות בדיקה במסגרת לוח זמנים תקופתי. לדוגמה, הפעלת CTS 9.0 כל יום בשעה 17:00. כדי ליצור תוכנית בדיקה חדשה, לוחצים על יצירת תוכנית בדיקה חדשה.
איור 21. יצירת תוכנית בדיקה.
הגדרת תוכנית הבדיקה
מזינים את השם של תוכנית הבדיקה ואת התווית שרוצים להוסיף. לאחר מכן בוחרים לוח זמנים לשימוש.
- ידנית – תוכנית הבדיקה יוצרת הרצות בדיקה רק כשמשתמש לוחץ על הרצת תוכנית הבדיקה בדף הרשימה של תוכנית הבדיקה.
- Periodic – תוכנית הבדיקה מתזמנת אוטומטית את הבדיקה להרצה לפי לוח הזמנים התקופתי שנבחר. לדוגמה, תזמון של הפעלת בדיקה מדי יום בשעה 17:00.
- בהתאמה אישית – תוכנית הבדיקה מתזמנת באופן אוטומטי את הרצת הבדיקות על סמך ביטוי ה-cron שהוזן. לדוגמה, כדי לתזמן הרצת בדיקה בכל יום בשעה 17:00, ביטוי ה-cron הוא
0 17 * * *
.
איור 22. הגדרת תוכנית בדיקה.
הוספת חבילות בדיקות
כדי להוסיף חבילות בדיקות שרוצים לתזמן באמצעות תוכנית הבדיקה, לוחצים על + הוספת הגדרה להרצת בדיקה. בוחרים חבילת בדיקות מהתפריט הנפתח Name ולוחצים על Next Step. לאחר מכן בוחרים את המכשירים שבהם רוצים להריץ את הבדיקה ולוחצים על Add Configuration. אפשר להוסיף כמה הגדרות לכל תוכנית בדיקה.
איור 23. הגדרת הרצה של בדיקה.
הוספת פעולות במכשיר
מוסיפים את פעולות המכשיר שרוצים שיתבצעו לפני כל הפעלת בדיקה. פרטים נוספים זמינים במאמר הוספת פעולות במכשיר.
איור 24. הוספת פעולות במכשיר.
הגדרת משאבי בדיקה
הוספת משאבי בדיקה לתוכניות בדיקה זהה להוספתם להרצות בדיקה ספציפיות. פרטים נוספים זמינים במאמר הגדרת משאבי בדיקה.
איור 25. הגדרת משאבי בדיקה.
הצגת הרצות של בדיקות
רשימת ההרצות לניסיון
להציג את הרשימה של הפעלות הבדיקה המתוזמנות בדף 'הרצת בדיקה'. לוחצים על View כדי לראות פרטים נוספים על הרצת הבדיקה.
אפשר גם לסנן את הרשימה על ידי הזנת מחרוזת בסרגל הסינון והקשה על מקש Enter. אפשר להשתמש בכמה מסננים ולהפריד ביניהם באמצעות פסיק. המסנן מחזיר את כל השורות שמכילות את הטקסט המדויק (ללא התאמה למחרוזת משנה) בכל עמודה, לא כולל Status ו-Created.
מסנן ריק מחזיר את כל השורות. כרגע אין דרך לסנן שורות עם ערכים ריקים.
איור 26. רשימה להרצה לבדיקה.
פרטי ההרצה לניסיון
כאן אפשר לראות את הפרטים של הרצת בדיקה, כמו הסטטוס, היומנים והתוצאות.
איור 27. פרטי ההרצה של הבדיקה.
סטטוס ההרצה לניסיון
ההתקדמות של הרצה של בדיקה מוצגת בקטע 'סטטוס'. אם יש הודעה קשורה, כמו התקדמות ההורדה, סיבה לביטול או הודעת שגיאה, היא תוצג גם כאן.
איור 28. סטטוס ההרצה לניסיון.
אלה הסטטוסים של הרצה של בדיקה:
- בהמתנה – מתבצעת הורדה של המשאבים הנדרשים.
- בתור – הבדיקה מוכנה להרצה כשמכשיר זמין.
- Running (בפעולה) – הבדיקה פועלת במכשיר שהוקצה.
- הושלמה – הבדיקה הושלמה והתוצאות שלה דווחו.
- בוטל – המשתמש ביטל את הבדיקה או שהתוקף של הזמן הקצוב פג בזמן הניסיון למצוא מכשירים זמינים.
- שגיאה – אירעה שגיאה שמונעת את הפעלת הבדיקה.
ביטול הרצת בדיקה
אם הרצת הבדיקה לא הושלמה, אפשר לבטל אותה בלחיצה על Cancel ואז על Yes בתיבת הדו-שיח לאישור. גם הפעלות לניסיון מתבטלות באופן אוטומטי אם הן נשארות במצב Queued למשך זמן ארוך יותר מהשדה queue_timeout_seconds. ביטול של הפעלת בדיקה במצב Running עשוי להיכנס לתוקף תוך כמה דקות.
איור 29. ביטול של הרצה של בדיקה.
תוצאות ההרצה לניסיון
בסיום הרצה של בדיקה, התוצאות נאספות ומוצגות. אפשר ללחוץ על החץ בכל הפעלה כדי לראות פרטים נוספים. לוחצים על View Output Files (הצגת קובצי פלט) כדי לראות את פריטי המידע שנוצרו בתהליך הפיתוח (Artifact) שנאספו, כמו test_result.xml
ו-test_result_failures.html
.
איור 30. תוצאות ההרצה לניסיון.
אפשר לראות יומני מארח ויומני Tradefed פעילים בכרטיסייה Logs (יומנים).
איור 31. הכרטיסייה 'יומנים'.
התוצאות של מודולים ספציפיים מופיעות בכרטיסייה 'תוצאות הבדיקה'.
איור 32. הכרטיסייה 'תוצאות בדיקה'.
כדי להוריד את הקבצים ששימשו כמשאבי בדיקה, לוחצים על פתיחה בכרטיסייה 'משאבי בדיקה'.
איור 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, אפשר לייצא את ההגדרות כקובץ כדי לשתף אותן עם משתמשים אחרים. כדי לעשות את זה, נכנסים לדף Settings (הגדרות) ולוחצים על Export (ייצוא) בפינה הימנית העליונה.
איור 35. ניהול קובצי תצורה.
אחרי שמורידים את קובץ התצורה, משתפים אותו עם משתמשים אחרים. כדי להוסיף את קובץ התצורה למכונת OmniLab ATS, לוחצים על Import ובוחרים את קובץ התצורה.
יצירת פעולת מכשיר חדשה
פעולות במכשיר משמשות לאוטומציה של תהליך הגדרת המכשיר. פעולות הן סקריפטים שמבוצעים בכל מכשיר שבו הבדיקה פועלת לפני כל הפעלת בדיקה, כולל לפני ניסיונות חוזרים. כדי להציג את רשימת הפעולות הזמינות במכשיר, עוברים לדף ההגדרות ולוחצים על הכרטיסייה 'פעולות במכשיר'. כמה פעולות במכשיר כבר מוגדרות מראש, כמו הפעלה מחדש ופלאשבק.
איור 36. הכרטיסייה 'פעולות במכשיר'.
הוספת פעולה חדשה למכשיר
לוחצים על פעולת מכשיר חדשה.
איור 37. לחצן הפעולה של מכשיר חדש.
מזינים שם ותיאור.
איור 38. שם הפעולה במכשיר.
לוחצים על Add 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. לאחר מכן מציינים את הספרייה היחסית Destination מתחת לספריית העבודה הזמנית ואת File Names שרוצים לבטל את דחיסתם. אם לא נותנים שמות קבצים, כל הקבצים יפורקים ממשאב הבדיקה.
איור 43. משאבים לבדיקת פעולות.
לוחצים על עדכון.
איור 44. פעולה לשמירת השינויים.
ניהול בדיקות
עריכת בדיקה
כדי לערוך מבחן ששמור, עוברים לדף 'מבחנים' ולוחצים על עריכה בשורה של המבחן שרוצים לשנות. אחרי שמשנים את הגדרות הבדיקה, לוחצים על Update.
איור 45. עריכת בדיקה.
הוספת בדיקה חדשה
כדי להוסיף בדיקה חדשה, עוברים לדף 'בדיקות' ולוחצים על יצירת בדיקה חדשה. מזינים את המידע המתאים ולוחצים על Create.
איור 46. יצירת בדיקה.
איור 47. העתקת מבחן.
ייצוא הגדרות המארח
אחרי שמגדירים מארח, אפשר לייצא את ההגדרות שלו לקובץ. אפשר להעלות את הקובץ הזה למארחים אחרים כדי להעתיק את ההגדרות שנשמרו.
כדי לייצא את ההגדרות של מארח, עוברים לדף ההגדרות ולוחצים על ייצוא בפינה השמאלית העליונה.
איור 48. ייצוא של הגדרות מארח.
כדי לייבא קובץ תצורה של מארח, עוברים לדף Settings (הגדרות) ולוחצים על Import בפינה הימנית העליונה.
איור 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. ספריות נוספות שנטענו במאגר הקבצים המקומי.
הפעלת מצב מארחים מרובים
במצב 'מספר מארחים', משתמשים יכולים להשתמש במארח אחד של ATS controller כדי לנהל את המכשירים והבדיקות במספר מארחי ATS worker.
איור 52. ארכיטקטורה של מצב עם מספר מארחים.
כדי להפעיל את הבקר של ATS, מריצים את הפקודה הבאה:
mtt start --operation_mode=ON_PREMISE
בודקים אם יש גישה לשלט הרחוק בכתובת
http://${CONTROLLER_HOSTNAME}:8000
.כדי להפעיל את רכיבי ה-Labs, משתמשים בפקודה הבאה:
mtt start --control_server_url=http://CONTROLLER_HOSTNAME:8000 --operation_mode=ON_PREMISE
אם הרשת לא מאפשרת למארחים לתקשר ביניהם, צריך לפעול לפי הוראות ההגדרה המתקדמות יותר שבהמשך ב-ATS worker.
מחברים את שני המארחים באמצעות מנהרות 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. כדי לדווח על באגים או להציע הצעות, אפשר לשלוח דיווח על באג. שותפים צריכים לדווח על באגים או הצעות באמצעות ערוצי השותפים שלהם.