תחנת בדיקת Android של OmniLab

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

הגדרת 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 מאומת מול גרסאות 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 (אופציונלי).

הגדרות Wi-Fi

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

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

חיבור מכשיר

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

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

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

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

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

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

      Remote Previous Test Run

      איור 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 של קובץ ההורדה וללחוץ על הלחצן בחירה כדי לאשר את הבחירה.

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

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

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

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

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

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

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

    איור 37. לחצן הפעולה של מכשיר חדש.

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

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

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

  3. לוחצים על Add Target Preparer.

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

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

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

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

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

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

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

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

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

    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. עורכים את קובץ התצורה של מנקה הקבצים.

איפוס

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

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

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

תמיכה

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

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