ארכיטקטורה של Tradefed

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

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

הגדרות בדיקה ב-Tradefed מתוארות בפורמט XML. כדי להריץ בדיקות ולהתאים אותן אישית, חשוב להבין את מבנה ההגדרה.

המבנה של הגדרות TF

הגדרות TF גלובליות

קובץ הגדרה גלובלי הוא הגדרת XML מיוחדת של Tradefed שנטענת כשמפעילים את Tradefed דרך משתנה הסביבה TF_GLOBAL_CONFIG. הוא טוען אובייקטים שקשורים להיקף של מופע Tradefed, שישפיעו על ההתנהגות הכוללת של ה-harness.

פרטים של הגדרות גלובליות

מאגר מפתחות

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

פרטים של מאגר מפתחות

Device Manager

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

בדיקת מתזמן הפקודות

מתזמן פקודות הבדיקה ב-Tradefed מקבל פקודות להרצה, משייך אותן למכשירים ומתחיל הפעלה של בדיקה.

ספק build

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

מכין ומנקה את היעד

הכלי Target preparer מציע פעולות אופציונליות שאפשר לבצע כדי להגדיר את היעד שנבדק למצב מסוים, למשל הפעלת המכשיר, הגדרת מאפיינים מסוימים וחיבור ל-Wi-Fi.

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

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

האדם שדיווח על התוצאה

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

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

כלי לאיסוף מדדים

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

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

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

תכונות נוספות

בקטעים הבאים מתואר שימוש כללי ב-Tradefed ולא באובייקטים של Tradefed.

חלוקת בדיקות ב-Tradefed

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

פרטי שרדינג

שימוש ב-SL4A

‫Tradefed תומך בשכבת הסקריפטים של Android, ‏ SL4A. זהו ערכת כלים לאוטומציה שמאפשרת לקרוא ל-API של Android באופן בלתי תלוי בפלטפורמה.

פרטים על SL4A עם Tradefed

הורדה של @אפשרות דינמית

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

הורדה דינמית של אפשרויות